Pros
+ There are very good professionals to work with and learn from + People are very respectful + Opportunity to code in C++, which is rarely seen today in Brazil + Extra hours and "on-call" are correctly paid, which means you can increase your income substantially when you work more
Cons
+ Management in general have little knowledge of software development business + Lack of knowledge of software makes managers approach innovation and career development of subordinates in a KPI-driven manner, without actually being capable of understanding what is really going on with people and projects + Very competent people might never have a real raise in their salaries because managers are not capable of recognizing their contributions, probably because they are blind to see anything which is not in their metrics (a consequence of not knowing the software business) + Products use out-dated technologies and there is no culture to foster innovation on this aspect + In general, technical staff sees career development programs as boring, because they no longer rely on line managers and do not believe there will a reward for those who work hard on what matters + You can see incompetent people climbing in their careers by means of good relationships and tricking performance numbers, and when become managers appear to have no real interest for productive stuff (like raising competence of technical staff, recognizing talents or ease the life of workers doing a good job), but only projects that can render some good visibility + There is a trend in technical staff for migrating to tasks that are less and less related to software development, as if they are abandoning the interest for the real business (because it is not as rewarding as doing spreadsheets) + It is frequent to hear a discourse about the importance of quality, and you see a lot of measuring of quality metrics, but little action or smart conclusions + Most of the technical staff is now outsourced and composed of more junior professionals, which are visibly less competent on average, something that obviously impacts quality of deliverables, but there is not much evidence that management realizes that or even cares about it + Not only managers, but in general, people are missing the bigger picture, and forgot that quality is not going to improve by only measuring it, because that requires action and investment