Applying AI in Agile Software Development Part 3: AI Augmentation of Agile Software Development
Generated using Google Gemini

Applying AI in Agile Software Development Part 3: AI Augmentation of Agile Software Development

This is the third article in a three-part series. In Applying AI in Agile Software Development Part 1: What I Would and Wouldn’t Do, I explored the high-level scope for AI-augmentation in software development. In Applying AI in Agile Software Development Part 2: Valid Use Cases for AI-Augmentation in Software Development I explored potential ways that software teams can leverage AI in their ways of working (WoW). This article puts everything together by exploring how agile software teams can apply AI effectively. But first, a bit about me.


Why Should You Listen to Me?

You likely know me as the person behind the Agile Modeling and Agile Data methods, or the co-creator with Mark Lines of the Disciplined Agile (DA) tool kit.? I’ve done other work in the agile space over the years, but those are the highlights. In short, I have a pragmatic understanding of agile software development.? Furthermore, during 2023 and 2024 I earned a Master of Science Degree in Artificial Intelligence from the University of Leeds. I was able to leverage my data and information science experience, which goes back to the late 1980s, while working on this new credential. In short, I have a decent understanding of AI too.


AI Tooling and Agile Software Development

First, let’s begin with fundamental advice around AI tooling. In priority order, here is what I recommend for agile software development:

  1. Adopt AI tooling to enable people to focus on collaboration. A key aspect of agile is on helping people work together more effectively. The implication is that if AI tooling is to support agile software development, it must either enable better collaboration between people OR it must automate away mundane tasks and thereby free up agile developers to focus on better collaborations.
  2. Adopt task-specific tools. A task-specific tool does one thing well. For example, a tool that helps my team to identify potential requirements for a data product is task specific. A tool that brainstorms requirements for any type of domain is not task specific. Task-specific tools tend to provide better results although require you to adopt and then learn a greater number of tools. A great resource to help find AI-based tools is the There Is An AI For That portal.
  3. Adopt orchestration tools. You need a tool to string together your other tools into your desired workflow. My recommendation is to keep this orchestration tooling slim, plugging your other tools into it as appropriate, and avoid the “one-stop shop” vision of large vendors.?
  4. Build a data vault for IT. Just like your business leaders need a source of high-quality data to make data-informed decisions , so do your IT leaders. The implication is that your organization needs a data vault, or a hand-jammed equivalent (usually not a great idea), that captures intel from tools and systems across the entire lifecycle from which to report from. Such a “data warehouse/lake house/mesh/fabric” provides the key monitoring and governance benefits of ALM without vendor lock in.


AI Throughout the Agile Lifecycle

The following diagram maps the uses cases identified in Applying AI in Agile Software Development Part 2: Valid Use Cases for AI-Augmentation in Software Development to the phases of the agile software development lifecycle. Three important points about Figure 1: First, unlike what the agile purists want you to falsely believe, agile software teams clearly go through phases in their WoW. ?Second, deployment is ideally a fully automated activity, not a phase. Not every agile team has reached that level of sophistication yet, unfortunately. ?Third, it includes an operations phase, making it more than just a development lifecycle. I do this to make it easier to transition to a discussion of how things map to the DevOps lifecycle in the next section.

Artificial intelligence use cases throughout the agile software development lifecycle
Figure 1. Mapping AI use cases to the agile software development project lifecycle.


Just as your focus changes each phase, so does your usage of AI. During Initiation you’ll mostly apply AI tooling to understand the context that you face, to generate ideas, and to support planning at a high level. During Construction much of that continues, albeit now to explore details rather than high-level concepts, but because your focus is now on producing a consumable solution you will adopt many technically oriented AI tools. Deployment is also supported by technical tooling, although frankly the DevOps folks have already done all the heavy lifting in this space years ago. Finally, any AI-augmentation for Operations tends to be on more sophisticated monitoring, particularly around security concerns.

