Pros
- Funny people
- Multicultural environment with people from many parts of the world
- Lovely dogs
Cons
There is a hidden heavy management and hierarchy without trust in developers. Although one of the culture mantras is to innovate and take the lead, developers always need approval from management and everything should be described in detail before receiving a blessing to start. When a project finally starts, there is a need to describe all the steps explicitly. But even doing so, there is still the need to create summarized reports so management can check if you are doing your job as expected and if your estimations were correct.
Although the company says it is doing Agile, it is more on the line of "Of course we do Agile, we do Sprints!". The "Agile" processes are used because "this is the way we do things", without questioning the real necessities of the teams nor if they are actually bringing any value.
New ideas either receive a "it is a good idea, let's create a ticket for that" (which end up in the "backlog blackhole") or a "it is a good idea, but it will not work here".
There is no "Continuous Growth Mindset", if it works it is ok to rush it into production and do the next most important thing. There is no reflection afterwards to review processes and solutions, if they are still useful or if they should be improved. On the (not so) long term this causes a snowball of technical debts which reduces the speed to innovate, solve problems and reduce costs.
All of this ends up generating one of the most spreading problems: firefighting. After solving a problem, with a quickfix, there is no time to think and work on how to avoid the problem from happening again. There is another fire happening somewhere which requires attention! And then the first fire appears again, it is patched, then another one and so on. This cycle ends up creating, contradictory as it may seem, a very comfortable situation in which one's work is "to put fires away" not do the hard work which is to think and act on how to avoid them.
When there is a discussion about how to improve things (either because there was a big fire or someone unexpectedly "discovered" that things are bad), usually after many meetings with only managers involved, the solution is always "let's wait until we hire more management people". It is as if the Management Rowing Race Strategy is deliberately being implemented.
And don't ever bring the subject of working remotely! The beautiful answer is always that "the office should be an environment in which people feel productive" but the reality is that there is no trust and they want to know and see what you are doing.
Good people, from all departments, leave every other month. And nothing changes.