The Future Of Coding

I don’t think that what I am about to write about is a unique insight. But I want to write a blog post to commemorate the day that I realized what is about to happen.

In the future, software development will be done by computers themselves.

Let’s start by examining what software development is. Software is the computer program; generally, many algorithms that run to solve a problem. The problem could be how much water should be let through a dam. Or the problem could be how much should be invested in a particular stock at a specific time. In order to have software that solves specific problems for us, we have developers who take the requirements and turn it into a developed piece of software.

Software Development As Pattern Matching

But what if we flipped the development process on its head? We already know that machine learning can be very good at pattern matching and determining what a most-likely or recommended next choice should be. So all that needs to be done is to show the computer what needs to be done and let the machine learning do the rest. Once we have enough data, the machine will recognize the pattern and be able to develop code that solves the problem.

Objections

Of course, the question and objection is, “what happens if the machine learning misunderstands and codes the wrong solution?” And we can ask the same thing about human developers right now. Misunderstood requirements are a significant cause of project failure. We will still need to validate the results of the software. We want to be sure that it is doing what we mean for it to do. But in the beginning, we can simply use our current validation processes to ensure that machine learning is developing the right code.

When Will This Happen?

I am not prophesying the demise of software development in the short-term. But I hope that in my lifetime, I get a chance to see software companies doing the majority of their development through AI and machine learning.

Further Reading