I really miss working slower and towards a smaller goal of creating value with quality.
The amount of code my team churns out is high but the thought around code as a liability is low.
I miss the surgical like precision work where the team comes together and reaches consensus and do their absolute best to prepare, execute and maintain.
What are you missing?
- It's difficult to sell good engineering work to them, and hence salary increases happen (if any) but on the lower end.
- With the typical excuse "Eng. managers should empower engineers", eng. managers do around 1% of the job when it comes to start big projects. The whole load lies on the shoulders of the senior engineers. One would expect that an eng. manager is probably the individual in the team with the most experience (both in engineering and in management), but eng. managers usually don't spend time trying to understand the systems their teams own. A classic example is: an eng. manager who knows very little or nothing about, let's say, Node+js, even though he has been in the team for over a year: their excuse? They only care about the "high level design decisions, they don't need to code anything". Funny thing is, the "high level design decisions" are done by senior engineers
Good engineering managers are invaluable, though. But in 80% of the software teams out there we either have bad eng. managers or average ones. In summary:
- good eng. managers => heaven
- bad eng. managers => it's ok. Since they are bad, they most probably will be fired or the whole team will know quickly how bad they are
- average eng. managers => hell. Because they are not "bad", so they are not fired. They think they are good and all.