At the beginning of a project, it is not possible to eliminate all uncertainty about what the product will be. Fragments of the product need to be developed, presented to customers, and then feedback needs to be gathered, revised, and plans adjusted. For this, time is needed. So, to plan the release of valuable functionality, it is worth:
- Determine User Needs As Ben Stein said, "The first step necessary to get what you want is to decide what you want." It's important to think about our users' needs before planning a project. Simply generating a list of functionalities we think they need and creating a schedule for their implementation is not enough. Getting the best combination of product functionality (scope), schedule, and budget requires the cost and value of the user stories and topics included in the release.
- Prioritize There is rarely enough time to do everything. That's why we set priorities. The responsibility for prioritizing is shared by the entire team, but the venture is led by the product owner. Stories and features are then prioritized so that a release plan can be created. The themes should be chosen so that each defines a discrete set of functionalities that are valuable from the users' or customers' point of view. It is best to answer the following questions:
- What is the value of the business?
- What is the financial value of the functionality?
- What is the cost of developing (and possibly supporting) new functionality?
- What amount and significance of new knowledge created by developing new functionalities will we gain?
- What magnitude of risks will be removed by developing functionality?
Because most projects are implemented to save or make money, discussions of prioritization are often based on questions two and three.
- Evaluate the Return in Financial Terms Assessing financial returns can be complex. It usually involves estimating the number of new sales, the average selling price (including related transactions and support agreements), the timing of increased sales, and so on. Because of the complexity of making these assessments, it is often worthwhile to identify an alternative method of assessing value. Of course, the cost of implementing functionality is also a significant factor to consider as a priority. Many functionalities give the impression of being excellent until you know their costs.
- Evaluate the Return in Non-Financial Terms In determining the value of implemented functionalities, non-financial measures of attractiveness can be used to represent value, such as attractiveness to new and existing users, new knowledge gained about the product (what we are creating), and new knowledge about the project itself (how we are creating it). The consequence of acquiring new knowledge is to reduce uncertainty and risk.
- Determine the Most Advantageous Sequence for Implementing Functionality One of the biggest risks for most projects is creating an inadequate product. This risk can be greatly reduced by implementing the functionalities of the best present working software to real users. The appropriate sequences for developing functionality can be defined as follows:
- High-value, high-risk functionalities: These functionalities provide the greatest value, and working on them eliminates significant risks.
- Functionalities with high value and low risk: These functionalities provide as much value as the first group but involve less risk. Therefore, they can be placed later in the schedule. It is worthwhile to work on high-value functionalities first but use risk as a factor to eliminate concerns.
- Low-value and low-risk functionalities: Their rejection will have less impact on the total value of the product. Also, they involve low risk.
- Functionalities that provide little value but involve high risk: Functionalities that deliver low value and involve high risk should be pursued as late as possible.
Taking an empirical approach to delivering complex products in an uncertain and rapidly changing world requires empirical planning. This means that planning activities should strive to:
- Ensure transparency of progress;
- Set realistic expectations;
- Minimize losses while maximizing value.
It is impossible to plan a complex job perfectly; instead, one must strive to maximize the value obtained from the product at all costs. This is because there is rarely enough time to implement all functionalities, so there is a need to prioritize deciding which functionalities to work on first to plan and build the most valuable product.
Photo by Kevin Malik: https://www.pexels.com/photo/value-text-in-frame-9016994/