Blog
SustainAgility – Achieving High Performance Software Development with AI
Missy Trumpler | July 10, 2024
A Different View into the Software Development Life Cycle to Tackle Technology’s Debt Crisis
Sustainability in its simplest terms addresses three aspects of any given operation or process; People, Planet, and Profit. People – referring to Stakeholders, both internal and external; Planet – referring to environmental resource consumption, impact, and replenishment; and Profit – referring to how much cost is being incurred versus how much revenue is being generated. The goal is to strike a balance between these three categories without sacrificing one for another, and elevating areas where these three concepts intersect and support, if not elevate, each other.
At this juncture, the biggest complaint with AI on the sustainability front is the massive energy draw incurred and its associated carbon footprint. However, it’s impossible to deny the productivity, analytical, and innovation benefits that result from employing well-guided and trained AI in every business vertical that exists today.
Technology and the functions associated with the process of delivering technology, has often eluded the microscope of sustainability as it applies to the process of delivering technology itself. The infrastructure aspect of technology has certainly been scrutinized; server farms are erected with zero carbon footprint goals in mind, computer hardware is manufactured with cradle-to-cradle resource consumption and energy efficiency in mind; but the internal process of delivering software has been overlooked or ignored. This may be due to its complex nature as well as the wide-spread adoption of certain methodologies such as Waterfall or Agile. Agile is the most common in today’s organizations, at an 82% adoption rate, or an Agile hybrid model that attempts to improve on delivery. There has also been a reluctance to move to a completely transparent and collaborative process which hinders accountability, efficiency, and quality outcomes. The advent of AI and the availability to access Large Language Models, has opened the door to change and is taking Agile software development to a whole new level; I’m going to coin the term SustainAgility.
The Agile process, based on the Agile Manifesto collaboratively brainstormed into existence 20 years ago, has some very right-minded concepts in achieving a nimble, customer and speed-focused approach. However, over the years, whether because the fundamentals of good software development were taken for granted, or it was assumed a good foundation would always be laid before Agile principles would be applied; clearly, the fundamentals of Quality Software Development have been left behind in deference to speed of delivery. Studies have shown that in the United States alone, we have a 2.4 Trillion Dollar – Trillion with a T – crisis around poor quality software that stems from Technical Debt.
“In software development and other information technology fields, technical debt (also known as design debt[1] or code debt) is the implied cost of future reworking required when choosing an easy but limited solution instead of a better approach that could take more time.[2]Analogous with monetary debt,[3] if technical debt is not repaid, it can accumulate “interest”, making it harder to implement changes.” (Wikipedia, 2024)
In sustainable business terms, technical debt is waste. The number one priority, and most often the first approach toward achieving sustainability is to address the low-hanging fruit in a process or operation and eradicate as much waste as possible. Which leads to the point of this article: the availability of AI and LLM’s present the opportunity to change the way Agile is currently being implemented in the SDLC to radically reduce technical debt and improve productivity, stakeholder engagement and reduce negative resource impacts. This is SustainAgility, or high-performance software development. Taking a holistic approach to the Agile SDLC workflow by embedding quality, collaboration and transparency into the process from the outset to achieve superior project outcomes, stakeholder engagement, and speed to market.
Let’s take a look at a typical Agile SDLC process workflow in Figure 1.
In Today’s SDLC Workflow, Finding and Fixing Defects Takes Over the Ability to Embed Quality at the Beginning of the Process
It’s no wonder that so many projects fail or don’t meet time or budget goals. Projects are being developed without engaging the fundamentals of developing solid requirements. Just as you wouldn’t, ignore the fundamentals of building design and construction by erecting a building on a cracked foundation that was not entirely sound; nor should you start coding and developing a software project on inadequate requirements and incomplete acceptance criteria. Requirements gathering takes time, which is why there has been a shift away from developing fulsome requirements in deference to quick delivery. The irony however is that if you’re delivering a sub-par product, the delivery speed is insignificant and in no way ensures positive outcomes, in fact, just the opposite.
How do you know if you’re getting requirements right? The way agile in the SDLC works today, requirement deficiency only truly becomes apparent after projects are coded and developed and testing occurs to identify gaps, ambiguities, misalignment of functionality., Communication is left up to various team’s interpretations. Quality is being tested for at the end of development rather than ensuring it is infused into the process itself right from the beginning.
That’s an area where AI can and does excel; to clarify, expertly trained AI, not simply engaging Chat GPT in your browser to provide requirements with no context or guidance opening up the vast potential for hallucinations. A well-trained, finely tuned, well tested AI engine provides an exciting opportunity to assist agile teams in analysis and collaboration in ways that heretofore would have been too costly, time consuming, and cumbersome to the point of counterproductive. However, with GenAI and access to LLMs, well developed AI leveraged tools can guide best practices and data analysis to produce clear, concise recommendations and development assets before one line of code is written.
As a sustainability professional working, teaching, and consulting in the field for over 20 years, it’s clear that AI provides the ability to develop superior requirements. Additionally, with a collaborative effort to create pre-developed test cases and code frameworks, there is little to no need to point fingers across teams when bugs or defects crop up, traceability from test case back to requirements provides insights that just were not possible before today. Finally, developers can focus on what they do best, developing. They should not be wasting huge swaths of time interpreting requirements or searching for bugs post development because they misinterpreted requirements. There is nothing but opportunity in this space to improve the agile process to virtually eliminate technical debt and associated risk from a lack of pre-development insights.
Here’s a look at the Spec2TestAI™ High-Performance SDLC Process Workflow in Figure 2
Moving Quality to the Beginning of the Agile Process Reduces Opportunities for Gaps and Misalignment
AI has opened the door to change the way we approach some of the old, fundamentally impaired processes that have been in place for decades; and the Agile SDLC process is ripe for improvement. To use the same analogy of buildings as before, it is now widely accepted that when buildings are designed with all stakeholders invited to the table in the design phase to provide input; (the owner, architect, engineers, contractor, interior designer, end user, functional systems testers (known as commissioning agents and operators), the highest performing of all buildings are built. They not only secure higher tenant rates but enjoy longer shelf lives and lower operating costs. Adopting a holistic approach to the SDLC and engaging all stakeholders at the beginning of the process to embed quality, transparency, and accountability is the paradigm shift Agile needs. To achieve successful outcomes and evolve into SustainAgility, high-performance software development must become the norm. Or Agile could easily be replaced by a different methodology and go the way of the dodo bird. After all, by definition, Agile is about the ability to embrace change.