The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Why Great Developers can't be Good Managers

Inspired by the following posts:

When I see great developers seeking for advice about becoming managers, I always want to point out the fact that it is hard for a developer to become a manager.

I have a short article explaining the fundamental reason behind this fact, plus two more minor complementary reasons.

You can read it at:

Basically, skills and practices required to be a developer are in conflict with skills and practices required to be a manager.

The home page for my blog is at:

Your feedback is welcome, if you have objections or additions, I am willing to update my article.
Hakan Send private email
Wednesday, July 27, 2005
I dunno. It seems to me that any developer who cannot "convince" others and who cannot delegate cannot really call themselves "great".

The real question is: Why would you want a great developer to become a manager in the first place?
Wednesday, July 27, 2005
I don't agree with that at all.
Someone who is happy to sit down and thrash code well into the night who lacks social skills are probably not the best management material, but a "great" developer who has a huge amount of experience is assembling and undestanding complex systems can often show gusto when applied to other comples organisations such as business and projects.

in my experience "great" developers are great because they talk to people when needed, delegate when it is sensible and are often great sales people who can convice other "non techies" that a change or a development is nececarry.

I think that enthusiasm for code tends to dwindle with age - as it gets more repetative. I certainly feel that i've written so much code that i'm happy to delegate most of it. But I still participate in peer design/code reviews to ensure integrity.

In my experience. Some developers make lousy managers, some make the best. I don't see much difference with the rest of the population. i.e some MBA students make crap managers, some also make the best.

I really do not like the current way that jobs have been partitioned into manager/techie roles.
As someone who is valued as at "great developer" in my company, I'm also pleased to say that I'm a good communicator, public speaker, delegator and troubleshooting consultant who mainly deals with fud and misunderstanding caused by so many layers of middle management and ineffective communication between people.

I realised that technical problems may sometimes be fendish, bit the real interesting problems are to do with people and effective communication. I'm now more drawn to that side than finding that elusive memory leak.

I also cook great food with fresh ingredients and avoid pizza and coke.
Bendigeidfran Send private email
Wednesday, July 27, 2005
Developer skills aren't in *conflict* with manager skills.

They're *orthogonal*.

By this, I mean that the skill sets have little in common.

So why can it look like developer skills work against manager skills?

My own take on this is that quite a few people become developers because they are analytically smart, but lack people skills, and IT is an area they can find jobs in. So the large number of developers with poor people skills are self-selecting.
Matt Morris
Thursday, July 28, 2005
"Why would you want a great developer to become a manager in the first place?"

Well, this particular developer is becoming a manager for the following reason:

Job requirements for engineers have an alphabet soup attached to them. I've been rejected for jobs because the version of Sybase I last used is too old, and this is for a role where SQL isn't even the core requirement. The SQL standard hasn't changed, but agents can't figure that out - they just want people who've used the latest version of Sybase.

I get turned down for UNIX dev roles because the version of VB I've used isn't the latest -- because they add a VB background to all the dev position requirements, and it's got the be the latest version of VB.

I've just got bored of having my technical skills outdated every six months. If I take my eye off the ball and Microsoft announces a technology and I don't immediately ram it into my CV or pick the wrong job, a year later I'm near unemployable.

I'm fed up of my career being this bizarre stamp collecting exercise where I get judged on how many of the acronyms I've been near lately and not whether I've gained any deep experience in anything.

Frankly, I'm getting too old to play this stupid game anymore. No-one wants to hire a software engineer with a decade of experience to start work in C#. They'll train 2 year experienced people to use C#, but if you've got more experience than that, you better show up with experience in C# because any other experience you have is irrelevant.

I'm tired of my entire experience being torn up and thrown away every couple of years because agents and HR departments can't figure out that a developer who can write C++ can also write C# and Java with very little training -- but what can you expect? These are guys who think Visual C++ isn't the same language as C++.

I looked at being a tech writer. I quite like writing -- I've got a background in creative writing, it's something I quite like, and I've done tech writing around IT projects before. Unfortunately, although I've written stuff and studied writing and so on, I'm not qualified to be a tech writer because the version of PageMaker I last used is too old... I suddenly have these visions of people saying to a re-incarnated Dickens "Look, you've only used quills. What the hell kind of writer are you? We're only considering people with experience with Biros version 4 or above."

