Pros
Work hours and work from home policy are flexible. Pay is on par with industry standards. Team members and direct management get along well. Agile training gave hope of empowerment and accountability to developers.
Cons
Corrupt and in turmoil. Inept, unprofessional, and cruel management. Medical benefits are not good and seem to be getting worse. Engineering forced to use questionable technologies for implementation of software. Engineering is held accountable for bad decisions and mismanagement of directors and project management. Here is a recent example of what happened to my group: Consultants were hired to improve the process and instead slowly consumed development teams resulting in multiple layoffs. Consultants communicated directly to upper management and relayed negative (clearly not objective) information on scrum team progress. The consultants attempted to disrupt velocity of the team by drawing developers into lengthy unscheduled meetings and when in office would attempt to intimidate teams. One incident took place where a manager from the consultant company entered a meeting uninvited, sat down for about five minutes, said nothing to any of us (there where about four people in the room), and then walked out. This same person was seen walking up and down cubical rows at the same time everyday monitoring team activity. The scrum teams noticed this behavior and it resulted in attrition. This was noted during the retrospectives, but management did nothing to stop this. Despite all these distractions including a failure of a build process (once a week if lucky) the scrum teams seemed to have stabilized sprit burn down. Instead of working with the scrum teams to remove impediments management listened to consultants that criticized the progress of the scrum teams and in the end decided to layoff half the team giving the consultants full control of the project. To make matters worse management could not keep the layoffs secret. Word of the pending layoffs leaked out a month before taking place. Attempting to control what was described as “rumors” the management scheduled bizarre meetings with each team member. The intent of the meetings was not clear and scheduled without waring causing emotional anguish. A human resources representative was not present during any of these meetings. A few weeks later management announced the layoffs would take place in three weeks. Management expected the teams to continue the work during the sprint and deliver work for the product increment despite the layoffs. In my opinion, the teams made a valiant attempt to meet a very difficult deadline and to follow an agile process that they were trained on at the request of management and for this most of them lost their jobs.