It’s a good time to be a software engineer. The industry is booming, demand for coders continues to grow, and salaries are at an all time high.
But how long will the party last?
Telegraph Operators of the 21st century
There are striking parallels between software engineers today and telegraph operators of the 19th century. By today’s standard, telegraph operators were technical lightweights: the bulk of the job consisted of receiving and transmitting messages sent over telegraph wires in Morse code, a monotonous albeit attention-heavy task. In contrast, contemporary software engineering generally involves a broad skill set that requires a deep understanding of complex systems and the ability to quickly master and re-master an accelerating parade of new software development frameworks.
However, during the mid 19th century, telegraph operators were well paid, well regarded, and considered quite technical relative to other mainstream professions. They had freedom to travel, and highly skilled operators flocked to large cities for the best jobs. As telegraphy took off and more and more cables were laid, the demand for telegraph operators skyrocketed. Standards for faster communication were developed, and operators had to keep up, memorizing increasingly efficient and complex systems of shorthand and communication protocols. Thomas Edison was a telegraph operator early in his career before settling into his true calling of stealing ideas from Nikola Tesla and empire-building. And unsurprisingly, as with contemporary software engineering, there were huge pay discrepancies between men and women.
Yet by the 20th century, the telephone had been invented, a technology that had the distinct advantage of not requiring an operator tasked with translation from code to natural language. By the 1920s, there were only a small fraction of the telegraph operators left compared to the 1890s.
The Downfall of Software Engineering
Fast forward a hundred years, and we seem to be in a similar situation with software engineers. While this profession is undeniably one of broader skill and intellectual ability than operating a telegraph, software engineers of today occupy a similar functional role to the telegraph operators of Edison’s era. The contemporary explosion of software parallels the 19th century rise of early networked communications. And just as the demand for telegraph operators scaled more or less linearly with the rise of the telegram, the demand for software engineers is currently scaling roughly linearly with the rise of software. Back then, every telegram had to be translated from Morse code to natural language by a human being. Today, every line of source code (sort of) has to be written by a human being.
To be sure, software is becoming more efficient, in that sophisticated frameworks have been developed so that fewer lines of source code have to be written, and advanced programming languages, compilers and interpreters have made the life of the programmer much easier than it had been in the 1980s or 1990s. But fundamentally, the process of writing software is still largely a human activity today.
That will change.
The current version of the profession is under pressure along two fronts. First, there are website-building tools like Weebly that allow anyone to build a website without writing software. Moreover, basic high level software engineering is getting more and more accessible, so that the delta between expressing clear ideas and being able to program is vanishing.
Second, on another front, software is getting better at facilitating the creation of software. While we are still a ways away from a fully automated piece of software that can write other pieces of software given some minimal, half-baked specification (i.e. do the job of a human software engineer), it is part way there. And more importantly, we do not need full artificial intelligence capabilities in order for role of the software engineer to shrink; instead, our software itself will just play a bigger and bigger role relative to humans in the creation of software. As an analogy, imagine semi-automated computer-assisted driving as a first step before fully self-driving cars.
While there will still be specialized software engineers and plenty of computer science-minded humans in the future, it seems inevitable given both of the above pressures that Software Engineering as a category will fade into historical obscurity as we approach the 22nd century.
But if you’re a software engineer (as I am), don’t despair — the critical thinking and technical skills will surely come in useful for future needs that arise. And if they don’t, well, keep some of that money saved up.