Favorite Social Media Timesink
When you take a break from work, where are you going?
Video clips on TikTok/YouTube
X, Bluesky, Mastodon et al...
Web surfing
I do not get distracted by petty amusements
AI / Software Development

Learning to Love Generative AI in Software Development

Writing code with the help of AI is like any manufacturing process, in which the earlier errors are caught and corrected the cheaper they are to fix.
Jul 12th, 2023 10:00am by
Featued image for: Learning to Love Generative AI in Software Development
AI-generated image by Alana Jordan from Pixabay.

Software is an extraordinary engine of economic growth and change because it abstracts and automates both workflows and the functions of prototypes and machines, cheaply and at scale. Now, generative artificial intelligence is being used in the creation of software by many companies. We are turning the power of software and AI on software creation itself.

Some hope for an unlimited boost in the power of software, while others fear that the hazards and weaknesses in software creation will be made exponentially worse. What is the reality for developers and the people who manage developer teams?   

As a company that already has significant experience using many types of AI in software development, we see things differently. Yes, AI, and generative AI, in particular, will change the way that software is written, profoundly and permanently. That is a change for the software industry and for entrepreneurs who have new ideas for accelerating their path to product.

As with all significant changes, people will learn new ways to manage their jobs and technologies, measuring and rewarding in new ways. Productivity will not be counted in terms of lines of code created (it probably never should have been) but in things like effective outcomes, improved documentation and better security.

It’s What You Count that Counts

Improving our measurements of success addresses a chief fear about generative AI. Yes, the technology vastly improves human-machine interaction, making it possible to spawn immense amounts of code in eye-blinking time. Left unchecked, the code may well be error-ridden, with security flaws or ineffective processes that create new technical debt. It could arrive too fast to be properly documented or understood, with more orphan code.

This is another way of saying the old programming adage, “garbage in, garbage out,” only supercharged. Compare that with the way Alphabet implemented generative AI in our internal development process and saw strong productivity increases, including a 6% reduction in coding iteration time, or the time between builds and tests.

We’ve also seen improvements in things like developer satisfaction. These are of course human-centered measurements; in this case, we are working with a Transformer-based ML code completion product. The developers accept code completion suggestions, and the code is not produced unchecked.

Writing code is in this sense something like any manufacturing process, in which the earlier errors are caught and corrected the cheaper they are to fix. At the rate we and many other companies need to produce software, this has long been essential, but AI brings this role into sharper focus.

The Language of Code and the Language of Humans

Similarly, the software development platform Replit last year introduced Ghostwriter, an ML-powered pair programmer that completes code in real time and contains tools to both generate and explain code. The developer retains both autonomy and responsibility. Replit, which is used by more than 22 million developers, is also adding generative AI capabilities and infrastructure services.

This follows an earlier addition of a conversational AI interface for generating code and proactive debugging, based on knowledge of the developer’s files and workspace. Adding generative AI, Ghostwriter is answering questions, suggesting code and offering to complete programs, but the final decisions are with the developer, who for simpler jobs might have less technical training than was previously required.

This capability of moving between the language of humans and the language of software creates both opportunities and new ways developers need to train. In this area, Global Systems Integrators like Capgemini, Cognizant, Deloitte, KPMG, TCS and Wipro play a critical role, educating and training thousands of developers in generative AI.

These integrators are, of course, also creators of software and view margin and revenues based on developer output and developer productivity. This includes not only time to development and developer satisfaction, but over time reliability, security and cost. There’s also the likelihood that they and others will create new services powered by generative AI, like software that compares two developers’ projects and determines which has the more efficient algorithm.

This speaks to the fears that runaway generative AI will create masses of bad code and technical debt. Technical debt is not unique to software creation, since life involves tradeoffs, and there are always sacrifices teams must make to get their products out. The errors and the unexplained choices, however, might now be better addressed in a generative AI service that sorts through an enterprise system, spotting areas where preexisting technical debt can be swiftly ameliorated.

Likewise, legacy code written in languages like Fortran, COBOL and Lisp often lacks documentation, hasn’t been well tested and might even be illegible to contemporary teams. Trained in these older languages and translating the code’s actions to a standard human language, like English, companies can better understand their own inner workings. Once again, it is a question of the priorities and measurements put in place alongside the technology.

Retaining the Core Dynamic

Much will change, but the real value added by developers remains thinking up, architecting and realizing new software, changing the lives of millions. Entrepreneurs can effectively build an early prototype of the product or service they envision without searching for technical talent before they’ve got funding. New interfaces can affect job roles, for example, taking from backend engineers the tedium of connecting different systems, so they can instead focus on optimizing how things work. Measuring and managing will change.

Human interaction with computers has evolved for decades, from assembly languages and punch cards to networked systems, the Internet as a development platform and service-oriented architectures for cloud computing. Throughout this evolution, the community of developers has grown, software tools have improved and the things computers can do has blossomed. Predicting the future is hard, but it’s easy to be confident the phenomenon will continue.

Group Created with Sketch.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.