Let’s take a more detailed look at Figure 1 a phase a time:

  1. Initiation. The Initiation phase is sometimes called Sprint 0, Inception, Envision, Ideation, or Start Up. Your goal is to get going in the right direction by coming to an agreement around what you’re going to do and how you’re going to do it. This requires close collaboration between your team, which is likely still in the process of forming during this period, and your stakeholders (a group that is also evolving). AI can be used to augment the brainstorming of potential requirements, exploring your existing technical environment, initial estimation, team planning, identifying potential architectural strategies, and many more activities. Effective initiation can dramatically reduce the risk of your initiative by working through important concerns before jumping into Construction, but can increase risk if this phase stretches on too long or goes into too much detail. AI tooling offers the potential to stream initiation activities. The focus of AI-augmentation during Initiation is focused on understanding the context that your team faces, idea generation, and planning support. All of this is performed at a high level, the details will come during Construction.
  2. Construction. During the Construction phase – sometimes called Development, Engineering, or Implementation – your goal is to produce a potentially consumable solution for your stakeholders. Agile teams typically organize Construction into short timeboxes called sprints or iterations, whereas lean or DevOps teams works in a more continuous manner. AI tooling can be applied for all sorts of technical tasks, freeing developers to focus on understanding the true needs of their stakeholders. Although most AI-augmentation during Construction automates technical tasks, the idea generation and context exploration that was critical during Initiation still remains important because now you’re dealing with the details.
  3. Deployment. During the Deployment phase – sometimes called Release, Installation, Transition, Ship, or mistakenly “the hardening sprint” – your goal is to release your solution into production. Earlier I pointed out that deployment is hopefully a fully automated activity rather than a multi-day phase. Classic DevOps tooling for continuous integration (CI), automated testing, and continuous deployment (CD) do most of the heavy lifting here. AI is being leveraged in testing and validation tooling to improve the quality checking that occurs before deployment. After deployment, assuming you keep your team together, you go back and continue with more construction work.
  4. Operations. During the Operations phase – sometimes called Production, Usage, or Run – your goal is to operate and support your solution in your production environment. Operations is outside the scope of the agile software development lifecycle, but it is an important aspect of the DevOps lifecycle and certainly something that mature developers concern themselves with. AI augmentation is commonly used by operations teams to interpret events as they occur in real time, particularly around security threats and operational outages. Important stuff for operations professionals, and also for anyone in a product-oriented role, such as a product manager.

?

AI and DevOps

I would be remiss if I didn’t perform the same mapping for a continuous lifecycle that I did above for the project-based lifecycle of Figure 1. Figure 2 depicts such a mapping. The detailed explanation for this lifecycle is similar to that for the agile project lifecycle provided above, albeit organized by activity (envision, implement, …) rather than phase. I believe it’s fairly obvious, but if there’s demand for such an explanation then I’m happy to add a fourth article to the series. Feel free to add your thoughts to the comments section.


Artificial intelligence use cases throughout the DevOps lifecycle
Figure 2. Mapping AI use cases to a continuous DevOps lifecycle.

?

My Concerns About AI and Agile Software Development

As Robert Heinlein was wont to say “there ain’t no such thing as a free lunch”, or TANSTAFL for short. There are several significant concerns regarding AI for software development that you need to be aware of:

  1. AI lacks an understanding of your context. Important aspects of your organizational context include your values, your priorities, your desired direction, your guidelines, your preferred ways of working (WoW), and so on. You can certainly address these issues via strategies such as retrieval augmented generation (RAG), but it takes investment to do so. Does your organization understand and accept this?
  2. Your organization needs to work through the long-term implications. The unconstrained use of AI in software development runs the risk of creating exponentially more technical debt. If you apply AI in the hopes of reducing IT staff, are you prepared to lose that organizational knowledge? Will you be able to easily and safely update AI-generated software when your stakeholder needs change??
  3. Your leadership may have unrealistic expectations. Has real, and coherent, strategy work taken place around the application of AI within your organization? If not, then leadership may mistakenly believe one or more of the following: They won’t need software developers anymore; any software developers they do hire can be lower skilled and thus cheaper; or AI can perform all aspects of software development. If any of those beliefs are prevalent within your organizational leadership then consider them very serious red flags.? You may want to reach out to me to discuss the possibility of me facilitating a strategy workshop to help to get you on a better trajectory.
  4. Intellectual property (IP) rights are still being worked out. We’re currently in the wild west phase of AI, and will be for several more years, but eventually the adults in the room will get things worked out. The issue is that large language models (LLMs), which many AI tools are based on, were often trained on material that the model vendors don’t own the IP rights to. There could be serious legal implications from using that ill-gotten IP to generate what you believe to be your IP just a few years down the road.? Does your organization understand and accept this risk?

?

The Future of AI and Agile Software Development

Looking into my crystal ball, here’s what I see for AI and agile software development:

  1. AI is here to stay. The AI tooling available right now is freaking amazing and it’s only going to get better. Strap in, it’s going to be a heck of a ride for the rest of the decade.
  2. We’ll always need software developers. AI is going to reduce the need for developers, but that need will never drop to zero. AI isn’t going to put you out of a software development job, someone else using AI will.
  3. Higher-level skills will be critical. The tasks being automated are those that are repetitive and onerous in nature, and that’s mostly technical stuff. Higher-level tasks, those that require experience, knowledge, and often “people skills”, are being augmented but not fully automated. This includes business analysis, architecture, design, exploratory testing, and team management activities. The days of getting by with a two-day agile certification are long gone and frankly should never have existed.
  4. People skills will be important, but not sufficient. In point #3 I described the need for experience, knowledge, and people skills.? It wasn’t just people skills, and people skills wasn’t at the top of the list.? You must have a solid understanding of the implications of what the AI tooling is doing for you, otherwise it will be doing it to you. A fool with an AI tool is still a fool.
  5. Domain knowledge will be critical. Always was, always will be.

