The short answer is yes and no. But why is that?
There is the essence that cannot be automated in any way. It is a specific part of human nature: the intention. On the other hand, there are few things endangered.
Automation is coming!
Recently Forbes published a report “Shoulder to shoulder with robots - Tapping the potential of automation in Poland” (it is downloadable PDF, you can read it on your own). I was like omfg they are trying to convince some investors to give money for yet another CNC producer. Well, I assumed I am wrong until I prove otherwise, so bought the magazine, put my arse on the toilet, got hemorrhoids (remember, programmer - sitting all the time is not good for your anus) and didn’t prove anything. However, the lecture was alright and I would read it once again to check whether they were right or just created a utopia without any sense.
Anyway, the bottom line of this report is: Poland has a great potential to automate the most of physical and repeatable labour, the automation is coming and the government has to be ready for a special programme to shift people from one job to another.
The repeatable labour, huh? Sounds familiar…
What does it mean for software industry?
I believe there are two main things:
- big money
- fashion to replace repeatable activities with automation of some sort
I don’t have to explain how big money is going into play: we are building a software for running this kind of things. Are you a web developer and was all your life spent on doing some Spring views and controllers? Doesn’t matter - we all will learn how to program robots when the market will need it. I promise you that :)
Regardless of huge bags of cash, if businesses find repeatable work as something that is expensive and unnecessary, programmers are screwed. Why? Because we are doing most of the time repeatable things at some point. Example? Just think about projects you were participating and which things were like “I have done it before I know how many time it will take” and you did not miss the estimate.
Could you throw out all of the repeatable work and outsource it to AI? Maybe.
But what’s the essence of programming?
The essence of programming
Imagine an AI that can do just everything: even make an application. How can you explain machine that you need to make Uber? Let’s assume that this service does not exist yet.
Machine: Please state your use case.
Businessman: Alright. One guy has a car and can transport people for money. The second one wants to get somewhere. They can exchange information where they are and just make it from their phone. Can you do that?
M: Of course, I am master of programming. Just tell me few things:
- what is the steps for a user to order course?
- when does customer pay for it?
- what about people that will get another taxi?
- how will people register as drivers and customers?
- what’s the colour of menu?
B: You will figure it out!
M: Up yours. ::EOT::
Even if machines will be able to ask such questions and do that type of conversation, the final decision still remains on the owner of specific application/idea/service neck in order model the purpose and look-and-feel (mostly).
Following that thought, the essence of programming seems to be just specifying how a program behaves and what is it doing, keeping in mind all interactors (people, API users, who knows what else). This is exactly what “good” programmers are doing - making decisions on how to build things. Writing code from a detailed specification is a repeatable activity. It’s just translation one document to another. Such people can be replaced, although the real developer is the one who wrote a spec in a first place.
Shaping the purpose of an application is the most important thing. There is no place that can be automated in that kind of thing. Although, as a counterargument I can point genetic evolution of programs, i.e. starting with unshaped “prototype” and shape the purpose based on users actions. This might be some solution for doing it without human oversee. However, it is not really feasible in terms of delivering so many organic interactors. They will just leave application forever after one or two attempts to use it.
Will robots replace programmers then?
No: if your work is creative: they won’t.
Yes: if you are doing something that everyone else can, sure. But it will happen sooner or later (and not necessarily by a robot at all).
I hope it will help to make decisions heading your way. It made mine already.