Paying Your Dues On Maintenance

June 5, 2012

Maintenance sucks. I don’t care who you are, or what you’re into, maintaining legacy code sucks. You spend your days getting asked to fix other people’s bugs in a labyrinth of crappy code that was clearly written by angry monkeys who could inexplicably hurl feces at a keyboard in a manner that would yield compiling code. In fact, it’s not called “maintenance” if the code is good — that’s just normal development. If you’re on maintenance, then you have done something very wrong at some point in your life — or you’re just starting out. Much like anyone new to anything, you’ve got to pay your dues. In software development, that’s working maintenance.

In many ways it’s a form of hazing: First, you are met with constant negativity in that everything you are asked to do is in terms of something that is broken, which you are now responsible for. Second, when you are asked to fix something, you are expected to immediately come up with a time frame for when it will be fixed, which is completely unknowable. Third, you will encounter every type of obstacle software development can throw at you, to fix even the simplest things (a text change could require learning how to build and deploy a 10 year old application!) And finally, upon the successful fixing of the bug, you are not greeted warmly with praise for doing the impossible, but instead are nonchalantly handed the next set of bugs to fix.

Maintenance is a rite of passage all engineers must pass through at some point in their careers. In many ways, it’s a very good thing. You will suffer through the agony of wading through gobs of poorly factored poop, which will help you appreciate clean code. You will learn what it’s like to have absof*ckingly no clue how to go about solving a problem but have to solve it anyway — on a schedule. Appreciating clean code, and learning to persevere, regardless of the obstacles and time pressures, are hallmarks of excellent engineers. I know from at least one personal experience that great engineers can be born from the hell-fires of maintenance.


I would like to point out that if we work together today, or have in the past, my opinions may or may not have been influenced by working with you. Most likely they have been, but I have to say that to avoid offending people. You're so vain. I bet you think this site is about you.