7-minute read

Welcome to the third and final article in our series on the tactical side of Agile transformation, focused on the roles, practices, and approaches that make Agile work. You can read the first article in the series here and the second here.

In today’s fast-paced development landscape, effectively prioritizing features is crucial for ensuring that products not only meet customer needs but also drive business success. Agile methodologies emphasize flexibility and responsiveness to change, but without clear prioritization, teams can easily become overwhelmed by competing demands.

This article explores various techniques for prioritizing features in Agile product development, focusing on methods like MoSCoW, WSJF (Weighted Shortest Job First), and story mapping. These techniques can help teams align their work with both customer needs and strategic business goals.

Methods like MoSCoW, WSJF (Weighted Shortest Job First), and story mapping can help teams align their work with both customer needs and strategic business goals.

Overview of feature prioritization techniques

Choosing the right prioritization technique can significantly impact the outcome of a project. The following methods are widely used in Agile environments:

  • MoSCoW: This technique helps teams categorize features based on their importance, ensuring that critical elements are prioritized.
  • WSJF: This method focuses on delivering the highest value features first by calculating the trade-offs between urgency and effort.
  • Story mapping: This visual approach allows teams to map out the user journey, facilitating better understanding of user needs and feature relationships.

Article continues below.

WEBINAR

Unlock real Agile transformation

The MoSCoW method

The MoSCoW method is a prioritization technique widely used in Agile product development to categorize features based on their importance. It helps teams clarify what needs to be delivered for a project to be considered successful. MoSCoW stands for:

moscow acronym

How to use the MoSCoW method

1. Gather stakeholders

Involve key stakeholders, including product owners, team members, and customers, to discuss the features being considered for development.

2. Define criteria

Establish criteria for each category. For instance, a “must-have” feature could be something that impacts the core functionality of the product or is necessary for compliance, while “should-have” features might be those that significantly enhance user satisfaction but can be deferred.

3. Categorize features

  • Must-have: Identify features that are non-negotiable. For example, in a banking app, secure login is a must-have.
  • Should-have: These are features that are important but can wait. For instance, additional payment options might be a should-have.
  • Could-have: These features enhance the user experience but are not crucial. An example could be customizable themes in a mobile app.
  • Won’t-have: Clearly outline what will not be included in this iteration. This can help manage scope creep and set realistic expectations.

4. Review and adjust

As development progresses, revisit the MoSCoW categorization regularly. Priorities may change based on user feedback, market trends, or business strategy shifts.

Benefits of the MoSCoW method

Clarity

MoSCoW provides clear communication regarding priorities, helping teams understand what is critical for success and what can wait.

Focus

By distinguishing between essential and non-essential features, teams can focus their efforts on delivering high-value items first, ensuring that core functionality is met before additional features are added.

Stakeholder alignment

Involving stakeholders in the prioritization process fosters collaboration and ensures that everyone is on the same page regarding what features will be delivered.

The MoSCoW method enables teams to focus their efforts on delivering high-value items first, ensuring that core functionality is met before additional features are added.

Example of MoSCoW prioritization

Consider a project developing a new e-commerce platform. The team might categorize features as follows:

  • Must-have: Secure payment processing, user account creation, product search functionality.
  • Should-have: Wish lists, product reviews, and ratings that enhance the shopping experience.
  • Could-have: Social sharing features, advanced filtering options for products.
  • Won’t-have: Cryptocurrency payment options, which may be considered for future iterations but are not necessary for the initial launch.

Using the MoSCoW method allows the team to prioritize effectively, ensuring that the most critical features are delivered first and aligned with both customer needs and business goals.

Involving stakeholders in the prioritization process fosters collaboration and ensures that everyone is on the same page regarding what features will be delivered.

The WSJF (Weighted Shortest Job First) method

WSJF is a prioritization framework used to help teams determine which features or tasks to tackle next based on the potential value they deliver relative to the time and resources required to complete them. It is particularly useful in Agile environments, where prioritization can significantly impact the overall value delivered to the customer.

How to calculate WSJF

The WSJF method combines the cost of delay with job duration to create a score that helps prioritize features effectively. The formula is:

WSJF formula

Cost of delay (CoD)

This represents the potential loss in value if a feature is not delivered promptly. CoD can be further broken down into three components:

  • User-business value: The value that the feature brings to customers or the organization. This can include revenue potential, customer satisfaction, and market differentiation.
  • Time criticality: The urgency of delivering the feature, especially if it’s tied to a specific event, market demand, or competitive pressure.
  • Risk reduction and opportunity enablement: The potential for reducing future risks or enabling new opportunities by delivering the feature now.

By evaluating these components, teams can arrive at a total CoD for each feature.

Job duration

This is the estimated time required to complete the feature. It should take into account development time, testing, and any necessary deployment activities.

Calculating WSJF

After determining the CoD and Job Duration for each feature, you can calculate the WSJF score. Higher scores indicate features that should be prioritized, as they provide more value relative to their effort.

The WSJF method combines the cost of delay with job duration to create a score that helps prioritize features effectively.

Example of WSJF prioritization

