Productivity in Software Development

Date

July 18, 2019

Speaker

Neel Sundaresan, Margaret-Anne Storey, Prem Kumar Devanbu, Ahmed E. Hassan

Affiliation

Microsoft, University of Victoria, University of California, Queens University

Overview

In this era of “Internet of Code”, data and metadata around open source projects are available in abundance. While research in program synthesis is not new, deep learning systems that take advantage of large scale code as data is starting to show new promise in improving developer productivity. The availability of GPU machines and cloud-based distributed systems help build deeper networks and scale them to production systems. In addition to passive input from open repos, crowdsourcing software expertise and integrating this with software systems has shown positive results. AI promises assistance and automation in every aspect of software development from edit and build stage to test and deploy stage. What traditional compiler and run time systems did with rules and analyzers can be replaced with AI-driven algorithmic systems. The concept of Software 2.0 is being discussed where code appears as data and where traditional software development processes give way to AI-based systems. In this panel, we explore opportunities for research and technology to improve productivity in software engineering and how AI plays a role in it.