I went to the June meeting of the LOPSA-NJ group tonight, where we held a roundtable discussion talking about traits that make a good system administrator. Here are some of the traits we came up with.
Organizations are not static. Nor are their IT departments. If you’re in a big company, being adaptable might mean keeping your job through cutbacks, because from a business perspective, ‘adaptable’ might mean ‘repurposable’. Adaptability also means you have enough of a technical background to apply prior knowledge and experience to new problems, new paradigms, new platforms, etc.
I once was on a client site (around 2000-2001), on the last day of a project wrap-up, and I was talking with a business manager and the company’s IT director about their Exchange issues. I suggested that, since they had several Solaris and Linux boxes, and weren’t using any fancy features of Exchange to lock them to it, they might consider using Sendmail instead. After answering a few questions and talking a bit more, they decided to take it under advisement. I was to return in two weeks for a follow-up on a different project, and we’d discuss it then.
When I returned, the two guys whose jobs were to maintain the Exchange servers were gone. Turns out, the IT director replaced the Exchange servers they were used to with freshly ground Sendmail servers after hours one night, and they came back in in the morning to find… no Exchange servers! Just an old Red Hat welcome screen on the server terminal!
The first admin left the same day. The second one tried to stick it out, but it didn’t go well, and he left as well. Of course, there are other issues at play in this scenario, but one of them is adaptability. Besides, I love that story.
This is a trait that came out of discussions that revolved around things that could’ve gone better if the admin didn’t assume that what they were doing was the right way to do things. I think it boils down to being conscious of one’s own ignorance, and reaching out to resources or people that can help you be more confident that you’re taking the right approach.
The other half of this trait is being genuinely curious about technology, and having a passion for exploring technology. Keeping up with new tools and techniques is, imho, an essential part of being a good system administrator. Every different technology you learn about makes your knowledge of all the other ones that much deeper, and being inquisitive and poking at new tools is a part of a sysadmin’s “lifelong learning” process.
While it’s great to know about the latest developments in the sysadmin space, there should be a clear separation between what’s “up and coming” and what is “production ready”. Just because that “0.01 alpha” web server does something in a way that is theoretically better than Apache does not merit the replacement of the Apache servers that are running your company’s site. Telling management that it is will likely be a near-term career limiting move. If you like the technology, follow it. Contribute to it. Document it. Help to make it better in some way. Run your own site with it, and try to get your friends to try it out. Put yourself on the mailing lists where people go to get help or complain about it. In short, invest some of yourself in it. When/if it finally catches on, you’ll be one of very few experts around. This is exactly what happened to me with Linux 😉
Grace Under Fire
Working well under pressure is essential, especially when all of the things you’ve done to help avoid pressure-cooker situations fail you. If you can’t keep a clear head when the world is crashing all around you, you’re more likely to make things worse than better. Perhaps this comes with age or seasoning, or maybe it’s a learned process – I don’t know which. I *do* know that I used to get really downright angry with myself when I couldn’t figure out a problem or when something I did caused hardship in some way, but as I gained experience, or age, or a greater level of introspection, my tendency to get worked up beyond a normal sense of urgency disappeared.
Not all sysadmins are particularly good at dealing with less technical folk. Heck, some sysadmins aren’t good at dealing with other technical folks… or anyone else! Some of them know it, but some of them *don’t*, and I’m not sure which is worse. Nobody, in any job role, wants to work with a grump, or a naysayer, or a zealot, or an arrogant bastard who thinks all users are idiots who don’t deserve to use their precious technology, and certainly are not worthy of their attention and support.
Yeah, BOFH is a great comic. But what makes me cringe sometimes is that I’ll read something there and think “someone out there has done this, and he has the same title as me”.
Well, we’re a group of systems administrators who live in NJ, and Tom Limoncelli is a member. He didn’t make this month’s meeting, so we felt obligated to mention time management as an essential sysadmin skill. It’s not that we don’t genuinely believe it, it’s just that we’ve all seen all of Tom’s talks, multiple times, and we all know the gospel by now, so well that this doesn’t even need to be said. The surprising thing is how long it took for someone to break down and say it.
Time management is important. What’s just as important is how you deal with other people in a way that helps you manage your time, which Tom covers quite well in his book, but you don’t see in many book reviews. If you haven’t read it, and you’re not already on one of the various time management bandwagons, I highly recommend Time Management for System Administrators, as it does a great job of boiling down what’s in all of the other fluffy time management books out there, and putting all of that stuff in the context of what we do for a living.
Most of the conversation over the course of the evening consisted of stories about people involved in interesting situations with technology. But really, the stories were about the people, not the technology. This attribute managed to squeeze a single technical requirement out of me, personally, and I think after some refining I narrowed that technical requirement down to something like “should be able to solve problems using code, in the absence of a more practical/available solution”. Of course, the “Pragmatism” requirement should enable a good sysadmin to decipher when code is the best route to take.
Outside of that, the generic ability to rationally think through a problem to get at its root and then solve it is invaluable. Not only that, it is essential. Required for success, even. While I think our jobs as sysadmins put this skill pretty high on the list of required skills, I don’t think that you necessarily have to have learned problem solving in that context, and most probably don’t. Good problem-solving skills are honed from childhood for some, and are learned in later years for others. Either way, the skill probably isn’t a result of being a sysadmin. Quite the contrary, good problem solvers might be attracted to system administration because the job is perhaps viewed as primarily a problem-solving (and maybe, thereby, heroic?) role.
There are entire shelves in book stores about how to become a better problem solver. They’re just not typically in the geek section of the book store, because (ta-da!) problem solving is a much more generic, high level topic. Not that someone couldn’t write a problem-solving book for sysadmins or something (hmmmm….).