I’ve reached the conclusion that working on a computer degrades my job performance. This is a problem because, well, I have a computer job. See, computers, when properly hooked to a network, are the gateway to a giant world of distractions, every one of which is more exciting than whatever it is I am supposed to be doing.
I have reached the end of the development cycle for an important piece of software, the second such major project I’ve finished this year. It handles the registration and backend administration of accounts for limited non-degree seeking students enrolling in vocational education courses at UCF – exciting, no? It was exciting, at least at first, for me, as it gave me the chance to scrap the poorly-written Cold Fusion application my department had been using and replace it with shiny, tight, well-written PHP. But now the love has gone from me completely.
Each morning I wake up loathing the idea of working on this beast. I’ve reached the point that I am able to look back at early design decisions and realize that, in many cases, I made the wrong choices and now am forced to work around the results of those decisions in order to add functionality that was never intended in the first place. Though I have worked hard to keep the project focused, about a dozen additional tasks have been added to it, roughly tripling the length of the code involved and making future code maintenance a nightmare that I am glad I will never face. I suppose this is how every development project ends, standing amongst the rubble in a pool of sweat and blood and broken dreams – or something.
All that is left is to code a module that automates the sending of e-mail notices to students that forget to send in their signed registration forms after entering their registration data online. If we were dealing with an intelligent, informed student base this wouldn’t be such a big deal, but unfortunately around 75% of the students we deal with are sent at least one of these letters in the course of the registration process. This amounts to a few hundred such e-mails in a month or so, all composed manually by the front office staff. It seemed like a worthwhile place to increase productivity. It also seemed like a relatively simple programming task, but unfortunately that has not turned out to be the case.
So that is what I should be doing right now, but I’m not. I’ve already spent the last hour reading weblogs, and I suppose I’ll probably do the same in the nine o’clock hour. Then I have some homework to do, and perhaps after that I will continue toiling in the trenches, trying to get a time-check algorithm to work correctly instead of entering an infinite loop and spitting out so much mail that we end up on the receiving end of a nasty conference call with a security guy at the NOC.
Then again, maybe I won’t.
Don’t worry. It’s typical for us programmers to feel this way. The best projects are where a prototype is written and used to allow all the unforseen requirements to bubble up, and then a new version is written with all these in mind. Unfortunately, most are not willing to foot the cost of a good prototype phase…
Just don’t lose your job. Avoidance can become a bad habit. (Believe me, I know what I’m talking about.)
Left by Trevor Hill on July 10th, 2003
Thankfully, I’m quitting my job on July 31st and going to China, so I don’t have to worry about losing it too much. I’m sure they’ve caught on, but getting rid of me now is just too much paperwork :).
Left by John on July 10th, 2003