I once thought I had traveled a unique career path. Graduating from college with a degree in computer engineering and electrical engineering I was on fire to be a manager. My dad had worked for the same electrical contractor for 30-something years and I knew everyone from the Chairman of the Board down to the woman who worked the front desk. I had a major “in” and was quickly shuffled into a management training program, with my sights set on one day becoming CEO of the $600 million firm.
18 months later I left for a job writing software for a dot com in Sacramento, and within 3 months I was running multiple project teams (albeit, small ones). I was young, it was fast paced, and I loved it.
When that company experienced difficult times in 2001, I transitioned into contracting, which I did for about three years before taking a position as the Application Development and Database Supervisor at the City of Pasadena, directly responsible for the management and supervision of 10 developers and DBAs. The prestige? High. The paycheck? Fat. The job? Hated it.
I couldn’t get past a number of issues with this “perfect” position, namely that I couldn’t hire and fire as I pleased, our technology was dated, and it took movement from the hand of God himself to be able to write a few lines of code. On a side note, many of the people I worked with at the City were very good to work with and knew how to do their jobs. Pasadena is one of the most progressive cities in the state, if not the country, in terms of technology. But the job didn’t fit me and I started to interview elsewhere.
By this time I was burned out on managing people and knew what I wanted to do: write code.
“Do you want to manage?”
Nope, I want to write code.
“Do you want to run a team?”
Nope, write code.
“Do Architecture?”
Write code.
“Talk to your co-workers?”
CODE!
During this time an interviewer asked me “Where do you see yourself in five years?” and my answer was “I just want to write code. I don’t want to manage people. I’ve been there and I didn’t enjoy it. I want to get back to learning .NET and come up for air in about 3 months.”
And code I did. I arrived in the morning, threw on my headphones and wrote mad stacks of functionality. I produced more software in 6 months than I had in the previous year. It was a fun time and I look back on it with fondness, if not a bit of envy. But I was naive to think I could continue doing that for very long.
After 6 months I was asked to run a project. I accepted and what started as a two-person team evolved into 10 developers cranking on the largest software project our company had every undertaken. And I was at the helm.
During this time I didn’t write a line of code for 15 months, but my Visio skills were like nothing you can imagine. I knew every keyboard shortcut and every right-click. I saw Visio shapes attacking me in my dreams and I knew the exact mouse movements and clicks to re-size them so they could do me no harm.
I left the company within a year of completing that project. I had voiced my – lets call them concerns – many times but the “good of the project” always overruled my desire to return to writing code. After nearly a year of asking to return to the battlefield, I turned in my badge and made my way back to the world of consulting.
I discovered that although I enjoy running small teams, I have an innate desire to create. And unfortunately, while managing people requires creativity, it does not allow you to create. Although my teams and bosses liked me and my results, it did not fulfill deep need to take dead bits and make them into something living.
We’re Not Alone
Within the last year I’ve heard nearly identical stories from four five other developers whom I’ve known for many years. One friend, while telling me his tale of being forced into project management, described a conversation where he told his manager “I just want to code.” I laughed out loud at his word-for-word use of what had become my mantra for the past 15 months.
Another friend of mine said:
“I feel I may be on a similar track to what you’ve traveled, starting from a developer and moving into project oversight on a $1 Billion project. Maybe one day I could be a programmer again, having come full circle. Programmers are not bottom feeders but something to aspire to, even for people who are currently managers, not just for college grads looking for entry level positions. Working my way ‘down’ to a programmer might work my way back to a place I really enjoyed and have fond memories of. Instead of reverse engineering it’s sort of a reverse career track.”
I imagine there are more stories where these came from.
Why It’s Bad
Promoting developers into management or project management is not bad. On the contrary, I have most enjoyed working for managers who at one time in their career made the 1’s and 0’s dance.
The problem is not that developers are promoted, it’s that the developers who tend to be promoted are the “big producers,” the ones who come through on their projects. These are the same developers who stay late and read software books on the weekend because of their love for programming; that’s why they come through on their projects. Promoting someone who loves to write software into a position where they will write little or no software doesn’t make an ounce of sense.
Someone else said this first, but if Willie Mays played for your baseball team would you promote him to manager? True, he delivers more than his teammates, and he is one of the best players of all time, but a player of that caliber should be left where he can do the most good: smacking balls out of the park. Moving him into manager not only reduces his direct contribution to the team, but is done under the assumption that he has a clue how to manage his fellow players, instead of what he’s obviously demonstrated he can do: hit a baseball like few people in history have.
The answer? Promote developers who demonstrate management skills instead of top notch development skills. They may be hard to find, but top notch developers are even harder to find.
The end result of promoting your best developers is at best a few unhappy months or years as they struggle with their unhappiness and their desire to return to code, while (perhaps) not wanting to disappoint you. The worst case is they feel unbridled resentment as you watch them rush out the door like there were a 70%-off sale at Barnes & Noble.
Why We Fall for It
Every developer I’ve talked to said the same thing: they went into management for the prestige, the money, pressure from their bosses or upper management, and not wanting to “stir the pot.”
Perhaps it’s the fact that the best developers I know are easy to get along with, good listeners, and generally pleasant to work with. Hence, when a manager or executive asks them to run a huge project they take it as a challenge and a compliment. It’s not until 10 months later when they’ve lost their ability to write a while loop that they realize they may have made a mistake.
If you find yourself in management and wish you were coding, don’t wait until you’re completely burned out and bitter; do yourself (and your company) a favor – and do it now. Get yourself back into the code jockey seat. If your current company won’t work with you, there are companies out there who will.