Was the reason you couldn't stand being a manager connected with the reluctant DeveloperTurnedManager aspect?
I didn't want to rant and ramble, but here it is (sorry about the long-windedness, but the more details I write down, the more insights I develop):
It was a variety of factors. Being "shanghai-ed" to be a manager was one of the things that contributed to my downfall. I accepted a job as a senior developer, being promised I'd get to work on some things that matched my interests, and to work with a group of people I had enjoyed working with before. Then after a couple of weeks they said "Hey Kris, you know about [technology X], would you mind spending a few days writing a couple of sections of a design document?" and I said yes. Then a few weeks after that, they said "Hey Kris, would you mind serving as technical lead for a few weeks for that stuff you designed?", and I said okay. And a few weeks after that, they said "Hey Kris, we need you to be the development manager for the entire project for a few months" and I said okay.
So, agreeing to do "a few days" of design work turned into twenty-six months of management work.
I know I could have said "No" at any point in that process, and saved myself a lot of trouble, but I liked accepting challenges and felt obligated to try to do whatever I was asked to do. By the time I figured out how deep I was in, there was no graceful way to get out.
There were other issues. There was an already-signed fixed-price contract, with liquidated damages for not being completed on time. So scope-of-work, schedule, and budget were non-negotiable. The first thing I did was to make my own estimate of what it would take to complete the scope of work, and my estimate was 210% of the project budget. That should have set off warning bells for me and the upper-level managers, but I just decided I would do whatever it took to complete the task that had been assigned to me. So, I was stuck with an unrealistic budget and project plan, and as we went farther over budget and away from the plan, the managers kept pressuring me to somehow bring it all back in line.
Being "tricked" into accepting a position that I didn't want and didn't know how to do was the first stressor. The others were my own perfectionism and arrogance. I had a good reputation that I valued. Despite being clueless, I felt a responsibility to do everything that I thought was expected of me. And I thought I was so talented that I could perform the necessary miracles.
The team members assigned to me were junior people, most of them out of school for a couple of years. With the limited time and budget available, I decided that it wouldn't make sense to try to train them to do things they didn't know how to do. Instead, I decided to assign them the "easy" work, and to assign myself all the "hard" work.
In a weird bit of insanity typical of overburdened people, I realized that everything was hopeless, and I refused to push my team to work themselves to death trying to meet the deadlines. Instead, I pushed myself to try to fill in all the gaps myself, thinking that I could make up the difference all alone. So, for over two years, I worked sixty hours a week, with no vacation. Every setback, every missed deadline, and every bug was something I treated as a personal shortcoming. I know--it makes no sense--but that's what I did.
Of course, I never had time to do all that development work I'd assigned to myself, because I was too busy managing people, attending meetings, writing reports, updating schedules, and fighting fires. (Eventually, a DreamTeam
of senior developers was assigned to the project to clean things up, but everything was in such a sorry state at that point that the end product was nothing to be proud of.)
The only thing that kept me going was the hope that, whenever I got the project finished, I'd get to work on something more interesting and rewarding. But in discussions with the project manager and other company managers, it became clear that I was going to be responsible for ongoing support and expansion of this project for the rest of my life. I couldn't bear that: the project had become the embodiment of personal failure for me.
I think I was close to a nervous breakdown. I was unable to sleep. I was getting scared of the pale-skinned bleary-eyed man with graying hair that stared back at me from the mirror. I got angry and snapped at people all the time. My right eyelid started twitching uncontrollably. I lost the ability to concentrate, so I had trouble reading, and it was taking me longer to to do my work and to learn new things. I was unable to get any enjoyment out of anything. (I looked into getting counseling for stress and depression, but I never had time for it. Ha-ha.)
I was thoroughly disgusted with all aspects of software development. I was shocked by the ManagerSpeak
I heard coming out of my mouth when talking to the team. I felt incompetent, and had lost all confidence in myself. I was ashamed to be making so much money for doing a job so poorly. Other events (9/11 and and my thirty-fifth birthday) made me think about the need to stop spending my life doing something I hated.
So, when the project passed acceptance tests, thus relieving me of immediate responsibilities, I quit before anyone could assign me any new tasks. I felt guilty and disloyal, but I knew I just couldn't work productively any more.
Having been away for a couple of months, I have a better view of what I was doing wrong. I was too tough on myself, and too unwilling to accept my limitations. I took everything too personally. I should have objected more strongly to the budget and schedule that were given to me. I should have delegated more responsibility to people on my team, and allowed the team members some time to learn how to do new things. I shouldn't have let myself stay stuck in crisis-management mode for the last year of the project. I should have had the guts to institute XP practices. I should have taken a vacation or two.
Most importantly, I know I should have done the things I knew
needed to be done, and refused to do the things I knew
were impossible. But instead, I tried to do what I thought everyone else wanted me to do. I'll trust myself from now on, and I'll resist entering that "dream world" where everyone pretends that everything is going according to plan.
And while it felt horrible at the time, the experience was beneficial. I learned a lot about project management and about contracts, marketing, and accounting. I also learned some things about myself: I'm not as smart as I thought I was, but I was surprised to find that I was pretty good at dealing with clients, and that I enjoyed dealing with lots of people with lots of different roles.
The most important lesson was that letting my work make me miserable is my fault
. Other people may have put me in a bad situation, but I let it destroy me emotionally. I can't control everything, but I can prevent this from happening to me again.
I've also come to accept that I wasn't really as bad at it as I thought I was. I thought I was a complete failure, but the customer is pleased, my former employer offered me all sorts of incentives to stay, and they are now asking whether I am available to do consulting/contracting. So I guess I must have done something right. It's unfortunate that I had to quit to get any positive feedback about my work.
In hindsight, I know all I really needed was a couple of weeks off and the opportunity to work on something other than that DeathMarch
project. I may take a job as a manager again some day, but for now I need to do something where I can demonstrate my own competence to myself.
I get a kick out of reading some of the wiki pages I wrote a few months ago (while I was working): ProgrammingIsNotFun
. I still agree with much of what I wrote, but I can look upon it at a distance now. Software development isn't really that bad, and I look forward to doing more of it. But my extended vacation has been nice too.
My right eyelid has stopped its uncontrollable twitching, so I think I'm recovering from the ordeal. I just wonder if my gray hair will turn dark again.
There are ways, none of which are natural.
To do what? Turn gray hair dark, or turn Developers into Managers?
For an interesting take on measuring project success including cost of staff BurnOut
, I highly recommend Thomsett's article on Project Pathology, which also has good tips for avoiding failure:
"What our group has learnt is that there is a common set of causes for project failure, a common pattern of project degradation and failure and common symptoms of projects that are failing. Our findings are in conflict with many of the articles and books addressing project failure.
Thanks for that link. The "Patterns of failure" section describes the evolution of my project perfectly. We were into Stage 4 after just a couple of months. -kj
Learning to accept your own limitations is difficult. A lot of driven, intelligent people basically act as if they have no limitations, which is a DoubleEdgedSword
. On one hand, that spirit of workaholism has led to a lot of amazing accomplishments. But on the other hand, it can lead to pushing yourself too hard for weeks, or months.
It's important to remember that the world often works to trap ambitious people like this. If you take on too much work, and you succeed, many organizations will not actively try to reward you for this -- instead they will give you even more work. So it doesn't matter, Kris, how smart you are -- eventually you will get too much work. Eventually you will break.
Unless, of course, you learn to say no. It's hard, saying no. But you should try not to think of it as a matter of turning people down, as much as a matter of protecting myself. When you burn yourself out, nobody really benefits.
The first thing I did was to make my own estimate of what it would take to complete the scope of work, and my estimate was 210% of the project budget. ... So, I was stuck with an unrealistic budget and project plan, and as we went farther over budget and away from the plan, the managers kept pressuring me to somehow bring it all back in line.
I live in the city of Barrie. Toronto is about an hour's drive south of me. Chatham is another 3 hours past that. My estimate of for getting there is about 5 hours during the day. Somebody not familiar with the territory might think that I should be able to do this in 4 no problem, and 3 if I really push. And I have to agree. If everything went perfectly, I could probably make the trip in 3. But the problem in promising anybody this is that in order to do it, I'd have to break the law, I'd have to predict traffic with near perfect accuracy (and that forcast would have to be favourable), and even then, I still might not make it due to the simple fact that driving at 180km/h is simply not safe. And yet, to somebody who has never driven any significant distance, this will all sound like vague handwaiving and excuse making. And when the trip ends up taking longer (due to speed traps and traffic), costing more ("I thought you said you could get 50 miles to the gallon!"), or simply ending prematurely...
And what you don't want to know is that I've heard more than one instance of this - I believe they called it the good ol' days.