February 15, 2010

I Just Want To Be a Programmer. But Can I?

I like programming, and I'd prefer that the majority of my day consist of it.  At this point, I have no interest in being a manager.  Things like attending countless meetings, writing little to no code, and worrying about budgets just don't appeal to me.  No offense to managers, but I like doing "real work".  Yet I do often worry about future opportunities if I eschew the management career path.  Will it be financially viable and intellectually stimulating enough for me to remain a programmer for the rest of my career?

Page 107 of DeMarco's and Lister's Peopleware: Productive Projects and Teams does a good job describing part of my fear.  Although they're mentioning companies with higher rates of turnover, I think it's the general attitude of many companies.

"If people only stick around a year or two, the only way to conserve the best people is to promote them quickly.  That means near beginners being promoted into first-level management positions.  They may only have five years of experience and perhaps less than two years with the company.

There is something very disconcerting about these numbers.  A person with a work life of, say, forty years will spend five years working and thirty-five managing.  That implies an exceedingly tall, narrow hierarchy.  Fifteen percent of the staff is doing work, with eighty-five percent managing."

There's several things wrong with this.  For one, it means that there's a lot of managers with little programming experience - and that experience could have been from quite a long time ago.  It also means more managers than programmers, leading to what I call the Eiffel Tower corporate hierarchy.  But in regards to this post, it also means that at a lot of companies, the only career path is management.  The most talented and promising become managers.  But what about people who don't want to become managers and just want to continue excelling at what they currently do?  What prospects do they have?

Like I said, right now I just want to be a programmer.  But that doesn't mean that I want to do the same thing for the rest of my life.  Granted, I need to continue to make enough to live comfortably (and that amount unfortunately continues to increase), but more importantly, I want a job that continually challenges me.  In terms of programming, that means a job that allows me to use new technology, tackle complex problems, and assume responsibility for larger and larger features in terms of scope.  But on a team with several talented programmers, how do you provide career growth?  You can only have a handful of architects and lead developers, so simply promoting everyone doesn't work.  So how do you keep a team together while still giving everyone on the team a chance to grow?  Is this possible, or do programmers have to move onto other jobs in order to continue to grow and face new challenges?  Or do you reach a point where you just accept that you're at a good company, you get to write code in a somewhat enjoyable fashion, and you leave it at that?

3 comments:

  1. My response, or part of one anyway, is over here: Software-Development Career Paths: Organizational Quality.

    But also, speaking of promoting people quickly, I was just reading this: The Gervais Principle, Or The Office According to "The Office". Before it gets into the detailed analysis of the characters (which I don't follow very well because I don't know the US version), it presents some pretty scary ideas about promoting people quickly.
    ReplyDelete
  2. Good response. I look forward to your next post.

    I agree with you that if you're at a great company, then you should probably enjoy it while you can. Because like you said, the company probably won't be great forever. But even at a great company you may risk facing fewer challenges over time and becoming complacent - and complacency is not good in our industry.

    Is there any way for a company to keep a jelled, successful team together while still offering the team members consistent growth? Or is the only answer to leave and seek new challenges elsewhere?
    ReplyDelete
  3. "But even at a great company you may risk facing fewer challenges over time and becoming complacent - and complacency is not good in our industry."

    True, but the great companies I was referring to are the ones that are so great that, in DeMarco and Lister's words, "you'd be dumb to look for a job elsewhere."

    These companies would continue to challenge you over time and help you fight complacency by fostering continuous improvement.

    Do companies that perfect actually exist? I don't know.
    ReplyDelete