I remember when I first started out as a software engineer in 2006 I had to “earn my stripes.” I did as I was told, learned from my elders, and tried to make suggestions here and there. If my ideas weren’t good I was told why and would either go back to the drawing board or move on.
Something has changed with the paradigm of management and engineers. It seems management is afraid to offend or bother engineers. Nobody wants to say “no” to an engineer anymore.
We allow engineers (generally junior ones) to
- Design overly complex systems
- Use random languages or frameworks
- Go against team agreements
- Merge code without reviews
- Be rude to their fellow employees
- Make inappropriate and sexist jokes
- Become “brilliant jerks”
Why are we afraid to stand up? I guess engineering talent is at such a premium that we don’t want to lose engineers. But guess what? A bad seed will make other engineers leave. Not only that, the bad seed will probably leave at some point anyway and someone will be left with the mess.
Be logical. Sometimes you will agree, sometimes you will disagree. Sometimes your opinion will be swayed by a good argument. But don’t be afraid to say no. You’re running a team, organization, or company and not a hippy commune.