Tell us which menial yet essential consulting chores bore you to tears. Chip Camden's list includes features of system maintenance and network administration.
TechRepublic member and contributor Bob Eisenhardt (reisen55) wrote to tell me that he was spending a quiet Sunday afternoon at one of his clients' offices:
I brought up my Leaf Blower, hooked it to a wall outlet and when done doing an inside AVG anti virus upgrade, carried each machine outside (total of 12) and blasted the hell out of them. Huge clouds of dust out of the fans and the processor cooling towers. This is very important to do but not easy on the back nor technically exciting. It is also repetitive stupid dumb but also great therapy to see years of dust explode out of these systems. It DOES affect cooling though and they will run far better now that all are clean.
It is also a pain to physically disconnect everything and put everything back again and THEN check to see that everything is still working!!!
Stupid stuff, we avoid doing it. We should do it. Another one we avoid is BIOS upgrades, because sometimes it is just a pain to BIOS patch each individual machine if ALL are different, but here at least I have 12 identical GX210L systems I put in 2 years ago so that is one I can do next visit with relative calm.
Wiring diagrams. I did one a few years ago and have to do it again. Important when I need it.
Throw this one out there, let's see what stupid dumb stuff we all share a hatred for!
I have to admit, I don't blow the dust out of my own systems as often as I should. Being a software development consultant, my list of "stupid, boring stuff" includes most features of system maintenance and network administration. Other consultants who specialize in that sort of work (and get paid for it) might not see it that way. I have, on occasion, contracted an outside consultant to perform some of those duties when I had more than enough paying work to occupy my time. Usually I don't have enough of that work to reach the critical mass where it becomes more productive to hand it off to someone else than to do it myself. If I needed 10 systems to run my business instead of three (not counting VMs), then that might be a different story.
Software development itself has its own share of menial activities, even though most of them save you time in the long run if done properly. Organizing version control, maintaining makefiles, reviewing and updating documentation, deploying solutions to clients, updating development tools -- all these activities and more distract from my core mission of designing and writing code. Some might add testing to that list, but I consider that a core component of software design and development.
Even some code-writing activities can fall into this category. Depending on the language and framework used, setting up the scaffolding for the "real" code can be both a time sink and a bore. Bridge software (i.e., software that creates an interface between disparate components) often involves a lot of API mirroring, which means repeating yourself if your language doesn't support reflection.
Larry Wall famously said, "The three chief virtues of a programmer are: Laziness, Impatience and Hubris." Thus, I often try to automate software tasks that I find less interesting -- sometimes with a hubris worthy of Icarus, and results to match. I'd rather spend an hour figuring out how to write a script to do everything in one command than to take 15 minutes of typing similar commands over and over again. Maybe time itself isn't as valuable to me as spending it interestingly.
Then there's the long list of business management activities: bookkeeping, time and billing, collections, taxes, licenses, etc. Marketing also isn't part of software development, but it's an extremely important aspect of doing business as a consultant. Nevertheless, it's one more thing that geeks like me find less interesting than bit-twiddling, and it doesn't yield easily to scripting.
What duties do you find stupid and boring, yet essential? Have you considered any means of automating them?