Finally, some advice for tool vendors, until now the unsung heroes of my story. My advice to tool vendors is to build great tools that are easy to integrate with other great tools.? Focus on addressing a specific niche and on ease of integration into tool chains. Having worked for and with tool vendors throughout my career, my experience is that just as software developers must work collaboratively to succeed, so most tool vendors.

Note: I have turned this article series into an official white paper, Artificial Intelligence (AI) and Agile Software Development: Use Cases for AI-Augmentation. This white paper is free of charge, I don't even ask for your email address.

?

More About Me

I have other writings about AI in my blog on ScottAmbler.com and writings about software development at Ambysoft.com.? In my consulting practice I focus on helping teams and organizations to improve their ways of working (WoW) and ways of thinking (WoT), particularly around data activities that are critical for AI/ML development. I also give presentations at conferences, to user groups, and to teams within organizations about a range of topics, including this one.

?

Oliver Cronk

Technology Director | Sustainable Innovation & Architecture | Speaker, Podcaster and Facilitator | MBCS CITP

1 个月

Added to my reading list! Thanks Scott.

Dev Devendra

Sr. Program / Project Manager | Director | Enterprise Architecture | Data Analytics | AI/ML/GenAI | Cyber Security | Strategy | Digital Transformation | Health Informatics | Risk Navigation | Problem Solving | Execution

1 个月

Scott Ambler: Thanks for the this article and the previous 2, which I find very enlightening and thought provoking. The links to the AI tooling is most useful! A more detailed explanation (or separate article) for the AI use cases/tools mapping to the continuous DevOps lifecycle activities will be valuable from my perspective. I agree with the concerns you have highlighted along with your thoughts and implications for the future. It may be better to change the heading for Point 4 on Future implications for clarity and emphasis. At least the main point I took away on this is the need for developers with high level of technical skills, expertise and experience to validate the output from the AI tools. This is a continuous must have process to ensure quality along with weeding out adverse hallucinations.

Maurizio Arnaud

Agile Coach - International speaker- Biohacker - Sustainable pace advocate - Former waterpoler - Apprentice guitarist- Urban biker

1 个月

We will still need developers, but teams will be much smaller, consisting of two to three people with M-shaped competencies, and in some cases, even just one. Productivity will be astonishing, both due to AI support and the ease of interaction within these micro-teams. The role of the Scrum Master will likely become unnecessary in many cases precisely because of the drastically reduced size of the teams.

Rodrigo Coimbra

Service Delivery Manager | Agile Project Manager | PMP? | DASSM? | PSM II? | SAFe? SA?, SP?, SSM? | Cloud | Agnostic Agile

1 个月

I particularly appreciate the emphasis on keeping humans in the loop. This ensures that AI doesn't operate in a vacuum but is constantly validated and adjusted by those who understand the context best. The idea of working incrementally and involving stakeholders regularly makes a lot of sense too. It allows for constant feedback and improvements, minimizing the risk of significant errors. Overall, your article provides a comprehensive view on how AI can enhance agile software development without compromising on quality and efficiency. The balance between leveraging AI for its strengths and ensuring human oversight is a smart approach that can lead to more reliable and effective outcomes.

Jim Highsmith

Co-author Agile Manifesto, Adventurer, Catalyst, Storyteller

1 个月

Scott has been a respected colleague for nearly 25 years. He has been a pivotal thought leader in the pre-agile software development and data design era, innovative in the application of agile methodologies, and recently added his wisdom to the AI era (having a brand new masters degree in AI.) ? His article series, Applying AI in Agile Software Development arts 1-3 are worth your time to read. ?My comments on Scott’s parting insights: AI is here to stay. Agreed, the possible options, “Stick your head in the sand, or get over it.” We’ll always need software developers: Agreed, In 1970 we needed software developers skilled in machine language, COBOL, and reading hexadecimal. Today’s software developers need Azure, python, etc. and they are thousands of times more productive—but we still need them. Higher-level skills will be critical. Agreed, but possibly harder to achieve. People skills will are important, but not sufficient. Agreed, One recent study said the no. 1 future skill required is technical, number 2—communications. We must balance between people and technical skills, at all levels. Domain knowledge will be critical. Agreed. We need to increase capability-a function of knowledge, experience, and decision-making. ?

要查看或添加评论,请登录

Scott Ambler的更多文章

社区洞察

其他会员也浏览了