I've noticed that things like "Project manager" experience doesn't get thrown away in the same way. No-one says "Oh, but that was a year ago. We manage projects COMPLETELY differently now. That experience doesn't count", whereas they do with, say, SQL. It's like SQL is a whole new langauge with each version of Oracle.

Apparently, being a successful software engineer currently means that you pick a tech, ram some experience on your CV and then bail after a couple of years before that becomes "old tech". Every couple of years you need to pick a technology (which probably hasn't actually shipped at that stage) and bet on it. And you must bet right every time.

You never gain deep experience because that would mean missing an acronym off your CV and who knows when you'd need the acronym.

I've been offered two jobs; one will get me a PM background. One will get me a bundle of technologies. The latter is a good role, but how can I tell if those technologies will leave me employable in two years time? They might be completely outdated by then and useless and irrelevant like my experience with SQL on Oracle 8.

It'll get me a couple of years of Java, for example. But how can I tell if Java will still be an employable skill in 2007? I mean, I've got Java at the moment, but no hope of a job using it, because I don't also have J2EE and anyway the Java I did was 1.1 and everyone's after people with experience in newer versions...

Apparently I have no worthwhile experience to show for 10 years in the business because everything's the wrong version or doesn't have the right condiments or is just a tool no-one uses anymore. Any actual background I've got in things like "being an engineer who gets software written" is irrelevant. It's like assessing a builder on whether they've used Black and Decker tools and not on whether their houses are still standing. Or like assessing Dickens' writing skills by the fact he used quills and not biros.

Soft skills like PM don't get outdated by FUD from Microsoft. They don't come with version numbers which can drift out of date.

Really, they're the only alternative if you're the sort of person who can't assume you'll bet on the "right" technology every two years for the rest of your life.

So this developer is becoming a manager just so that I can start building an experience history to remain employable with, because I'm fed up of fighting hard to keep even a couple of years of "relevant" background on my CV.

[As a complete side note, reading the job pages in the paper I came across an advert for a "housing policy officer". Now, bear in mind 'm used to adverts which say "Reqd Skills; C++, UNIX, Windows, VB, MFC, ASP, STL, ATL, Multithreaded, C#, .net, CVS, ClearCase <etc>"

This one said "You should have a higher-second or first degree and  a track record of generating effective housing policies."

Wow. Pay was pretty much a match for being a software engineer.]
Katie Lucas
Thursday, July 28, 2005
> It's like assessing a builder on whether they've used Black and Decker tools and not on whether their houses are still standing.

Nice.  I'm going to start using that on people..
Abstract Typist Send private email
Thursday, July 28, 2005
Good rant, Katie.
Just me (Sir to you) Send private email
Thursday, July 28, 2005
First +1 to Katie Lucas.  Well stated, articulate and passionate.  I would add I also agree with Matt (and he made me look up orthogonal, just to be sure). 

Because I can drive a car does not mean I have the skills to be a mechanic.  But, great mechanics can also drive cars, so what does this tell us?  Nothing, because great mechanics also crash and burn.

Forgive the colorful analogy, but why do "most" preachers make bad criminals?  Could it be their heart is not in it?  That the skills they have nurtured to this point, are not really the same ones needed for the new tasks?  Yet, we can look and see many preachers who have been good criminals. 

Great developers can be great managers, if they recognize the skills necessary to be a manager are orthogonal to those of a developer. 

People have skills, and when anyone generalizes to a stereotype they propagate bias.  This is just another example of it.
Thursday, July 28, 2005
Matt: I agree with the term "orthogonal", it leads me to imagine a 2D chart:

X Axis: Developer skills
Y Axis: Manager skills

So, what you are saying is, a career towards management looks like a line going up, whereas a developer career is like a line going right.

A developer becoming a manager would be like a like going right first, then tending upwards with a slope. This sounds logical, but not a complete explanation.

I consider execution, convincing and delegating skills as separate lines. What I'm saying is a developer's direction is the opposite of a manager's for each line. Thus, the confliction.
Hakan Send private email
Thursday, July 28, 2005
> Great developers can be great managers,
> if they recognize the skills necessary
> to be a manager are orthogonal to those
> of a developer.

The IF clause in your statement is the subject of my article. Recognizing something, or knowing something is very different than actuall doing it (execution).

So, this is why it is hard for developers to become managers.
Hakan Send private email
Thursday, July 28, 2005
Well. I found that a good mentor can help identify and bring out the "conflicting" skills in a developer. Just chucking a developer a title with "Manager" in it is not going to help anyone much.

I hate being branded with such a broad brush as a developer. I have many facets to my personality, many passions and tragedies and learnings that you cannot possible hope to catch with the pigeon holes that you are trying to squeeze us into.

I'm not a big fan of any sort of personality grouping. But i would prefer to look at personalities in terms of something like belbin grouping rather than simply job title.

For instance, I know a strategy/intelligence analyst who is very adept at processing large amounts of intrustry trend informations and feeds into stratergy. Now he is a wizz with statistics and powerpoint. He is great at his job but I would say that he would not make a great manager.

I am a great fan of cross pollination of diciplines. For instance Design patterns in sofware were inspired by modern architecture design patterns which have their roots in the turkish empire and further to egypt.
A good lead developers understands how to make the project manager's job easier and in turn can teach a lot to the project manager.

And to Katie Lucas - yes, that is part of the reason i wish to become more distant from the code. Great posting.
Bendigeidfran Send private email
Thursday, July 28, 2005
Great post Katie. Your writing skills shine through.

I think there's an inflection point in a developer's career. When they're young, developers will cram their resumes with the latest shiny new tools. After a while a developer realizes that development is about people/relationships not things or tools. It's about understanding and meeting your clients' needs. That's when you realize that a resume should be about solutions rather than tools also. (You're no longer competing with developers with 2 year experience so why worry that they will get hired for a C# project?)

A few years ago I hit upon that inflection point and retooled my resume. I put solutions/results first ... "Built CMS system for major credit card company in 6 months. System used for 5 years." (Developers with 2 years experience can never claim that last statement!)

I mention technologies too, but they are not central; they are not the subject, not the object, nor the verb of the sentence. My boss cares about getting things done not whether I use Homing Pigeons 2.0 for a messenging subsystem. I also don't put version numbers on the technologies used anymore. As you point out that dates me and frankly when I'm done writing all those great solutons, there's not enough room for unimportant details!

I think a solution focused resume forces the reader to read it more carefully. To read it for semantic information not just for regexes. The latter is the only way recruiters can. They are lexers not parsers; they are acronyms hunters. Imagine who your next boss will be. They're your audience. Write for them.
slava Send private email
Thursday, July 28, 2005
You ARE a good writer, Katie Lucas. I actually read that whole post and wanted to hear more about you.

Maybe you should also pursue that. 


I can't help but wonder if programming was just a stepping stone to gain credibility for what I'm really going to be useful for in my old age:  coming up with new software products and executing their delivery.  Is that what a manager does (in a software company)?  Because I have been the programmer, I would think I could empathize with the developers better, have a better idea of who would be best to take on which parts, who is full of it when we have design powwows.
sharkfish Send private email
Thursday, July 28, 2005
Great post, Katie.

Becoming a PM will not solve your employability problem. With experience (and age) you become more expensive and that narrows down your choices.

It is not the wrong STLs, VBs, MFCs and such in your resume that disqualify you from getting the jobs, but your extensive experience that make you expensive. A less experienced worker would do the same job, for less money. They may not be as good as you are, but who cares? The company would hit the deadlines on time and on budget.

So becoming a PM is only a temporary solution until you reach the same "too expensive to hire" threshold.

IMO, we're given 3 choices:
1) Sell ourselves: full time employment.
2) Sell our time: freelancing and consulting. Equivalent as 1.
3) Work for ourselves: start your business. Kind of what Joel does.

Obviously, the 3rd choice is the best one, because you have less people deciding your employment status. And it is most fun. But it is also the hardest to work through.
Dino Send private email
Thursday, July 28, 2005
Brilliant post Katie, you have pointed out one of the great failings of the software development industry experience doesn't count unless its in the flavor of the week.

I also think that this is why the OP thinks that great developers can't be good managers. The definition of great developer does not include the talents, skills and abilities required to make a poject succeed. Instead the OP defines great developers as the nerd priesthood that are expert in the cutting-edge hot technology.

If I was in the position to offer a job to someone I'd seriously consider Katie but I'd run away from any developer who thinks that code is written for computers not people,
Been at this too long Send private email
Thursday, July 28, 2005
I remember that Katie's rant on methodologies made the JoS homepage. Any chance that her brilliant post here receives the same treatment?
nickel Send private email
Thursday, July 28, 2005
Outstanding post, Katie. Are you sure you're not really Verity Stob?
Thursday, July 28, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz