Some thoughts on a body of knowledge for system administration

December 5, 2013

Earlier this week I read an entry from this year's SysAdvent, Introducing the Guide to Sysadmin Body of Knowledge. If we're going to talk about a sysadmin body of knowledge, the first thing we need to talk about is whether this BoK is intended to be descriptive or prescriptive.

A descriptive BoK essentially restricts itself to an inventory of practices with descriptions about what good or bad things can happen when you use the particular practice. That's why it's a descriptive BoK; it simply describes things. A descriptive BoK generally should make an attempt to be even-handed or at least honest because otherwise it's not really honestly descriptive.

A prescriptive BoK says 'these are best practices and you should do them'. This almost necessarily comes with a side order of 'these practices are bad and should be avoided by all right-thinking people'. There are two problems with this. The first problem is that this is intrinsically a strong editorial stance on how people solve problems in system administration. This is going to be controversial.

The larger problem, a problem which also afflicts a descriptive BoK, is that system administration is nowhere near being a settled and fully developed field. Best practices in system administration are evolving on an ongoing basis as people come up with new solutions, try them out, refine them, work out how to make them simpler and easier to use, and so on (sometimes also with 'and discover that they don't work'). A prescriptive BoK that says 'do things this way' is freezing the state of the field as it is right now (at best). Unless the BoK is constantly updated, tomorrow and next month and two years from now it will still tell you to do things in what was the best practices for today, not where the field has moved to by then.

To get a more solid idea of what this might mean for the field, imagine that you had a BoK for the field that was compiled five years ago. How many of what are now considered best practices would be mentioned? How many now-deprecated things would be recommended (or at least not disavowed strongly)? One can get an idea of this by looking at old books on system administration (which is basically all of them today) and asking what they're missing.

A prescriptive BoK is usually considered more desirable by people because it tells you what to do, but this very feature makes it more harmful when it's out of date. The out of date BoK is not only silent on new things, it implicitly tells people not to do them. To do things in what is now the new best practices you must actively go against what the BoK is telling you to do. The result is that a respected prescriptive BoK would effectively freeze the parts of system administration that it described; new (best) practices will move through our field only very slowly until the BoK was revised and people learned about it.

A related issue is that people are probably only going to be willing to reread the BoK so many times before they throw up their hands and abandon it entirely as too much work to keep up with. Again this has implications for a constantly evolving field where you should really be revising the BoK every few years.

Now let me be optimistic (or at least temper my pessimism here). I do think it's possible to create a body of knowledge with general knowledge and principles that have proven timeless or are likely to be, and that this would be a quite useful thing to do (especially if someone can talk coherently about various underlying principles). But such a body of knowledge is not going to deliver specific actionable 'do this thing' advice, it's just going to be a high level guide.

(This elaborates on some things I brushed lightly over back in my earlier entry on professional knowledge, certification, and regulation.)

Written on 05 December 2013.
« sudo is not an auditing mechanism
The three levels of read-only NFS mounts »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Dec 5 01:02:39 2013
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.