I’m a developer, and I love what I do, it’s a great industry, and a very exciting field to be in. If you read my blog often, you’ll see I take every opportunity to mention how great this line of work can be, today I offer a somewhat different, less sugar-coated view.
There is a constant pressure on developers to be better, to do more, to produce more, sometimes more than is possible. The budgets are getting smaller, and projects becoming more complex, the pressure on a developer to deliver more is extreme.
While everyone strives to be better, this pressure is different, this is the pressure of a CIO explaining the shouting match that ensued at the last status update, the pressure of a senior VP explaining the project must be done today. These are the pressures that cause developers to push themselves to not just be great, but to attempt to achieve super-human productivity.
By pushing so hard, a developer can achieve an amazing amount in a short time. With the help of enough sugar & caffeine, it’s possible to pull 16 hour days, coding the whole time. When management realizes this, they turn the pressure up even higher, expecting such feats on a regular basis.
While members of management that deal directly with developers tend typically to not push for such attempts, senior management sees it as a way to get an extra developer, without cutting another pay-check. Why hire someone if you can get your current staff working 80-hour weeks (ideally for no extra pay)?
Once senior management sees that so much more can be done with the right amount of pressure, they will take full advantage of this fact, and turn even the smallest, least important projects into emergencies. This is a cycle, that once begun will continue to spiral out of control, at a largely unseen, but considerable cost.
The effect of this is clear, and in many ways tends to further feed the cycle. The first and most clear side-effect is the reduced quality of the product produced. A development team that is living on a caffeine diet will introduce for more bugs than a team working at a more reasonable pace.
These additional bugs are often met with reports going back to the developers, demanding they be fixed at once. Not only must the bug be fixed, but it must be done without adding any delay to the rest of the project. This simply leads further into the urgency cycle, and further increases the already intense pressure.
As time goes on, and a team falls further into this hole, the quality will steadily drop, along with morale and loyalty. For a short while, this pressure will result in amazing results, but in the long run will either destroy the team, or even the developers themselves. This pressure leads quickly to burnout, often leading to developers to leave the industry altogether.
The True Cost
The cost of this falls with greatest weight on the developers and their ability to work. As programming is such a thought intensive process, mental fatigue is a major concern. A developer that can’t think clearly is nearly useless, without clear focus, there will be nothing that resembles productivity – or the desired product.
The effect of mental fatigue, combined with the high stress levels quickly depletes a programmer’s energy and motivation. Leaving a developer that is slow, frustrated, and feels that the light at the end of the tunnel is no longer the next milestone, but a speeding train. Developers in this state often add little more than delays to a project.
While I often sugar-coat life as a developer, there are real drawbacks, of which this is but one. The pressure can be near crushing at times, but looking at the big picture, I do still love what I do. I still hold out hope for improvement, though I’ll not be holding my breath. One day, maybe.