Vivek Haldar

Blue collar coders

There have been a couple of recent calls for blue collar coders and knowledge workers.

Anil Dash:

High schools have long offered vocational education, preparing graduates for practical careers by making them proficient in valuable technical skill sets which they can put to use directly in the job market right after graduation. Vocational-technical schools (vo-tech) provide trained workers in important fields such as healthcare, construction trades, and core business functions like accounting. For a significant number of my high school peers, vo-tech was the best path to a professional job that would pay well over the duration of an entire career.

Now it’s time that vo-tech programs broadly add internet and web technologies to the mix. We need web dev vo-tech.

Laurie Voss:

Think about how a physical factory worked. The reason unskilled jobs in manufacturing, say, cars existed is because some very highly skilled people first got together and looked at the process of building a car and said “okay, we can automate this bit and this bit and this bit, but making machines to do this bit is way too hard”. The blue collar workers of Detroit didn’t know how to build cars: they knew how to operate one particular bit of machinery. The only people who knew how to build cars were the guys who put the machines together.

Now let’s try applying that model to web development…There is an entire industry built around cranking out simple websites for small businesses, in WordPress or Drupal or a thousand proprietary solutions… It’s as if Detroit were a city of craftspeople who built one car at a time from scratch in their garage at home – with love and care, but slowly and enormously expensively

Well, it certainly isn’t for lack of trying. You have to remember that since its very inception, the field of software engineering has lamented that it was not industrialized enough. At the 1968 NATO conference, Doug McIlroy said:

Software production today appears in the scale of industrialization somewhere below the more backward construction industries. I think its proper place is considerably higher, and would like to investigate the prospects for mass-production techniques in software. In the phrase “mass production techniques,” my emphasis is on “techniques” and not on mass production plain. Of course mass production, in the sense of limitless replication of a prototype, is trivial for software. But certain ideas from industrial technique I claim are relevant. The idea of subassemblies carries over directly and is well exploited. The idea of interchangeable parts corresponds roughly to our term `modularity,’ and is fitfully respected. The idea of machine tools has an analogue in assembly programs and compilers.

What the two gentlemen are talking about is bringing full-scale Taylorism to software development. Industry loves Taylorism! It would bring Taylorism to every possible activity it could. And yet, there is something about the activity of constructing software that has not yet relented to Taylorism. Some parts have, though. The “knowledge factories” that churn out websites by picking and choosing from a menu might not exist, but something similar has happened on a much larger scale with enterprise software. That is the business that every large IT services and consultancy company is in.

The problem with this vocational tech approach is that it implicitly assumes the knowledge gained during vocational training will be relevant for a long period of time. The pace of technology change renders that unviable.

Also, being a blue collar coder is not a sustainable career. The kinds of jobs envisioned for them are one skip away from becoming fully automated. Why even involve a human? Why not have an automated service where you can select items from a menu, and presto, you have a website for your small business? Being in that position means that your only bargaining chip is controlling aggregate supply of labor, i.e. unionizing, which will likely only add to the motivation for finding automated solutions.

Little known is the fact that programming started out as a field that was Taylorist to its core. The very first computer “programs” were specified at a high-level by scientists, and then the actual coding into computer instructions was left to… coders, literally. And at the time, that job fell on the secretarial staff, most of whom were women. The majority of the very first programmers were ladies. (Strange how the gender ratio flipped over time.) In time, the higher-ups realized just how much talent and brain-power it took to “code”, and how much was strangely left unspecified in the gap between the white-collar specifications of the managerial layer and the nuts-and-bolts “code”.

They tried making coding a blue-collar job from the very start, and it didn’t work[1].

  1. For a more detailed look at the history of programming, I highly recommend “The Computer Boys Take Over”, by Nathan Ensmenger  ↩