The developer versus manager dilemma
I'm pretty sure every (web) developer at some point asks him/herself the question: How do I move forward in this industry? While status, and mostly money don't necessarily 'matter' to you (it doesn't really to me) it becomes an important issue at some point in everyone's life. Having to support a family or wanting to buy a decent house in a decent neighborhood are valid reasons which at some point bring money more into the picture than one might like. This is definitely true for yours truly.
I've been thinking about the subject of this post a lot lately and I felt it would be a good thing to write down my thoughts on the matter and invite you all to comment on it with your thoughts.
Before I continue I'd like to apologise for not having published any articles for such a long time. Life sometimes simply gets in the way of things.

Becoming a manager involves a lot more meetings.
Starting out
We've all been there. Our first job as a real developer. Everything is new, exciting and the whole thing is an enormous learning experience. Quickly we learn that working for a company is something completely different than developing fun things in our own time or working with volunteers on open source projects. A lot more people are involved in the projects we work on and it's not only about the best technical solution to problems anymore. There's a lot more going on.
The inexperienced developer can usually happily ignore all those other issues because there's an amazing lot to learn from more experienced fellow developers. Therefore, any junior developer with a positive attitude towards learning new things and gaining valuable experience will at some point grow into being a more mature, more senior developer with a deeper technical insight. This is where things start to change, slowly but surely. At some point, most developers are going to want more out of their jobs.
Small companies
When working for a smal(ler) company a developer is usually part of a relatively small team. Most of the time the hierarchy in this team is limited to juniors, possibly some developers who are labeled 'senior', and a group manager. As there's really now career path 'up' except for replacing the group manager, most developers who are somewhat career driven tend to switch jobs at some point when working for a small company. There's no way to move up the ladder and at some point there's not much left to learn either. Therefore, unless the developer has an actual stake in the company or doesn't have the ambition to ever be more than a developer and isn't in need of a higher salary, he/she will leave the small company and look for a job with more responsibilities. What kind of responsibilities? More about that later.
Technical authority or... manager?
At some point every developer will realise that there are only two ways to really advance in almost any industry, including the one the developer is a part of. The first one is to become some sort of technical authority. This translates to roles labeled as 'architect', 'technical lead' or 'senior consultant'. Whether this kind or role is easily achievable in a company varies tremendously. In some companies such roles may not even exist. This is especially so in smaller companies. More than once I effortlessly became the 'designated expert' in certain areas in smaller companies that I worked for. In other companies these roles may exist but seem very hard or even impossible to achieve. Then, even when we manage to achieve one of the beforementioned positions, this position is usually an end point. After this there's no way up anymore. In very large companies, these roles can be very satisfactory and very well paid. The question however is: Do we want to wait for years to _MAYBE_ some day get promoted to such a role? The answer to this question probably varies greatly from person to person. I'd personally love to be a top level architect (one who actually gets listened to) but I don't think it's achievable any time soon. At least not where I am now.
Then there's the other route: management. Higher managers and especially executives are traditionally valued higher than developers. They get paid more, get awarded bonuses even when the company performs crappy and in case of executives, when they screw up there's a nice 'golden parachute' package waiting for them on the way out. And most of the time, because of networking, a new executive role will be waiting for them in some other company. Sounds pretty great to me. While I strongly object to this difference in valuation it's part of the world we live in and it will probably never change. Things get rather dangerous for a company when these managers / executives lack technical insight and knowledge of the industry they're working in and / or don't consult technically challenged colleagues before they make important decisions with a high impact on the business. This seems to be happening in many, many companies and has the potential to drive any company, no matter how successful into the ground. Why is this happening so often? My suspicion is that most seasoned technicians just don't have the desire to be a manager or executive. People with more of a business background most definitely do which is where the great danger lies. Bad decisions are being made, technical employees get frustrated and companies as a whole suffer. And then there's the evil of corporate politics. I haven't even gone there and I'm not going to either. Developers tend to stay out of it and therefore at some point just 'give up' and go with the flow, no matter where that flow will lead. At worst, they'll eventually leave for another company, only to find out things aren't all that different there.
Most experienced developers either don't easily get given the opportunity to become a manager / executive or don't have the ambition to do so. The latter is easily explained: When being a manager we don't really get to develop all that much anymore, and most of us simply love developing! The first issue is somewhat harder to explain but I have the feeling it has something to do with the fairly big gap between business people and technical people. A gap that really should be filled or eliminated.
So here's a gaping space aching to be filled. In my opinion there's a great need for people higher up the IT-corporate food chain with more knowledge about technical issues. The big question is: how to get to this in my opinion better situation?
What to do?
To summarise, there's a few issues a lot of developers probably face. First of all, most of us want to increase their salary. Maybe not at first, but in the long run I believe this is true. I personally never really cared much how much I earned but things change when there's a family to support and one wants the financial space to offer them a bit more than just food and a place to stay. For a developer I feel there's a certain 'ceiling salary' in place which is hard to beat. JAVA and C# developers may be able to get to a somewhat higher salary but for web developers and open-source developers things look less optimal.
Secondly, we all love developing and ideally we'd like to keep doing so. However, both the management / executive route and the senior consultant / architect route seriously limit the amount of time we can spend on 'hands-on' development. There will be more meetings, more high level talks and a lot less (if any) code hacking. In addition to this, there usually aren't too many super senior technology positions up for grabs which leads to an almost inevitable choice between staying a developer for the love of our work or becoming a manager and possibly eventually becoming an executive.
Then there's the corporate politics. I said I wasn't gonna 'go there' but I suppose it needs to be mentioned. The larger the corporation, the more politics involved. Things simply don't only seem to be about 'what's best for the company' anymore or about what are the most sound technical solutions. There are managers and executives with their own personal agenda which quite regularly doesn't match with the greater good of the business. More than often it's mostly about their own personal career advancement. And quite often this agenda is achieved at the expense of others. Yet, good career politicians can come a long way. It's a game that almost HAS to be played. A game that often doesn't really matches with the often idealist attitude of a developer. It surely doesn't match with mine.
I personally believe the only way 'up' is to try to become a manager while trying to keep close contact with the technology as much as possible. This will most likely need to happen in spare time as the job most probably won't allow it. Even 'technical leads' which in theory are still 'hands-on' often find themselves less and less behind their screens hacking away at technical challenges. And when moving up another step it will most definitely be a thing of the past.
Let me finish with what's known as "Dilbert's Salary Theorem" which ironically seems to illustrate the situation at hand quite well:
Dilbert's "Salary Theorem" states that "Engineers and scientists can never earn as much as business executives and sales people."
This theorem can now be supported by a mathematical equation based on the following
Two postulates:
Postulate 1: Knowledge is Power
Postulate 2: Time is MoneyAs every engineer knows: Power = Work / Time
Since Knowledge = Power
And: Time = Money
The result is : Knowledge = Work / Money
Solving for Money, we get: Money = Work / Knowledge.
Thus, as knowledge approaches zero, Money approaches infinity, regardless of the amount of work done.
Conclusion: The less you know, the more money you make.
So there we have our choice: Go for a management role with more responsibility and a higher salary at the danger of possibly losing touch with technology or stay a developer forever and accept the 'dead end road'? Let me know what your thoughts or experiences are!
Filed under: Rants
Number of comments:
Number of trackbacks:
Tagged with: 







At 12 March '08 - 02:53 Rajat wrote:
At 12 March '08 - 16:51 Adriaan wrote:
Lonely at the top, isn’t it? No just kiddin…totaly agree and understand your message!
Your not talking about me in your first lines, are you? The juniors and all? Again your right! It’s the way it goes, especially in smaller companies. And I think it will always be this way. Not only with developers, but also with designers and other functions.
You know I wanted to work at Yahoo! and went through the whole (3 months) program. But i recently started to realise I am not suited to work for companies > 5 (let’s say) employees. The company I worked for last time contained 50 of those idiots…and I really couldn’t feel/get comfortable for some reason. Maybe I ain’t a 9 to 5-er, ain’t social enough or the company wasn’t suited for me. Probably a combination and some other stuff, like MONEY!
I started to realise this at the second I started to be a freelancer. And every day I wake up now really is a challenge. The money is lots better, probably make even more then those managers…but we have to see how next month goes! But that isn’t the main reason. The best thing is that I decide wich projects I am gonna be involved with and really learn more than times before. Mainly because I can decide the time I am gonna spend on certain parts and how much I want to learn…besides the money I get for it. This is really the best part of it all. I don’t see myself as a senior, but starting to realise I gain more knowledge every day and I am totally in control of this. But enough about me as a freelancer…
The part about being a developer and loosing ‘yourself’ if your going higher up the chain…don’t think this always counts. It’s really about you as a person and the view you have. Do you really like/need to be in such large companies to achieve this? I think your own/small company, in this case, is ideal and more flexible way to achieve more challenge/control/feedback/money. I can be wrong on this, but hell I am gonna friggin try it!
I dont’ really care much about how people see me. Also about me being a hardcore developer, because I ain’t! I just want to build websites and really enjoy the clients feedback and become better every day! Within those rules I can really feel comfortable with and think this is the best for me.
Another thing…about money! I like it alot! Heaps of it! Is to build something and get paid every month. This way you have cash and really a technical challenge/control/feedback. The only thing you need is a good plan. I am working with a product-developer (IO – industrial designer) on this and we are getting somewhere. I think this way I have more space for cool projects and learn even more, but dont have to worry about a cash-flow. So that’s also an option, right?
Enough rambling…go of to shoot some managers at COD4, if I find any :)
greetings,
Adriaan
At 24 March '08 - 11:42 Julia wrote:
At 26 July '09 - 10:06 DavidTan wrote:
At 03 July '10 - 05:05 Darren wrote: