Since this is my first post on the new Fandotech blog, I think an introduction is in order. My name is Mike Conigliaro, and I’m a Systems Analyst working in the datacenter here at Fandotech. I set a personal goal each day to do less work than I did the previous day, with the ultimate goal of automating myself out of a job. Sound crazy? If you work in IT, I’d say you’d be crazy not to work this way.
It was in the Camel Book that Larry Wall (creator of the Perl programming language) famously outlined the three virtues of a programmer:
Laziness – The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it.
Impatience – The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them.
Hubris – Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
Unfortunately, it seems that many system administrators simply don’t think of themselves as “programmers.” I believe this is a mistake, and that those who dismiss programming as a skill strictly for full-time software developers do themselves a disservice for two main reasons:
First of all, we all know that no software is bug-free, and no vendor will ever be able to fully accommodate the specific needs of every one of its customers. Thus, it pays to be able to fix bugs and do your own customizations when needed. This is why good administrators love open source software. Some of us are far too impatient (see above) to wait for vendors to get around to fixing bugs and implementing the features we want, so we just do it ourselves! But even if you don’t have the time to write new code, simply being able to read and understand existing code can help immensely when trying to troubleshoot a problem.
Secondly, because computers are one of the most powerful tools we have for performing repetitive tasks quickly and accurately (whereas even the best human beings are slow and error prone), it is in every administrator’s best interest to make the computer do as much of their work as possible. I believe that every good administrator should constantly be asking him/herself “How can I automate this?” In Mike’s ideal world, this simple question would be the official mantra of system administrators everywhere!
So now that I’ve convinced you that programming is one of the most powerful skills a system administrator can have in his/her arsenal, I encourage you to learn to program, then find a small task that you do on a regular basis and figure out how to automate it. So what do you do once you’ve gotten good at this and automated yourself out of a job? Well, just think of 100% automation as perfection. Although you’ll never get there, it’s something that you’ll want to get as close to as reasonably possible. The point is to automate to the best of your abilities so that you can spend less time on menial tasks and more time on the fun things that make your job worth while.
Mike Conigliaro

