On Software Programming and Artificial Intelligence

The tooling and technology around software engineering has been rapidly increasing in size and scope and the things that were once very costly and that required a lot of time can now be executed near-instantaneously.

This, as many of us are familiar with, is a natural extension and expression of Moore’s Law and it’s more exciting than ever to be in computing and software. It can also be a bit scary (if you think about it for too long).

My partners and I believe that in the (near) future that software, with the help of deep/machine learning and artificial intelligence, will build itself. Just as the farmer and all of their operational requirements and needs was replaced, just as the assembly line worker and the long-forgotten telephone operator, the software programmer will find their value replaced by integrated computing intelligence.

Like the farmer the software engineer will still be around but our role will be different (and better) as the more menial and repetitive tasks can be managed easily through AI and the time necessary to complete tasks will become shorter and shorter through machine learning.

And, over time, software development will be able to do things that humans could not ever do, or at least in our finite timeframe on earth. I was watching a video of Google’s partnership with Blizzard, one of the larger video game companies, and their experiments with artificial intelligence and machine learning around their worldwide phenomenon known as StarCraft.

Take a look at this short video (FYI, loud music):

For those that are familiar, the ability to dodge the damage done by Siege Tanks is impossible as a human player but with a computer (and their infinitely-better reaction times) it is possible. Essentially, deep learning and AI can make the impossible, possible.

And this isn’t programmed into the system, they are instead having a computer watch and record and learn from on-screen behavior:

As they play and watch recorded games, the AI will build up knowledge about strategy, tactics, the so-called “macro” game, while learning how best to employ its superhuman actions-per-minute rate to dominate the “micro” in battles and skirmishes.

Fun, exciting, and a bit mind-numbing if I’m honest. Applying these types of advancements to the field of software programming is going to be great and we will all benefit from the collective advancements to come.

The question, though, is not just how all of this is going to come about in an effective and value-driven way but also what we will need to make it happen (i.e. the necessary ingredients). For starters, we’ll need a copious amount of data, engineering data and user behavior around that data.

Some of this data will be naturally created as engineers build software and all the natural metadata that’s generated and the other half will be created by the users, some in the form of familiar UGC (User Generated Content), reactions, and sentiments about the data and content.

It will require a deep and wide developer graph and require the data and architecture to be open and available and free-flowing. It will require us all to be more open minded to the possibility that many of the things that we feel we have to give and contribute today may no longer be necessary tomorrow (and some of will rejoice in that while others may resist it).

But the future is going to be bright and it’s why I’ve spent a lot of time in the last year thinking about these concepts, collecting articles and researching varying perspectives and organizations (like OpenAI) that have a position on what they believe will be coming soon.

I don’t think we necessarily have to be anxious or afraid because humans will always play a vital part in the act of creation; I just think we have to challenge ourselves to be even more open minded about what that might actually look like in the future. And, if we are to make any serious advancements in this space then we are most likely going to be seriously surprised at all of the outcomes.

What does this have to do with what we’re building today and prototyping? Not much, to be honest, but, it’s something that we’ve kept as a dedicated category on our “backlog” of ideas and features. Perhaps it’ll get more air play sooner rather than later. That would be neat.


Also published on Medium.

Leave a Reply