New Models for How Software is Developed Emerging in the Age of AI
End game stays the same; how developers get there is changing; new titles and job descriptions and new stages of the software development lifecycle being defined
By John P. Desmond, Editor, AI in Business
For software developers whose job it is to build applications to serve a business or government agency, the introduction of AI presents an opportunity to do the job differently, while the end game of building the application stays largely the same.
New job titles and job descriptions, and new models for how software is developed, are emerging in the age of AI.
“AI is becoming a part of software development, making life easier for programmers in various ways by taking over tedious tasks and streamlining work. As a result, products are being created faster,” stated an account on the site of Brainhub, providing web development services in multiple industries using a range of technologies.
The specter of AI taking jobs away from programmers looms, but it does not seem likely that human programmers will be replaced. “For now, it looks like programmers will still be needed, but the nature of their work, the required skills, and the areas they focus on will change somewhat,” stated the authors, Marcin Dryka, software engineer, and full-stack developer with 17 years of experience, and Bianka Pluszczewska, tech editor.
Developers are clearly worried about being put out to pasture. In a survey by Evans Data Corp., a market research firm specializing in software development, nearly 30 percent of 550 developers surveyed believe their efforts will be replaced by AI in the “foreseeable future.”
In the meantime, programmers need to get busy fine-tuning software development using AI tools to prepare the technology to take over.
The first wave is automation of more tasks, including: generation of code snippets, code refactoring, bug detection and fixing and optimizing code by identifying redundant or inefficient parts. They advise caution when using AI tools for automation. “Even if you're tempted, we don't recommend relying solely on AI tools in terms of code generation. Created code should be checked by a programmer,” the authors state.
Software Leaders Weigh In
The Brainhub account contains related quotes from a number of leaders in the software development community. Here is a selection:
“AI won’t replace programmers, but it will become an essential tool in their arsenal. It’s about empowering humans to do more, not do less.” - Satya Nadella, CEO of Microsoft
“AI is going to fundamentally change what it means to be a programmer. It won’t eliminate programmers, but it will require them to develop new skills and work in new ways.” - Grady Booch, American software engineer, best known for developing the Unified Modeling Language
“AI can be a powerful tool for programmers, assisting them in writing better code and accelerating development cycles. AI still lacks creativity and problem-solving skills, so it won’t replace programmers.” - Jeff Dean, Senior Fellow at Google AI
“While AI has the potential to automate many programming tasks, up to 80% of programming jobs will remain human-centric.” - From McKinsey & Company
Developers who want to be AI rockstar developers need to become somewhat skilled in a few technical areas, including: machine learning and data science, neural networks and deep learning, natural language processing and technical debt management.
The latter refers to the tradeoff between prioritizing speed of software development over the most well-designed code. “It is often the result of using quick fixes and patches rather than full-scale solutions,” stated Mike Duensing, a CTO advisor based in Walnut Creek, California, in a 2020 account in The Enterprisers Project.
The move to AI gives IT leaders an opportunity to reduce technical debt and plan for the future. “For many IT leaders, the big picture goal is to move money away from legacy tools and processes over to more innovative work,” the authors stated. The AI-savvy in the IT area find themselves in a position to for example, update a SaaS application instead of a legacy system, or move to a more agile IT infrastructure. All this while taking into consideration the many interdependencies of the tools and policies in place, a “complicated web.”
Developers seeking to move more to AI need to also appreciate the soft skills, including: domain-specific knowledge, such as in healthcare or finance; lifelong learning and adaptability; critical thinking and problem-solving; collaboration between disciplines, such as data scientists, domain experts, and other stakeholders.
An understanding of the business gives the AI developer a leg up as well; they may see things difficult for the client to recognize. “We are able to advise on a small change that can have a huge impact on the business as well,” stated Agata Szopa, a .NET software engineer at Brainhub.
Karpathy Proposes Software 2.0
One participant with extensive experience using AI in development or developing systems incorporating AI, is defining a new software development method. Andrej Karpathy, a former research scientist at OpenAI, now a director of AI at Tesla, has proposed Software 2.0, with key components including: problem and goal definition, data collection, data preparation, model learning, model deployment and integration, and model management.
"A large portion of programmers of tomorrow do not maintain complex software repositories, write intricate programs, or analyze their running times,” Karpathy stated in the Brainhub account. “They collect, clean, manipulate, label, analyze and visualize data that feeds neural networks."
It seems software developers will still be needed in the age of AI. “AI will not replace programmers but will fundamentally change the development landscape, making human creativity and problem-solving essential,” stated Janel Garvin, CEO of Evans Data Corporation, in the Brainhub account.
One AI entrepreneur recently summarized how he views the changes in how software is developed in the age of AI. Ian Cairns, the CEO of Freeplay, a game developer and publisher, published his summary in Deloitte Insights, a publication of the big service provider.
“In the past, most software development followed a predictable script. Someone wrote a spec, someone designed a user interface, and engineers wrote code and then tested it before it was deployed,” Cairns stated. “Generally, things would continue working OK until a decision was made to change something. This process still works well enough for most types of applications.”
This sounds good, almost soothing. But wait: “Generative AI requires a paradigm shift, however,” he stated. Uh-oh. Sounds like work.
LLMs Seen Changing Software Development Assumptions
Developers at Freeplay manage end-to-end large language models. “We’re seeing that many of the assumptions that traditional software development rests on do not apply to building products around LLMs,” Cairns stated.
.LLMs have their challenges: they produce different results from the same prompt; they might make up facts and provide vague, uninteresting results. “They can also fail in wide-ranging and unexpected ways,” he stated.
Organizations creating applications using generative AI are the ones that have built a system to help them continuously learn and optimize their use of LLMs, in his view. He provided some recommendations for technology leaders interested in building application with generative AI:
Evaluation
Data labeling and creation
Testing
For an email draft generator, for example, an evaluation will be made of whether it’s factually accurate, whether the tone is appropriate to the author, and whether the right names and greetings are included. “In the context of AI products, each of those criteria is referred to as an evaluation–or ‘eval’ for short,” Cairns stated. These can be conducted on text and live data using a mix of human review, code and other LLM models.
Humans are unable to get out of the loop when it comes to data labeling and curation. “You need people with sufficient domain expertise constantly looking at data,” Cairns stated. “There is no such thing as full automation when it comes to building great generative AI products.”
Testing for GenAI apps is a different animal from testing whether lines of code have bugs in them. “Testing a generative AI product requires coming up with a representative list of all the possible types of interactions and edge cases that may occur for customers, and making sure each behaves reasonably,” he stated. So as long as you know everything people might ask, you should be all set.
See the source articles and information from Brainhub, from The Enterprisers Project and from Deloitte Insights.