I’ve been reading Tyler Cowen’s Average is Over, in which he argues that as computing takes on more and more aspects of modern society, those who use technology to complement human intuition and skill will race to the top of the (increasingly bifurcating) economic ladder while jobs that can be easily automated won’t return. Economists and governments who agree with this trend are toying with ideas like basic income to work around the un- and under-employment crises implied.
The software development community, of course, stands gain massively from this shift in available and coveted jobs, and the reaction has been to encourage software engineering education, to the point where it’s questionable that more people writing more software is really a good thing. A version of this kind of thinking has been playing out in India: many students flock to computer science, graduate with an eye towards careers as software developers, but aren’t properly trained and, when building to outsourced specs and requirements, produce software of dubious value.
The grizzled developer side of me understands this sentiment completely. Reading others’ code is a chore, but made doubly so when the code is below one’s quality bar or exhibits major flaws that make maintenance all but impossible. Software engineering is a young field, and it seems like the luminaries of our field come up with new techniques every other month; it’s scary to have the “untrained” and “barely trained” try to jump onto our moving train. While we’re inventing railroad tracks.
Taking a step back, though, this attitude is both selfish and elitist. I suppose it’s not surprising that, in an industry that’s perpetually in search of the best talent regardless of the requirements needed of their products, there are many who look down at the less educated, the less dedicated, and simply the lesser developers. Tellingly, even as companies compete for talent, students of computer science and related studies are woefully underemployed. We make fun of their code, rail against good-but-not-best practices, and put people through grueling interview gauntlets to determine whether they’re worthy of being our workplace peers. Our sacred ideal of the tech meritocracy just means that we end up celebrating those at the very top.
Back to the macroeconomic trend of software and software-assisted jobs being the norm, we cannot reasonably stop the influx of new and inexperienced people who want to work in or with software, and the most productive use of our energies is likely to make their transitions into a software-centric world as easy as possible. The various code camps and training shacks are manifestations of this philosophy of inclusion, but both sides – the industry veterans and the newly minted coders – need to recognize that this is a long-term investment against the face of technological obsolesce.
Like building a trainyard.