If you have ever wondered what to do with the growing number of features in your software applications, you are not the only one. There is some useful guidance from The Standish Group survey quantifing that only 20% of all delivered software features are “often or always used.” For a team under the pressure of today’s economy to do more with less, here is a way to conceptually cut 80% of your effort and still deliver the high-value essentials. But wait it gets better. If you do not completely elaborate, build, test or document these features, you save once. But you also save again: with the future maintenance costs, the training users, the bug fixing and the regressing these features would have required. This is clearly the biggest lever for cutting software development costs using Agile. And yet it seems to be the hardest to attain.
What does Agile Prioritization mean?
This pairing back to the simple, important few takes tons of discipline and that level of discipline is only be made easier as your agility maturity increases. Most agile books and coaches will call this the discipline of “Brutal Prioritization.” In either case, brutal prioritization means two things:
- Not letting the fat slip into the backlog
- Keeping the backlog prioritized by value and risk
Please note, fat or wasteful features come from all directions from the business and customers, but also from developers, support, and product owners. Your features may be fat or wasteful if they:
- Do not help the most important user persona in your domain achieve breakthrough results or competitive advantage
- Have not be proven to work and are based on a hopes and prayers
- Look like pets that someone is protecting
- Are weak features that degrade the product because they are not complete enough to meet minimum expectations
Agile Requirement Prioritization
Agilists want to develop software which is both high-quality and high-value, and the easiest way to develop high-value software is to implement the highest priority requirements first. This enables them to maximize stakeholder ROI. Because requirements change frequently you need a streamlined, flexible approach to requirements change management: In short, agilists strive to truly manage change, not to prevent it.
Requirements prioritization is an essential mechanism of agile software development approaches. It maximizes the value delivered to the clients and accommodates changing requirements. This paper presents results of an exploratory cross-case study on agile prioritization and business value delivery processes in eight software organizations. We found that some explicit and fundamental assumptions of agile requirement prioritization approaches, as described in the agile literature on best practices, do not hold in all agile project contexts in our study. These are (i) the driving role of the client in the value creation process, (ii) the prevailing position of business value as a main prioritization criterion, (iii) the role of the prioritization process for project goal achievement. This implies that these assumptions have to be re-framed and that the approaches to requirements prioritization for value creation need to be extended.
Agile Prioritization Techniques
In Agile project management, we must prioritize a requirements list for release planning, iteration planning and the insertion of new requirements. But there are several techniques to do this.
One of the most popular methods of prioritizing Agile project requirements is the MoSCoW Approach. This stands for 'Must, Should, Could, Won't.' The only problem with this method is that everything is usually a must which doesn't allow proper Agile release planning because the requirements aren't necessarily put in order of priority.
Another method is the Kano model, developed by Professor Noriaki Kano, which strives to fulfill requirements and please customers. This model features four components:
- Must haves are elements the product cannot ship without.
- Dissatisfiers are things the product must NOT include.
- Satisfiers include requirements where the more you have the better the product is perceived. Like a marketing checklist, each feature adds incremental value.
- Delighters take the product beyond simply meeting the requirements to boosting customer satisfaction and recommendation.
Several prioritization models put together a table weighted by two variables: features and customers. Each feature is weighted by its value to each customer. The sum of the weights multiplied by the scores makes it possible to see which features are most useful overall across the set of demanding customers.
No matter which technique is used, your list of project requirements must be sorted from most to least valuable.
Free Tools for Planning and Prioritization
Mountain Goat Software is providing this collection of tools for your use on agile projects. These tools are based on ideas described in Mike Cohn's books.
- Velocity Range Calculator
- Relative Weighting
- Theme Screening
- Theme Scoring
- Planning Poker
- Project Success Sliders