[An article a year ain’t bad, I suppose.  After being Slashdotted on Show Me the Money and having several reporters call my home based on Brin and Bear It, it looked like a good time to take a breather.  But I’m back, this time with a gripe.]

It’s become very hard at Microsoft to find good senior developers internally.  Don’t get me wrong – there are still plenty of brilliant people who were once upon a time good developers at Microsoft.  Now they’re just dev leads, dev managers, or vice presidents.  (Either that, or they’ve gotten it into their heads to join the photogenic business majors – but that’s a whole other discussion.)

 

Make the Most of Freedom and of Pleasure

No self-respecting developer started off their computer career thinking, “Boy, my lifelong goal is to be a middle manager in a large multinational corporation beset by competitors, nearly collapsing under the weight of its own internal processes.”  This thought is, in fact, so ridiculous that it reminds me of the eponymous Monster.com ad from the dot-com days (“I wanna claw my way up to middle management…”).

Developers want to code.  Maybe design once in a while.  Then code.  Invent a thing or two.  Code.  Oh, and if things line up this weekend, perchance ask that new coworker in Accounting out to a movie...  seriously, though – code, code, code.  Occasionally, one of the younger ones will mutter something about changing the world, better living through software, blah blah blah.  But it really all translates to, “I want to code all day.”  Not a single developer starts their career wanting to be the pointy-haired boss.  It’s the last thing on their minds.

For the first two decades of Microsoft’s existence, everything was in blissful harmony.  The recipe for success was straightforward.

Software Au Jus
Prep time:  20 years

Ingredients

  • 15,000 developers, preferably from college (or high school)
  • $285 billion dollars market cap
  • A metric gazillion computers (high altitude or Canada:  use 1.5 gazillion)
  • Food

Directions
1) Spread developers on clean campus
2) Pour computers evenly over developers
3) Split market cap into portions (“stock options”), laying generously on each developer
4) Bake for 20 years, occasionally inserting food into developers as needed

What happens when you take a bunch of brilliant developers and make them millionaires?  Well, nothing, really.  They just keep coding.  Sure, a handful starts driving to work in Ferraris.  Another small set quit and begin lobbying for endangered species, or living like they’re looking for vacancies at Betty Ford’s.  But the overwhelming majority of developers keep coding, because that’s what they truly love.  By making them rich, you’ve just enabled them to keep on keepin’ on.

 

Nothing Ever Lasts Forever

But something happened on the way to heaven… that was then, this is now.  What happens when you run out of a key ingredient of the original recipe?  What happens when you can no longer pay developers ridiculous sums of money, the money that originally enabled them to pursue their true interests?

Well, they start thinking about their careers.  Those of you not in computer science might miss the gravity of that statement.  To typical developers, “upward mobility” means “finding the lever that raises the Aeron.”  But developers who start worrying about their futures begin to do unnatural things.  Things like asking about becoming a dev lead or dev manager.

This is now happening all the time.  All the time.  Just about every developer I know who is a rising star wants to be a dev lead, dev manager, royal highness, etc.  People I manage.  People I interview.  I can’t exaggerate how outrageously often this happens.  I kid you not, about 80% of the developers I manage or interview say that their goal is to be a dev lead or dev manager.  Many of them – brace yourself – don’t want to take or continue a coding job unless they can be a manager.  A manager!  This, from the lips of real-world developers!

How do you staff and retain a team when 80% of the people you already have, and 80% of the people you interview, want to be managers?  It’s unnatural.

 

Say That You’ll Never Never Never Need It

If you’re a developer reading this, please believe me when I say you should seriously think it over before setting your mind on becoming a dev lead or manager.  Let me count the ways.

·         You love coding.  Sometimes you’ll lose sight of this, especially if you’re worried about your career.  But ask yourself what you’d do if you were independently wealthy.  If you’re like most developers, you’d rather code.  Why not continue doing what you love?

·         Most developers make bad managers.  Typical developers excel in skills largely orthogonal to those required of managers.  Typical developers also hate the things that comprise most managers’ days.  Seriously.

·         There is no pay difference.  At least at Microsoft there is none.  I get this one all the time, thinly veiled behind noble-sounding phrases like, “I want to have broader scope.”  Most developers think that dev leads and dev managers get paid more than individual contributors.  This is simply not true.  In almost every team I have ever managed, there were always individual developers that earned more than me.  Your salary has nothing to do with whether you manage people.  It has everything to do with the perceived value of your contributions.  Developers make the software world tick.  They get paid.

·         You are hot property.  Teams need four times the number of developers than they do leads or managers.  And yet about 80% of the folks that I talk to want jobs as leads.  Do the math!  It’s well-nigh impossible to find good senior developers these days.  Your future is assured.  Your choice of teams to work on, problems to own, etc, are virtually boundless.  Seize the day.

Now that I’ve gotten that off my chest, if any of you reading this are great senior developers that know you want to write code, drop me a line.  I’ve got plenty of great spots for you.