Are you a software developer? Don’t get too comfortable

I think you’re going to find this story very interesting.

It’s about the GeoWebCache project, a map tile caching server written in Java.

On January 12th, 2018, a build server started a nightly build of the GeoWebCache source code. Unfortunately, only two minutes into the build, two unit tests failed and the build aborted.

Fifty minutes later, an eager young software developer called Luc Escape discovered the bug. It was a simple NullReferenceException, a single line of code referencing a field without first checking for a null reference.

Luc Escape posted a pull request to fix the bug, and 15 minutes later an admin approved the patch.

But here’s the twist…

Luc Escape doesn’t actually exist. He was an AI bot called Repairnator pretending to be a human!

Repairnator is a research project by the KTH Royal Institute of Technology in Stockholm. It’s an app that continuously monitors builds on Github. When it detects a failed build, it tries to discover the bug and find a patch, and then submits a pull request to get the patch approved.

Automatically fixing bugs is not a big deal, actually. There are many static analyzers (like the awesome NDepend) that can detect and flag bugs in source code.

The innovation here is that Repairnator autonomously monitors builds, then runs unit tests to zoom in on the code coverage of a failed test, and then runs a static analysis on that particular piece of code. And instead of simply flagging the error, it offers a complete patch that will fix the error.

There are two ways to look at this breakthrough.

One is to throw our hands up in the air in resignation, and lament that AI is now starting to threaten even the software developer jobs.

But we can also see this as an opportunity.

In the future, development teams may contain a mix of human and AI collaborators. We humans do the heavy lifting and create high-level outlines of the apps we want to build, and the AI bots do the low-level work of writing boilerplate code and debugging builds.

This can be a very nice future if we start preparing for it today.

Here is some more information about Repairnator: https://medium.com/@martin.monperrus/human-competi…

And this is the patch it made that got accepted: https://github.com/aaime/geowebcache/pull/1/commit…

How do you see the future of programming in a world full of smart AI?