I’ve received several emails about my post Why Good Developers are Promoted Into Unhappiness. One reader asked some interesting questions on his quest to decide between development and management.
Here are some excerpts from our conversation:
Q: Does leaving management for coding greatly cut your salary?
Going back to coding may cut your salary, but it’s quite possible it will not. In my case, the first time I went from management to coding I was fortunate enough to move into a higher paying development position. The second time I didn’t receive additional money for my “promotion” into running a development team, so going back required no monetary sacrifice.
Obviously I was lucky, and it’s a very real possibility that leaving management could have an effect on your salary. However, I haven’t worked at a company where the development manager makes tremendously more than the highest-paid senior developers. Senior Developers in L.A. can make $125k, in the bay area they can pull $140k+. These are enterprise application developers; highly specialized developers could definitely earn more.
So the question is: how much money do you need to be happy, and is it possible to earn that while still writing code?
Q: Coders seem to be considered commodities and low level craftsman. Why would someone go back to that?
Enterprises that consider developers “commodities and low level craftsman” are doomed to have (at best) average developers working for them.
A close friend of mine works for a company that has experienced a mass exodus of developers for this very reason. The best left first, the mid-range followed. What’s left are the people who clock in 9 to 5 for the paycheck and don’t take pride in what they’re building. The company now has what they asked for: a team of low-level code jockies. The people with initiative, energy, and passion have left.
Since you don’t want to work for a company like that, how do you determine if they view developers this way? The last time I interviewed for a salaried position I brought a list of questions with me and interviewed the company as hard as they interviewed me. I also made it a point to speak to one of their developers, and asked him several questions about the working environment, hours, etc… Most developers won’t lie to you about this sort of thing.
Q: I like coding, but isn’t management a more secure job?
Not in my book – developers have hard skills. I could move to nearly any city in the country, walk in to a company, and demonstrate that I know my stuff. It’s true that the job market is wide open for great managers and coders, but not only is it easier to prove you know how to code, there are more development positions than development manager positions.
Q: Doesn’t a manager generally make significantly more than a coder?
If I posted this on my blog we’d get 50 different answers (cue you, the reader, to post your opinion in the comments). At my job with the City I managed 10 people and I made more than most of them (the few who made more than me had been there for many years).
At my next position our manager made a tad more than us (around 10%), and he received more stock. He put up with 100% more headaches than we did, so we considered ourselves ahead on the deal.
Q: I’m trying to find something I love that pays very well. I’m really exploring if there is more of a ceiling as a developer than as a manager. If there is, I need to figure out how to get above it.
One thing about this industry that I still don’t understand is no pay over 40 hours. Virtually everyone does this. My question is why and why do developers accept it? If they calculate their per hour pay against that 60 hour week, they could probably do better working as a laborer on a pipeline. Does that really make any sense?
Here’s one way to get around the salary cap and get paid for every hour you work: start your own consulting firm or become a contractor. (A quick aside on how I differentiate consultants from contractors: consultants do a lot of work away from the client’s office, and they perform more project-oriented work. Contractors tend to have a cubicle at the company’s office and often do the same tasks as salaried employees.) Either way you’re paid well to write code and are typically paid for every hour you work.
This is why I left a salary in favor of running a consulting firm – for the freedom to choose what work I do, the ability to get paid for every hour I work, to continue to code, and to make more money than a salaried employee.
Q: If you want to keep climbing the corporate ladder up into Direct or VP, don’t you have to go through a management role to get there?
Yes. If that’s your goal, then go into management.
I know of only one exception to this rule. It’s a company in New Jersey that has a technical advancement track that parallels the management advancement track. In other words, people can stay completely technical and still advance in their companies.
At this company, if you don’t want to become a manager when you’re up for a promotion there’s a technical track you can request. I don’t know the exact titles, but these “Technical Directors” are on the same level in terms of power and seniority as their management counterparts; the major difference is they don’t have anyone reporting to them. They operate relatively independently in the company, but at a very technical level. The problem with the management track is that there’s a limited number of slots, because the company needs to have people reporting to a manager. But a company can have as many technical directors as it wants because they don’t require people underneath them.
Another big advantage of technical directors is that when cutbacks come, they don’t need to worry about retaining their team sizes. As a manager if enough layoffs happen and nobody reports to you, then by default your job is unnecessary. The technical director doesn’t have this problem.
A question for you, dear reader: How have your experiences been the same or different from what’s been said above?
[tags]programming, management, salary[/tags]