The developer versus manager dilemma

Wednesday Mar 12 2008

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.

Dilbert on management meetings
Becoming a manager involves a lot more meetings.

Dark Matter Pro: a premium photoblog template.

Affiliate program available

Starting out

We've all been there. Our first job as a real . Everything is new, exciting and the whole thing is an enormous learning experience. Quickly we learn that working for a 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 / 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 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 Money

As 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 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!

bookmarking

Commentary

Join the discussion! Leave a comment through the comment form below!

Got something to add to this?

Feel free to leave a comment on this site. You can use Textile and Emoticons. Your email address is only used to show a gravatar. Please stay on-topic and use common decency. Spammers will be shot in front of a live studio audience.

If you plan on posting code, use pastebin please and post a URL to the code. The comment processing doesn't deal very well with code. Sorry for the inconvenience.

Human comment spammers: don't bother posting your crap here. Comments are moderated and I won't let any of your shit through.

Remember personal info?
Yes
No

Trackbacks

If you have an interesting related post on your own site you can leave a trackback. As they say: 'a little AJAX a day keeps the spammers away' which is why you'll have to click below to generate a trackback key. The key will be valid for 15 minutes and can be used only once.

 

  • Featured Links
RockySomewhere near the Orion NebulaBookalicio.usGolden Gate BridgeThames River BankJackie and mePimpin' it