Within our working lifetime we will be singing ”AI Killed the Coding Star”
Corporate consumer capitalism production (CCCP) imperatives will drive the adoption of software that can code to a specification and learn from experience. As AI evolves such programs will be tasked with improving themselves till they can accept and refine ambiguous and imprecise requirements from humans, determine the functional specification and architecture then produce a finished tested system. Finally AI systems will be able to decide business objectives, strategy and tactics better than humans. At this point humans will be redundant, at least in large corporations.
The Death of the Software Engineer
Today’s software industry
The imperatives of corporate capitalism require producing more and more faster and faster with less and less.
In the digital technology domain the response has been to automate as much as possible, introduce methodologies such as Agile and Kanban and as in Slave Plantations of the 18th and 19th centuries, separate conception from planning and planning from execution, separate support functions from execution and delivery functions and organise these areas so that delivery of one project can proceed while planning for the next is proceeding and the next but one feature is being conceived. Like the ideal plantation this has the forward impetus of a mighty machine: One can hear the wheels turning. And, like the organisation of plantations and factories, it is very very efficient, regardless of how it may seem at the workface.
There are differences from plantations: Software development requires at least a minimal amount of thought from a developer though Agile planning is often implemented in a way that turns coding into a relatively mindless process, assuming the developer has some knowledge of the technologies they are using. This is like teaching a slave to use a slightly temperamental machine. Developers are thus infantilised less than slaves but the baby language of user stories suggests not by much.
Development of AI threatens to remove the developer from the picture entirely. Consider a system that can receive a specification from a human, parse it and generate code, test the code and then deploy it. A reward system can be built in that motivates the system to produce an optimal trade off between various metrics such as bug count, performance and memory footprint.
It need not be as good as a human as long as it can learn. A system that does all this, far faster than you can read let alone type and works 24/7/635 with no diminution of energy, has a perfect memory and never makes the same mistake twice. Even if initially you are a better programmer how long would your superiority last? And what if the requirement is to improve itself?
Such an AI would be the perfect employee, It could not quit, it learns but does not rock the boat, it does not think inconveniently outside the box, it needs no sleep, pension or holidays, spends no time in meetings and, if it continually backs itself up, it will not go sick since the backup(s) will seamlessly take over. Humans will no longer be needed for this phase of software development. Good bye entry level developers and a large number of grunts happy to plough the same furrow (J2EE, Spring Etc) deeper. This was predicted a while ago. And goodbye security engineers as other AIs will continuously try to find ways to penetrate the code then find ways to make it more secure.
It is only a matter of time before this and more happens. But when the exponential curve of development takes off it will be fast. Not lightning fast as corporate inertia, unwillingness to invest and unwillingness to write off legacy code for as long as possible will slow it down. Some may even make a virtue
of using humans, just like the brewery that advertised it was using the original traditional Victorian equipment with which it started: Till it burned down and then it advertised it was using the latest technology. This ’functional stupidity’ will delay the adoption of AI, though the first corporation to market such an AI will make a killing. Till one customer works out how to use it to make their own better version without infringing patents.
My first manager ever used to say
If they make a little black box that does my job I’ll get a job making little black boxes
Developers will initially move to developing specifications for the code generators to use. Cue the Open Source Specification Generator. The next generation of AI will be able to take an imprecise high level specification, parse it for ambiguities and inconsistencies, ask questions, understand the answers, generate its own functional specification, implement it and present the ( possibly human) customer with the result for approval.
This does not need true AI: research in languages will improve detection of ambiguities and natural language research will improve the way the system communicates with humans. Humans may still be needed to work in areas where the problem may not be understood well. Again that will not last.
End Game AI Wins
In the end AI will eliminate human developers. Its domain will extend to architecture then eliminate large parts of IT support. When robots can unplug one component and plug in another there will be no need for humans at all. Line managers will have gone long ago, along with office politics and only the Business side will remain. Even Business Analysts will become digital. All that will be left is executives deciding the future trajectory of the business.
But even the CEO’s job is at risk. In the end a corporation will comprise machines producing goods and services for humans and other machines and
probably producing other machines. This will be the corporate wet dream: marginal production cost and no employee costs.
And it could be a nightmare as indicated in ?? Except for one little thing. Who will have the money to pay for these goods and services?
AI will by then have eliminated humans from a large number of industries and professions: driverless cars will have eliminated transport industry jobs, AI will have rendered doctors little more than the biological interface with the patient, robots will be carrying out surgery: Dentists may last a bit longer, Administrators will be defunct as their roles are routine and can be automated easily. Lawyers will be reduced to information gatherers and so on.
A computer program can beat any human. A GO program is approaching the same level. But people still play chess and GO, perhaps, at the highest level with the aid of computers: people process these games in a different way from machines: see ??
Programming would be a hobby for some, a competitive sport for others and perhaps an art form, especially if new languages to enable this were developed: see ??
Or there could be another less pleasant scenario
The 0.1% who own all the wealth retreat into gated communities taking some servants with them leaving the rest to fend as well as they can without computers or the knowledge of how to find food. Outside the gated communities life becomes hellish and brutal for an indefinite period of time. Millions die. Inside the communities there are dictatorships and progress stagnates as the rulers seek to maintain the status quo and their power and luxury.
At the moment we are on a path that will mean the programmer becomes extinct. People who can communicate and work with strong AIs and preserve their sanity will be needed but they will be a minorith and coding will die as a skill unless preserved the way some calligraphers try to preserve the art of handwriting.
Most likely however the future will proceed in a way that is unforeseen at present.
Superintelligence: Paths, Dangers, Strategies Paperback: Nick Bostrom, OUP Oxford 2016. ISBN-10: 0198739834