A Stockphoto - stock.adobe.com

Tip

How do you plan an iteration in Agile software development?

Iterative planning in Agile helps teams to plan and adapt, collaborate, gather feedback and deliver to customers. Follow these tips to keep product development efforts on track.

A key characteristic of classical project management is its sequential and linear approach to project planning and execution. It involves detailed upfront planning, such as creation of a comprehensive business requirements document and an execution plan, before development begins.

Agile, by contrast, adopts an iterative and incremental approach. It focuses on delivering smaller, functional product increments in short timeframes (iterations) and the ability to be flexible and adapt to changing requirements.

Product and software development teams that understand the benefits of Agile iteration can improve their chances for success. Here's how teams can plan an Agile iteration effectively.

An example of Agile iterative planning

Imagine your team is preparing to launch an e-commerce website. Whether your organization sells books, clothing or any other product, Agile iteration planning can guide you to success.

Gather information

Agile prioritizes feedback and iteration, embracing change and continuously improving your product. Before diving headfirst into development, take the time to gather feedback and insights. After some discovery and customer interviews, your team will learn more about the product and its market, collecting data and insights to gain confidence.

However, recognize that many assumptions still exist. You are unsure if the product will actually succeed in the market or if the organization is investing in the right place.

After the initial discovery, the team should come together for an iteration planning session. This is where the magic of Agile takes place.

Keep everything simple

The team might be confident that it has all the requisite skills and can accomplish all desired features and functionality in an iteration. Indeed, Agile promotes cross-functional teams and encourages collaboration among team members, allowing for greater flexibility and shared responsibility.

Nevertheless, a fully baked product will be relatively complex and expensive. Instead, the team should focus on building a first iteration with just enough capabilities to test key assumptions. Agile encourages teams to identify risky assumptions upfront; teams that address challenges sooner reduce the impact of risks.

In your e-commerce venture, consider what minimal viable capabilities are required for a first iteration. Your team might decide to start with a simple product catalog, a shopping cart, a basic shopping mechanism and a billing system. It's unrealistic to deliver every feature in a single iteration (which takes roughly two weeks), especially with a small team of only a few developers.

To further simplify matters, consider implementing the rule of one. For example, start by offering just one product, such as a single type of clothing or one specific book. This approach minimizes complexity and reduces the need for a shopping cart in the initial iteration.

Another area to simplify in a first iteration is shipping and payment mechanisms. Rather than building out various options for customers, start with a straightforward domestic shipping method and a basic billing mechanism, such as secure credit card processing or Google Pay. You can later add other payment mechanisms, such as PayPal, but these might be distractions or not even possible within an initial iteration.

Quickly deliver an iteration to customers

In Agile planning, the emphasis shifts from building robust capabilities without validating assumptions to reaching the customer quickly. This means an initial iteration might not need a sophisticated database, many processes can be manual, or the team can store data locally on a file. The organization could even plan to source products from nearby stores based on early market demand rather than maintain inventory.

Collect data and feedback

After the initial product launch, start collecting data. The team's planning and prioritization should be data-driven and customer-centric.

Here, teams should apply the concept of the last responsible moment. This means delaying decisions until the cost of not making them outweighs the cost of making them. For instance, at what point should the team invest in a new database, or add more robust features to the shopping cart? Agile helps identify and justify these decisions based on real-world feedback.

In Agile, working software takes precedence over comprehensive documentation. Documentation remains important, of course, but Agile teams' top priority is to deliver functionality and value to users. This approach ensures that the product continually evolves and meets customer needs.

Iteration planning provides an example of how Agile differs from Waterfall approaches in planning, adaptability, handling of uncertainty, and customer-centricity. The iterative and flexible nature of agility, along with its emphasis on feedback and collaboration, proved to be more suitable for the dynamic challenges of the fast-changing market.

Ashok P. Singh is a product coach, author and entrepreneur who helps companies simplify their agile software development and product development.

Dig Deeper on Software development best practices and processes