5 Steps to Reimagining AI-Augmented Development: Beyond Just Writing Code

5 Steps to Reimagining AI-Augmented Development: Beyond Just Writing Code

Published Oct 20, 2023 by evergreen-ai.com

Artificial intelligence has taken center stage in the ever-evolving landscape of software development. As developers, we are constantly seeking ways to enhance our productivity, streamline processes, and create software that not only meets but exceeds the needs of our clients and users. One of the emerging trends in this arena is AI-augmented development. However, today, I’d like to challenge the conventional wisdom that AI-augmented development’s primary focus should be helping developers write code.

Let’s begin by acknowledging the reality: developers spend an average of about four hours daily with their hands on the keyboard, typing lines of code. The rest of their time is dedicated to understanding project requirements, collaborating with business domain experts, and bridging the gap between technology and business. It’s a multifaceted role that demands more than just coding skills. A significant portion of a developer’s work is spent ensuring that what they build aligns with the organization’s strategic intent.

Dan North, a renowned software development thought leader, aptly pointed out in his mckinsey-developer-productivity-review-by-dan-north that developers play a pivotal role in writing code and understanding and communicating how technology can empower the business. This reinforces the idea that AI-augmented development should encompass a broader spectrum of activities beyond mere coding.

The 20-50-30 Rule and the Need for Change

We turn to a 2010 Study of Standish Group’s research findings to help us understand this perspective. According to their data, 20 percent of software features are frequently used, while a whopping 50 percent of features are either hardly ever used or never used. The remaining 30 percent fall into the category of infrequently used features.

This revelation raises a critical question: Why are we dedicating a significant portion of our development efforts to features that have minimal or no impact on the end users and the organization’s objectives?

Step 1: Shift Focus to Strategic Intent

I propose a paradigm shift to harness the true potential of AI-augmented development. Instead of expending resources on features with uncertain value, let’s concentrate on identifying and implementing strategic intent measurably, whether it is an Objectives and Key Results (OKRs) framework or other Key Performance Indicator (KPI)  framework.

You need a clear, objective way to define an organization’s strategic goals. AI-augmented development should focus on aligning every development effort with these strategic measures. Doing so ensures that our work directly contributes to the organization’s overarching mission.

Step 2: Feature Definition and Prioritization

Once we’ve identified the strategic objectives, the next step in AI-augmented development is to define the features that will help achieve those objectives. This process involves collaboration between developers, business analysts, and domain experts. AI can play a significant role in this phase by analyzing historical data, user feedback, market trends, and our strategic measures to suggest features likely to have the most impact.

Step 3: Automated User Acceptance Criteria

Creating user acceptance criteria is one of the most time-consuming tasks in software development. AI-augmented development can streamline this process by automatically generating user acceptance criteria based on the defined features. This can be achieved through a methodology like Behavior-Driven Development (BDD) and formatted using Gherkin, a business and machine-readable language. 

Step 4: From Gherkin to Test Harness

When properly structured, Gherkin can serve as the foundation for an automated feature test harness. Following a behavior or test-driven development process using AI-augmented development tools can take the Gherkin specifications and automatically generate the test case code required to validate the features. This saves time and ensures that the testing process is aligned with the intended functionality before generating any code.

Step 5: Code Generation and Testing

But what about the code itself? Can AI help write and test it? The answer is a resounding yes. AI-augmented development can transform the Gherkin specifications into an automated test harness.  Now that we have created more context for the AI, we can instruct the AI to generate the code to pass the acceptance criteria, creating the conditions for the Given, When, and Then constructs. It can also run the generated tests, analyze failures, suggest or perform code refactoring, and request human intervention. From here, we can also dive deeper into test-driven development (TDD) by generating the unit tests for more detailed algorithms and generating code to pass those tests.

Conclusion

In conclusion, AI-augmented development has the potential to revolutionize the way we build software. By shifting the focus from writing code to aligning development efforts with strategic intent and measurable results, we can make our work more purpose-driven and impactful. With AI’s assistance, we can streamline the entire software development lifecycle, from feature definition to code generation and testing.

This process does not eliminate the need for a software engineer.  I see a near future for the product team to build a fully functional product that can be A/B tested and then delivered to the engineering team to refactor for scale.

It’s time to realize that AI-augmented development is not just about helping developers write code—it’s about assisting them to build software that truly matters and drives organizational success. So, let’s embrace this new era of development and unlock the full potential of AI as our trusted ally in the world of software engineering.

Check out our product at https://www.evergreen-ai.com