System Administration is maturing and, yet, there is no accepted standard curriculum. It is ironic, and somewhat scary, that a field that society is more and more dependent on has no formal, accepted, educational path. I propose a framework that is similar to that of the electrical/electronics industry.
To become a doctor there is a generally accepted educational path. Undergraduate "pre med" or biology program, medical school, internship, and so on. It gives me great comfort that the doctors that I see follow a formal path. Sysadmins, however, often "fall into" the career. I know many sysadmins whose formal education is in physics, for example, because it teaches them the rigors of mathematics, measurement, and thinking in terms of systems. I know many sysadmins who got their start with computers as a hobby by experimenting at home, possibly fixing friend's computers, and then "fell into" system administration as a job and are enjoying a highly successful career. Yet, I know of exactly zero doctors who got their start performing medical experiments at home. The medical profession went from "barbershops" to the scientific study and practice of medicine. System administration must make a similar journey.
Education of system administration is evolving into a 3-part framework similar to the electrical industry. If we are to mirror that industry it is important to first understand their framework.
The electrical industry has three tiers: the technician, the engineer, and the researcher.
The technician is someone you might hire to install a new electrical outlet in your home, or on a construction site installs the electrical infrastructure. People in this role follow the accepted practices of the industry, called "building codes". A technician literally might not know Ohm's Law. They do know, however, that the building code says every n feet of this there has to be one of that. That every 15 Amp circuit can have a certain number of outlets. They might not know, or care, why these rules exist, but they are rules to be followed. They know that if such a rule is violated the work will not pass when the building inspector checks their work. Technician jobs generally do not require a college education.
The engineer generally has formal college education. They have a depth of knowledge that enables them to design the systems that technicians install. They understand not just what building codes exist but they understand the science behind them. They are responsible not just for small designs such as the wiring for a new home, but also for large designs such as the power of a stadium lighting grid. More senior engineers write new building codes. Some engineers have a general practice while others specialize. Some are involved in relatively mundane projects while others are on the cutting edge.
The researcher invents. While engineers may design something that has never been designed before, researchers create entirely new categories. They may have a design approach and invent new components or they may take a physics approach and invent entirely new paradigms.
The field of system administration would benefit from a similar approach.
The system administrator technician deploys and maintains the systems as designed by others. They may not know all the details of why a standard exists but they know how to stay within those bounds. This already exists in terms of "vendor certifications". A technician learning a Red Hat, Cisco, or Microsoft certification is equivalent to an electrician learning the building codes. Rather than a government inspector providing a "certificate of occupancy" (C.O.), the pressure to follow the standards set out by the vendors who withhold support from designs that do not follow certain best practices. When designing a MS-Exchange environment one could choose to not use ActiveDirectory but it would be against the vendor recommendation and would not be a supported configuration. I've been told by network engineers that they were choosing one design idea over another because Cisco would not "certify" designs of such stripe. While vendors use the "carrot" of the promise of support, it is as powerful as the "stick" of a building inspector's "C.O."
The system administration engineer is less well defined. There is a serious need for University level degrees to fill this void. There should be BA/BS level degrees as well as degrees at the Masters level.
The systems administration researcher is the Ph.D level. This does not need much explanation. However, it should be pointed out that one does not need a Ph.D to invent in the world of systems administration. The industry is moving too quickly to isolate the creation of new paradigms to an ivory tower. The entire DevOps paradigm is a "found pattern" i.e. evolved organically and was given a name once many individuals all reached the same conclusion.
What should our next steps be?
Educating technicians is being taken care of by vendors. That's fine and appropriate.
PhD level education is something that will come in time.
The gap is at the University level. That should be the focus. To be more specific, the ultimate goal should be to define a 4-year degree in systems. To that end, we should begin by finding who is currently teaching "system administration" at a University level, catalog what they are doing, and bring them together to flesh out standards for curriculum.
I would be interested in talking with university-level instructors that would like to join forces and do such a project.
Tom Limoncelli
2012-06-04
I agree, there needs to be a recognized curriculum for the practice of system administration. Excellent article :)