Taming the beast
As I sit here staring at the blank text box that will soon become my blog post, I mull over what has become of one of my projects. Like all projects that I do, what begins as a smallish application usually grows into something of a monster by the time everyone has their ideas and feedback in. Now this is to be expected, but what it leads to is programmer burnout. The programmer is asked on larger projects to keep track of millions of tiny details, any of which can go horribly wrong and destroy large portions of a project. As each seemingly minute task is heaped on, it’s as the saying goes, like the straw that broke the camel’s back. I often refer to an old Married with Children episode when I try to relate this to anyone in my general generation. The episode was ‘Kelly Knows Something’ where Al (the dad) realizes that Kelly has a knack for remembering sports trivia, and plans to put her on a game show. But as Al feeds her information, she loses other phrases and images. As a programmer I find that for every new ‘enhancement’ that gets added in, I could very easily forget about the functionality of something else in the system, or some other small project I need to accomplish. I’ll get side tracked and want to move on to a more exciting part of my job, and leave something unfinished. It drives everyone around me crazy, but I don’t think they understand what it is that I have to do on a daily basis. I’ll eventually get back to it, but only because I have had to create a huge system of checks for myself, so that details do not get lost, even if that includes having someone else remind me.
So what do I do to keep myself from going completely insane? Every moment I have to create a checklist. Sometimes I can rely simply on an actual checklist, like a spreadsheet, but usually my mind is moving too fast to keep up a spreadsheet with that, or I am interrupted 50 times by various people and don’t get to that step, and have to start over with my mental checklist each time. For each item on my list I have to have another series of steps that I have to accomplish in order for this piece of information to be completed. Eventually my checklist becomes this giant spanning tree that if visualized would become a massive overwhelming item. This is when I begin to get overwhelmed, panicked, frustrated. At this point I have to take a step back, clear my mind and just focus on the first step of the first item I have to accomplish. This in itself is difficult enough, because usually the first item has a tree on its own. In the back of my mind I keep thinking ‘each one of the branches needs careful attention or it will cause me to lose time later’ but the best approach is just to focus on the first task, get through it and move on to the next.
See, already during the of writing this blog I’ve become incredibly distracted from what I have to accomplish and wind up wasting precious time, and in the process, have forgotten the point I was getting to. Oh well. At least I have a plan of action for the next batch of fixes. Start with the first thing and don’t get overwhelmed at the 13 pages of comments.
What we do is never understood, but only praised and blamed. -Friedrich Nietzsche