After being a consultant, engineer, manager and again starting as allinone on a small project, I believe organizational hierarchy is just an OK solution. If I put on a career planner hat, I find so many career paths which are in big hierarchies personally bad deals and would avoid them in future and advice the same to others. I wrote a summary of what I observed so many times. Sorry for a lengthy post.
When a software company becomes successful, it becomes a magnet for crazies. The crazies are the process-people who use fancy marketing lingo to tell you that you are doing something inadequate and you should be using a different methodology which is more correct for your company.
This takes the conversation away from “ideas” to “sudo-ideas”. The conversation shifts from what made the product amazing and what else we can do about it to a new conversation about how someone should do a certain job and fulfill its role. A new engineer with a good potential to produce software will have to go through a phase of self doubt surviving in this world and asking himself/herself if he/she is meeting the role and understanding what it means to meet the role. Now you need more people who are smarter than the engineer to tell him/her and hold him/her accountable and enforce certain improvements needed to fulfill this role.
This leads to a burdensome overhead which derails the whole organization from focusing on the core or the simplicity in its culture which enabled the business to succeed in the first place. This overhead and drama around it is what the smart helpless people call politics. Instead of a plan to solve a problem you can see people talking about a plan for a plan. Instead of a simple understanding between people, there will be a process to come up with more process. Someone writes a document about how to write documents because somehow that seems to be more rewarded. You got to be good at being the process abiding employee fulfilling the Role to play in this environment. An expert professional sees this system as something that is designed to keep you at the same level of influence no matter how much value you can produce and sees the leadership very un-inspiring.
There comes a point where if you are a productive engineer, it is more easy to build something and let the market forces decide if your invention is worth any merit. The bar in the market is not too high either. You build an app that lets you share your dick pictures, you get a billion dollar investment. Though it takes multiple engineer teams to produce useful software, it is possible to build a very useful feature or system that is missing from an ecosystem of a larger product or service. This micro service/product which generates revenue, Improves on the market feedback, succeed and itself might one day become a magnet for crazies. The feedback the market gives you is far more useful and actionable than the feedback you get in a large organization that is designed to to fit you to the role.
You got it right; you either conform to the role you're given or you get out and do something else. The role doesn't even have to be aligned with increasing revenue or increasing customer happiness, typically it's aligned with making your manager happy.
Paul Graham talked about this in an old essay; the fewer layers there are between hackers and users, the happier both of them will be. Dealing with organizational politics doesn't help either the hacker or the user.
I just joined an organization with minimal hierarchy (no team leads, no architects, no whatever) and minimal process. It feels right somehow, I'm curious how its going to work out.
In my experience poorly as it starts to scale above 5-10 developers on a team. Good developers tend to be opinionated people and after a certain size you need someone to break ties and keep everyone pointed in a useful direction. I'm a team lead/Developer manager and somewhat new to the job and that's my role. Help the team get the info they need, make difficult decisions about the direction of the tech, and help solve the really hard issues that they are bumping their heads against. Mostly stay out of their way if things are going well but still keep track of everything that's going down.
When a software company becomes successful, it becomes a magnet for crazies. The crazies are the process-people who use fancy marketing lingo to tell you that you are doing something inadequate and you should be using a different methodology which is more correct for your company.
This takes the conversation away from “ideas” to “sudo-ideas”. The conversation shifts from what made the product amazing and what else we can do about it to a new conversation about how someone should do a certain job and fulfill its role. A new engineer with a good potential to produce software will have to go through a phase of self doubt surviving in this world and asking himself/herself if he/she is meeting the role and understanding what it means to meet the role. Now you need more people who are smarter than the engineer to tell him/her and hold him/her accountable and enforce certain improvements needed to fulfill this role.
This leads to a burdensome overhead which derails the whole organization from focusing on the core or the simplicity in its culture which enabled the business to succeed in the first place. This overhead and drama around it is what the smart helpless people call politics. Instead of a plan to solve a problem you can see people talking about a plan for a plan. Instead of a simple understanding between people, there will be a process to come up with more process. Someone writes a document about how to write documents because somehow that seems to be more rewarded. You got to be good at being the process abiding employee fulfilling the Role to play in this environment. An expert professional sees this system as something that is designed to keep you at the same level of influence no matter how much value you can produce and sees the leadership very un-inspiring.
There comes a point where if you are a productive engineer, it is more easy to build something and let the market forces decide if your invention is worth any merit. The bar in the market is not too high either. You build an app that lets you share your dick pictures, you get a billion dollar investment. Though it takes multiple engineer teams to produce useful software, it is possible to build a very useful feature or system that is missing from an ecosystem of a larger product or service. This micro service/product which generates revenue, Improves on the market feedback, succeed and itself might one day become a magnet for crazies. The feedback the market gives you is far more useful and actionable than the feedback you get in a large organization that is designed to to fit you to the role.