Ah, programming, something that most systems administrators can’t do to save their lives, beyond the simple scripts we write to help manage our sometimes obscure environments.
The title of this post is a poke at programming (in general), and germane to the blog post I reference below.
There is a huge difference between those that can code and those that can admin. I have brought this up many times over the years to anyone who would listen (and even when they would not). Programmers do not make good admins and I stand by that statement.
Yesterday, George Reese of enStratus wrote a blog post his O’Reilly blog describing this for the normal layman and also reminding us that administrators don’t make good programmers. He makes a very good point. His reference point is in regards to cloud computing as the basis for his post, though I feel that what he said fully encompasses the difference between the two opposing factions.
It does not matter if your system is virtual, physical, public cloud, private cloud, on your iPhone – the point is that there are differences between those that administrate and those that develop, and Mr. Reese does a great job disclosing those differences.
My favorite part was his statement about ‘Death by 1,000 Cuts’ – this rings so true but also affects so much more than just a developer working on administration. I have seen some mighty big cuts done by admins on many a system, from the normal ‘this was just a quick setup’ to my favorite:
# April 1st, 1998
# quick script to do <x>, needs to be rewritten for production
# the above needs to be rewritten if we put this in production
ack! I have seen this way too often. If it was a quick anything to do something then it probably wasn’t well thought out for long term use. I have written these kinds of things myself and fallen victim to my lack of forethought. With age comes wisdom and I haven’t done that kind of thing in a long time. Like weeks. :) (I am kidding)
Good administrators need to look beyond the just get it done mentality. The quick hacks we do should never be permanent but instead should be the symptom bandaid only used when we need to get pressing work done, then remove the bandaid and fix the problem. It is more than just about scripts, it is all about the tuning, configuration, and eventual production work done on any server handing our business.
Virtualization is great for this – you can do up all the quick hacks you want to test and investigate, but it is also easy to build that new image for production, put what you have learned into it, then deploy that, not the hackery.
I am not a programmer but I bet the same holds true for them – do not just get it done but instead put thought and design into it.
I won’t write a tome today about systems administration but it is always on my mind…