Is AI on Its Way to Disrupting Software Development?

Tomasz Korzeniowski
codebeat
Published in
4 min readDec 21, 2016

--

Software dominates the global economy like never before. It’s behind our finances, health care, and education. It drives our cars and beats us at Go.

That’s why software developers are like superheroes these days. They change our industries by leaps and bounds. They practically shape every single aspect of our daily lives from the moment we open our eyes until we close them. Even then software continues to monitor our sleeping habits.

But let’s take a look at software development as an industry on its own.

It’s a very dynamic sector; there’s no doubt about that. Our programming languages evolve, the computing power of our machines grows, and new frameworks pop up all over the place.

But the way in which we code hasn’t really changed that much.

While revolutionizing every other sector, software somehow missed out on transforming its own core.

A couple of years ago, Marc Andreessen said that software is eating the world.

Today, he claims that artificial intelligence and machine learning are on their way to drastically changing the world. And that includes writing software.

Chris Dixon, an Andreessen Horowtiz partner, seconds saying that software is eating software development.

Is it possible to train machines to develop code? Are developers about to be replaced by supercomputers running on intelligent software that builds new software?

I think that recent breakthroughs in AI will enable developers to create software which will in turn help others to write code that is robust, secure, and easy to maintain.

Software Developers Are Married to AI

AI has been around since the early days of computing.

Remember Alan Turing, the guy behind the Turing test for machine intelligence (and a killer WWII codebreaker)? He was a computer scientist.

Developers are no strangers to AI.

Methods like knowledge based systems, genetic algorithms, natural language processing, or neural networks support entire software development life cycles these days.

Developers use them to plan and estimate projects, solve problems in requirements engineering, design their software, and test their code.

But few developers have ever attempted to apply AI to write code.

A couple of years ago, Rice University launched a project to develop a tool that would autocorrect and autocomplete code for developers, just like software that corrects spelling or completes search queries.

The idea of boosting software development with AI quickly found its way to the tech industry.

Developers are busy building open source tools for code analysis that help others write quality code faster and easier than ever. But so far I haven’t spotted any projects that would use machine learning for something more than code review.

That’s when I thought that we should think beyond code review. Why not focus on code improvement instead?

Together with a group of friends, I want to bring AI to software development. codebeat is our project which aims to develop a set of practical tools which combine static code analysis with machine learning.

These tools will pinpoint sections where code could be improved, and offer suggestions and ready-made snippets of code to help developers solve common problems in object-oriented and functional programming languages.

A fundamental shift in software development is underway.

I was pretty surprised when I learned that some developers are seriously afraid of AI taking over their jobs. In a recent survey, 29.1% of software developers cited AI as the most worrisome aspect of their careers.

But are developers going to be replaced by software that writes software? I don’t think so!

It’s Not About Supercomputers, It’s About Superhumans

Technological development was historically all about the mechanization of manual tasks.

Today it’s expected to impact cognitive tasks as well. And everyone should make the most out of this innovation, including software developers.

Let’s not forget that automation isn’t new to the industry. In fact, software is already performing many software engineering tasks that used to be done by humans.

When designing our codebeat project, we thought it would be like a code buddy sitting next to the developer and suggesting how to write code.

A code buddy adapts their style to the developer or the entire team.

It finds refactoring opportunities, shares useful snippets of code, suggests articles to read, and constantly delivers immediate feedback about every single line of code.

A code buddy like that is bound to empower the developer to deliver code of which they can be proud.

Idea Worth Spreading

The application of AI to software development is good news for society because it will make the sector more accessible.

Our project at codebeat is about taking development to the next level by applying AI methods to equip developers with tools that make coding more productive than ever.

Beginner programmers will learn to code faster and get instant feedback to boost their motivation.

Consequently, more people will be involved in developing new software, and nothing fights cognitive bias like a diverse IT environment.

When developers are no longer predominantly white, male and educated, technological innovation stands a better chance at delivering products that are relevant to larger segments of society.

AI isn’t about supercomputers pushing human developers out of the picture. It’s about superhumans making the most out of computing technologies to create solutions that make the world a better place.

At codebeat, we believe software can help write software. We work on the set of tools that help developers deliver code that is robust, secure and easy to maintain.

Lastly, if you enjoyed reading this story, could you do me a big favour and click the ❤️ icon for me? It would mean so much to me. Thank you!

--

--