If you’ve been working in software for any length of time you may have come across the fable of the chicken and the pig. I’ve heard a couple of different variations on the story, but the basic idea is this:
Consider a meal of bacon and eggs. In order to produce the meal, you needed both a chicken and a pig, but there was a key difference in the role that each played: the chicken was involved, but the pig was committed.
This story is complete bullshit. You’re supposed to think that people who are “pigs” are more valuable to have on your team, but that’s not always true. I could go on about this, but it probably deserves its own post. For now I’ll just say that most teams need both pigs and chickens and and those roles can be temporary and interchangeable. Not everyone needs to be one or the other all of the time. Unfortunately I think the software development industry puts a lot of pressure on people to be pigs all of the time. I know that I personally felt that pressure for the first ~7 or so years of my career. I allowed my work to be all-consuming. I worked a lot and I thought I was happy. I was not happy. I eventually crashed. Hard.
This is a painful thing to write about, but if it helps someone then it’s worth writing. Early on in my career I worked as a consultant with government agencies. When I first started this job I was 24 years old and ended up leading a team of 7 developers (all of whom were my senior) on a medium-sized project that turned out to be an incredible success. Personally I think my involvement in that project was far being an important factor in its ultimate success (after all, I was 24 and didn’t know a damn thing), but I quickly gained a reputation as someone who could deliver. I was thought of as a real “pig” by my peers and in the consulting world that was huge. I was given increasingly more responsibility that I happily accepted even though I knew that I was susceptible to getting stressed out. Things came to a head a couple of years later when I was put onto a project that changed the course of my life.
I won’t get into specifics or name any names, but I was asked to come in and “rescue” a project that was circling the drain. The development team that was originally hired to do the work had grossly oversold their skills and experience and had made a giant mess. I can’t even begin to list the serious issues with the software that they had delivered but the bugs I discovered there were egregious. What was particularly shudder-inducing about the entire situation, however, was that the software was actively being used in the wild. There were deadlines and it was shipped out even though it was completely and utterly awful. I was charged with fixing the bus while it was hurdling down the highway. I did OK with it at first. I threw everything I had into it. I knew it would require some real elbow grease for awhile, but eventually the constant inflow of bug discoveries would end. It had to end. Right?
I established a routine with this project. Every day I would come in and read an e-mail that outlined some new horror of a bug that had to be fixed. Each new bug was more severe than the last. The cadence to this death march became louder and more fevered every day. I sometimes think that i might have been OK if I had gotten at least one day without the sky falling, but I never did. I just kept plugging away and working harder because it was the only thing that I knew how to do.
My fiancee at the time probably noticed the effects of the stress on me the most. I was constantly distracted and melancholy. I was unable to relax and enjoy anything. I was drinking every day after work; sometimes to excess. She would tell me that she was worried about me. I was also worried about me. I would sometimes break down into tears for no reason. I don’t think that I actually have any direct recollection of this, but she has recounted it for me since and I think I’ve filled in the blanks in my memory… one day we were driving on the highway and I asked her if she ever thought about what would happen if you just veered off the road at 70 mph. To this day I’m amazed that she didn’t leave me over this because I was completely falling apart.
I was scared to quit. I was scared to let my team down. I was scared that people would think that I couldn’t handle the stress of the job. I was scared that I would be thought of as a failure. All of these fears were well-founded. I did let my team down. I couldn’t handle the stress of the job. I had failed.
I did end up quitting. The big turning point for me was in a meeting with two project stakeholders that I worked with very closely. They also worked closely with our users and had created “colorful” impressions of some of the more difficult ones. I jokingly said something like, “wow I hope you don’t have an impression of me”. They looked at each other for a bit before silently deciding that they would do their impression of me. I was horrified by it; not because it was unflattering (which it was), but because it was accurate. They portrayed an insanely stressed out person hemming and hawing over minute details, constantly sighing in exasperation and literally trying to pull his hair out. It was spot on; that was the person that I had become. I turned in my letter of resignation the next day.
I didn’t have another job lined up when I quit. I didn’t even really have a good idea of what I was going to do. I strongly considered a big change like going back to school and getting into an entirely different field or trying to start my own business. I didn’t do either of those things that I’m glad now that I didn’t, because quitting that job ended up being a great career move for me, but I’ll save that story for another post.