Almost exactly six months ago, Steven Walling wrote about why every employee in a web startup should learn how to code. He composed a two-part post on the subject, in which he shares excellent ideas about how non-coders should start engaging code, starting with a toe in the water (for example, Joel and I had to get up to speed on GitHub pretty quickly, since we share and source control all of our documents there), then upping the ante a little with a side project.
I’ve taken Steven’s advice to heart over the last year or so. I work with living code every day of the week, and I wouldn’t be anywhere near as comfortable if I hadn’t started back at OpenSourcery learning how to use Subversion on the command line, committing all of my marketing materials to the same trunk where developers were building applications every day. My first few attempts were nerve wracking, of course, since I had no idea what I could and could not screw up. I thought I was one sudo command away from wrecking the whole ship.
Flash forward to today, when I spend a lot of time training clients on Drupal projects or making relatively minor updates to client projects. If I weren’t also working on my own side projects, where the stakes are much lower, I wouldn’t be nearly as comfortable in a teaching role.
The last questions I want to ask here is — beyond my personal desire to understand what’s going on below the surface — what is the real value of non-developers writing code. The best answer I’ve found so far is that I’m able to unstick myself without stopping Sam or Joel’s work; I become a problem solver and I’m not afraid to do a little deductive thinking based on what I do know. And as any developer knows, even the smallest disruption or context switch can seriously kill productivity.