There’s a rather thought provoking article by David Mitchell at The Guardian site right now. It’s relatively short and worth reading, and I say that even as someone who isn’t all that interested in the NHS project that frames the article’s opening paragraphs.
Mitchell makes two points that I found myself both agreeing with as a developer and sysadmin, and leading me to further thought. First:
Nothing sharpens the brain like a whetstone of tedium
In the context of our work tedium could be any number of things. For some it’s documentation, labeling cables, seemingly minor manual config changes made in production up or the ever present yak shaving in some form or another. A drive to erase this boredom or tedium has resulted in many of the excellent tools in use today, such as Chef, Puppet, and other powerful automation software. Repeated slogging through boring steps led someone to think “I can do this better”.
Of course, not all tedium is bad and needs to be eliminated. In programming there’s no substitute for the hours of typing code in an editor that improves your grasp of a language, the way repeated physical exercise hones the body. The ability to focus for increasing lengths of time on a given problem or task is a valuable skill. Ones mental acuity, that ability to concentrate, focus and understand, can be greatly improved with effort. These are valuable skills that improve over time, accompanied by some percentage of tedium, the way practicing scales may see to a new guitarist.
Computers are here to stay and yet for the most part many still view them as “an imposition, a distraction, something stultifying that dominates our lives but we somehow feel shouldn’t”. The way they are explained and taught is a perhaps a direct outcome of this, sometimes silently unacknowledged, viewpoint.
…even a rudimentary knowledge of Latin cuts down the labor and pains of learning almost any other subject by at least 50 percent.
Code needs to be the common language to teach people about the world we now live in. The perspective and understanding gained from learning to solve even a simple problem using python or ruby can give people a sense that these machines they now depend on are not so foreign or unknowable. It certainly does more than teaching them how to SUM numbers in a spreadsheet.
David Mitchell compared code as Latin for the assumed tedium, but I think it can be done better. Everyone should be able to at least read and understand the flow of some code.
One of the most intriguing things I’ve noticed about the devops movement is the emphasis on a culture of inclusion and instruction. This is one of the main reasons I enjoy being a part of it. Certainly learning to code is not generally an issue with people who are either in development or systems administration, but we need to continue to be better at instilling our love for what we do and why we do it in others. Not just within our culture or respective fields, but everywhere.
In a healthy organization no one should be content to just “throw code over the wall” or not think about how all the pieces fit together. We’re certainly working to change that, but it can go further. Everyone who touches computing resources in an organization can have a basic understanding of ‘what makes it tick’. They may never be driven to tinker and make changes on their own, but they can be helped to see and appreciate the inner workings in a favorable light.
We shouldn’t be keepers of some ivory tower but instead mentors and instructors, sharing excitement and understanding, the very thing we should already possess and that brought us to the field we are in. I believe teaching others to code and to understand code, even though they may not choose to do so themselves, can have a significant impact on their comfort level and enjoyment in working with the tools we use today.