Let’s consider two features for a mobile banking application:
Feature A: Budgeting tool

  • CoD: $55,000
  • Job duration: 4 weeks
  • WSJF: $55,000 / 4 = 13,750

Feature B: Security notifications

  • CoD: $65,000
  • Job duration: 2 weeks
  • WSJF: $65,000 / 2 = 32,500

Here, Feature B should be prioritized due to its higher WSJF score.

Benefits of the WSJF method

Maximized value delivery

By focusing on features with the highest WSJF scores, teams can ensure that they are delivering maximum value in the shortest time frame.

Data-driven decision making

By distinguishing between essential and non-essential features, teams can focus their efforts on delivering high-value items first, ensuring that core functionality is met before additional features are added.

Adaptability

As business needs evolve, WSJF allows teams to adjust priorities dynamically by recalculating scores based on updated estimates for CoD or job duration.

By using WSJF, Agile teams can make informed, value-driven prioritization decisions, ensuring they focus on the most impactful features.

As business needs evolve, WSJF allows teams to adjust priorities dynamically by recalculating scores based on updated estimates for CoD or job duration.

Story mapping

Story mapping is a visual technique that helps Agile teams organize and prioritize features based on user journeys. It provides a clear understanding of how different features interact and contribute to the overall user experience, making it easier to prioritize tasks that deliver the most value.

How to use story mapping

1. Identify user activities

Start by defining the primary activities or goals of your users when interacting with your product. This step involves understanding what users want to achieve and the key steps they take to reach their goals.

2. Map out the user journey

Create a visual representation of the user journey, laying out activities in chronological order. This can be done on a whiteboard, sticky notes, or digital tools like Miro or Trello. For instance, in a fitness tracking app, user activities might include onboarding, logging workouts, tracking progress, and sharing achievements.

3. Break down features

For each user activity, break it down into specific features or tasks required to support that activity. For example, under the “logging workouts” activity, features might include adding workout types, setting duration, and saving history.

4. Prioritize features

Organize features in a way that reflects their importance and dependencies. High-priority features that are critical for the user journey should be placed at the top. This helps teams focus on what is essential for delivering a complete and satisfying experience.

5. Identify minimum viable product (MVP)

Through the story mapping process, you can easily identify the MVP—the set of features that will deliver the core functionality to users. This allows teams to focus on delivering a product that meets basic user needs while setting the stage for future enhancements.

Benefits of story mapping

Enhanced collaboration

Story mapping encourages team collaboration by involving stakeholders, designers, and developers in visualizing the user journey and understanding feature relationships. This shared understanding fosters communication and alignment.

User-centric focus

By centering the discussion around user activities and goals, story mapping helps teams prioritize features based on what truly matters to users, ensuring that development efforts are aligned with user needs.

Clarity and visualization

The visual nature of story mapping provides a clear overview of the product landscape, making it easier to identify gaps and dependencies among features, thus facilitating better planning and execution.

Example of story mapping

For a project developing a new e-commerce platform, the story mapping process might look like this:

story map elements and layout

By visualizing the user journey through story mapping, teams can effectively prioritize their development work, ensuring that they deliver features that enhance the overall user experience while addressing business goals.

Aligning features with customer needs and business goals

To ensure that feature prioritization is effective, it’s essential to align with both customer needs and business objectives:

  • Customer-centric approach: Use customer feedback, surveys, and analytics to understand what features users value the most. Engaging customers early and often can provide valuable insights into their pain points and desires.
  • Business objectives: Aligning features with strategic business goals ensures that development efforts contribute to the company’s success. Features that drive revenue, improve customer satisfaction, or enhance competitive advantage should be prioritized.
  • Stakeholder involvement: Involving stakeholders, including marketing, sales, and customer support, in the prioritization process ensures diverse perspectives are considered. This collaborative approach can lead to a more comprehensive understanding of priorities.

Prioritizing features in Agile product development is not merely about choosing what to build next; it’s about ensuring that development aligns with user needs and business goals. Techniques like MoSCoW, WSJF, and story mapping offer structured approaches to prioritization, helping teams navigate the complexities of Agile development effectively. By implementing these methods, organizations can improve their product outcomes, enhance customer satisfaction, and ultimately drive success.

Have you used any of these techniques in your projects? Feel free to reach out and let’s discuss how we can further refine our approach to prioritizing features in Agile development.

Person reading papers in front of laptop screen

Make Agile transformation a reality

We meet you where you are today in your Agile transformation journey and work side-by-side with your teams to achieve your organization’s strategic goals.

  • Enhance collaboration
  • Increase satisfaction
  • Improve product quality
  • Increase flexibility
  • Speed up GTM
  • Manage risk
Shaun Loughney
Shaun Loughney is a Solution Manager in Logic20/20’s Digital Transformation practice. An accomplished principal consultant with over 15 years of experience in product ownership and management, process strategy, and delivery for digital transformation, web content, and e-commerce initiatives, Shaun drives execution, creates requirements, sets goals, and defines overall strategy for customer-centric value. She brings a depth of expertise in managing the product lifecycle to include discovery, prioritization, validation, development, and launch.

Author