One of the many misconceptions around Agile has to do with managing changing requirements. As a veteran of many product requirements documents for Waterfall software development projects, I’ve come to see that Agile development is a better way of managing the changing requirements that many software development projects face.
After all, one of the key principles of the Agile Manifesto is: “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
Let’s face it: Customers change their minds. The competitive landscape shifts. New and better technology goes live. There are tons of reasons why you need flexibility in your requirements, instead of trudging forward with a plan that could lead to budget waste and obsolete technology at launch.
There’s been a lot of thought around Agile change management. Here are five ways Agile helps manage changing requirements:
1. Customer input happens throughout the development process
Back when I got my start as a technical writer, I worked on software development projects that lasted months. The software wasn’t completed until the “end of the project.” And customer input came at the beginning of the project, during the requirements-gathering phase and then at the end of the project, nowhere in between. Often times, hijinks ensued when the software didn’t meet requirements or customer expectations.
Using a different process and working in Agile-style two-week sprints helps manage changing requirements in the following ways:
- Gains customer and stakeholder feedback on features sooner rather than later
- Improves scope control because stakeholders can add new requirements, shift priorities, or rethink requirements on a feature or architectural level
- Gives project teams the room to take risks and innovate based on customer feedback without sacrificing too much time or budget because agile teams can pivot on requirements as needed
An Agile development team should be able to ship a working product at the end of each sprint.
2. Product backlog sets development priorities
The one element that took me a while to warm up to was the product backlog. It’s like the scrum team’s prioritized to-do list of features to build.
Managing or grooming the product backlog can be an art unto itself. In some organizations, the scrum master manages the backlog. Other organizations might choose to have product managers or cross-functional team leaders involved in managing it. Either way, it’s a far more open affair because everyone from the whole team to stakeholders to customers might have input into the backlog’s priorities.
3. Daily meetings promote communications
Holding daily meetings, or stand-ups, are another tool for managing changing requirements. These meetings take place at the same time each day and give team members a chance to talk about the tasks they’ve completed and any obstacles standing in their way.
A properly managed daily meeting lets developers, team leads and stakeholders (if invited) to share information. Some of that information could be issues and feedback about product requirements that might arise during the implementation process. The impact of changing requirements on the project schedule can be discussed immediately and open for input by management and team members.
4. Task boards make developer tasks and details visible
Product requirements documents are too often read once and left in an email inbox for the duration of the project. Agile development uses the concept of a task board to divide up tasks into multiple columns and make them visible 24/7. These boards parcel out projects into the following stages:
- To do
- In progress
- In testing
- Done
Agile task boards started as whiteboards or corkboards but have gradually evolved into an Agile project management application category. Many of these Agile project management platforms are cloud-based and even have Android and iOS client apps available. LiquidPlanner’s version of task boards is the Card View feature.
Tasks boards help manage changing requirements because of the visibility they offer, which include:
- Project requirement status is visible to every team member.
- Dependencies of project requirements impacted by changing requirements are clear.
- Shows threaded comments about the changing requirements before and during sprints from the developer and other team members.
5. User stories and sprints orchestrate change
I spent some of my formative years in the IT industry writing requirement documents. I became accustomed to documenting every feature that was being built. When I was first learning about Agile, I came to marvel at how, if you orchestrated user stories and sprints appropriately, you can manage change quite effectively.
For example, a product owner creates a story. Developers can build a new application feature based on the story. During or after the sprint where that feature is built, a salesperson delivers feedback from a customer that shows the feature is missing critical functionality. The product owner can create a new story to build out the feature with the missing functionality during the next sprint.
Managing change is part of project work
Changing requirements will always dog development teams. Agile development gives project teams the platform, culture, and tools to manage changing requirements effectively so they can deliver products and services that meet or exceed their customers’ expectations. This is a big part of business success!
Another big part of business success is managing people and priorities over tasks and dates. With this in mind, LiquidPlanner was created to manage change and project uncertainty. This way, you can respond with informed decisions that produce results that everyone is proud of and happy with. For more details on how to use an Agile process for your project team, download our Agile for Everyone eBook.