All notes

Prioritization Is More Than Turning Opinions into Decimals

Separate value, evidence, constraints, opportunity cost, and learning before trusting a score.

English edition, edited for length. Read the complete Chinese original.

Let’s assume the roadmap includes four key areas: search, subscription, recommendations, and reviews. The team assigns scores to each, with search receiving a score of 83.2 and recommendations receiving 81.7. Based on these scores, they declare search to be the most important. The initial scores are just estimates, but the use of decimal places makes the conclusion seem like a precise measurement.

The prioritization method should help the team expose underlying assumptions and trade-offs, rather than hiding the discussion within formulas. While scoring can help organize information, it cannot replace strategic goals, hard constraints, or evidence-based judgment.

Start by stating the current goal

If the website’s goal is to help readers find older articles, then search and categorization features are more relevant. If the goal is to establish a sustained reading relationship, then subscription and update frequency may be more important. Without a clear goal, any feature can be justified.

The goals should have both a time frame and constraints. For example, the goal is to improve article discovery over the next two months, without increasing the long-term burden of manual review. While comments may enhance engagement, they also introduce costs associated with management and spam content, and cannot be solely attributed to the initial development work.

Safety remediation, legal obligations, and critical reliability issues fall under hard constraints and are unlikely to be included in standard functional scoring. By having all projects compete within a single value formula, it would push projects focused on easily quantifiable growth metrics to the forefront, potentially marginalizing essential work.

Break value estimates into explicit assumptions

Translate the goal into selection rules: prioritize discovery of existing content, avoid adding operational work with no owner, and preserve page speed and the boundary around private drafts. Search, tags, and content directories then have a direct relationship to the goal, while comments require a separate justification. These rules are not permanent strategy; they express the current phase’s resource constraints and should be updated explicitly when those constraints change.

Hard constraints must have a clear entry point. Critical vulnerabilities, domain expiration, and legal obligations cannot be addressed solely through standard growth scoring. Furthermore, all proposals should not simply claim to be “essential basics.” It is important to record the source, duration, and verification method of each constraint, providing evidence that it is not simply based on the opinion of the loudest voice. For undefined obligations, seek professional judgment rather than guessing based on formulas.

The project is expected to help how many users, and to what extent? What evidence supports these claims? What costs are involved, and over which stages? It’s important to record this information separately. Instead of simply saying “many people will like it,” we need to break down the target audience and their specific behaviors to determine if there’s a valid basis for this claim.

The impact can come from existing traffic, the helpfulness can come from research, and the cost can come from engineering estimates. The uncertainty from different sources varies, so it cannot be uniformly labeled as “high confidence.” Confidence should be supported by evidence, rather than being arbitrarily assigned by the proposer.

Frameworks like RICE help standardize comparison dimensions, but the input itself can still be biased. It’s suitable for facilitating discussions, but not for making mechanical decisions about all projects. Different project types may also not be comparable fairly, for example, comparing infrastructure capabilities with short-term interface improvements.

Express uncertainty with ranges

Taking search as an example, the potential user base can come from readers searching for old articles, and the value lies in the ability to quickly find relevant content. The costs include index updates, result quality, and maintenance. Recommendations rely on stable metadata and evaluation, not just a similarity interface. The first version, quality improvement, and long-term maintenance should be listed separately to avoid comparing different cost boundaries for each project.

Confidence should be specific to individual assumptions, rather than just the overall scoring. The team might be confident that the search is feasible, but uncertain about how frequently users will need it; the recommendation requirement is clear, but uncertain about the quality of the current data. This contrasts with the two experiments: the former focuses on verifying the feasibility of the task, while the latter focuses on evaluating the search. Multiplying the different levels of uncertainty into a single coefficient loses the information about how to mitigate the risks.

The sources of evidence also need to be clearly indicated. User requests, data showing behavior frequency, and prototype testing results can all demonstrate interest and understanding, while payment commitments may indicate perceived value. However, these sources provide different types of evidence and cannot be used interchangeably. In particular, a positive response from an internal demonstration should not be interpreted as widespread demand from actual users.

The feasibility study might only require a few days of prototyping, or it could take several weeks to validate the data and quality. Stating an interval is more realistic than providing a precise completion date. The value estimates can also be presented for conservative, moderate, and optimistic scenarios.

If a project only ranks first under optimistic assumptions, prioritize verifying that assumption. A short experiment may be more valuable than immediately investing in a full implementation. A learning-oriented approach doesn’t solely focus on immediate user growth; it can also avoid costly mistakes.

However, experiments also have costs. Conducting several weeks of research for a small, easily reversible change may not be worthwhile. The validation effort should be proportional to the potential loss due to incorrect decisions and the reversibility of the change.

Opportunity cost includes work already in progress

Sensitivity analysis can initially ignore complex probabilities. Set the search value to a conservative scenario and the recommendation cost to an optimistic scenario, and see if the ranking remains stable. If even a small change in input causes a reversal, the difference in scores is not a reliable conclusion. Instead, first identify the variables that have the greatest impact on the selection. If a variable consistently ranks poorly regardless of reasonable changes, there is no need to collect a large amount of evidence for it.

The validation action should have a decision point. If the search example can significantly reduce the search steps, it should proceed to a smaller implementation; otherwise, it should first complete the title and category. If the prototype is frequently returning irrelevant content, it should pause the full UI. Here, improvements are not fabricated; the actual thresholds are determined by the task and cost. The experiment is not to automatically advance the project to the next stage, but to preserve the possibility of stopping.

For small, reversible changes, direct delivery and observation may be the most cost-effective learning approach. For changes involving billing, privacy, or long-term data structures, the potential for errors is greater, and stronger upfront validation is required. A team can adopt different levels of validation, and there is no single “must-do” approach, such as “everything must be researched first” or “launch first and then fix.”

Starting a new project inevitably disrupts current work, leading to context switching and unfinished tasks. Prioritization isn’t just about choosing the most appealing next item; it also involves deciding which tasks to temporarily postpone and whether to continue with existing efforts.

The sunk cost fallacy should not force the team to complete projects that are of no value, but the switching cost is also real. It is possible to re-evaluate at clearly defined checkpoints, thereby reducing the need to constantly re-prioritize the entire roadmap based on the latest feedback.

The dependencies also influence the order. The metadata of the articles is unstable, and relying on it directly for recommendations could be based on unreliable information. While the initial work may not directly benefit users, it can remove limitations for subsequent projects.

Capacity allocation is more stable than a single queue

Parallel work also consumes resources. If each of the four projects is only completed halfway, users may not receive any value; completing a single task from start to finish is necessary to obtain feedback. When a new urgent project is introduced, clearly define which tasks to pause, how to save context, and when to review. Otherwise, the roadmap will simply be an ever-growing wish list, not a concrete commitment.

Checkpoints can be based on risk mitigation rather than a rigid calendar-based switch. For example, after completing a quality prototype search, you decide to continue. After completing compatibility validation for migration, you decide to switch. The time invested doesn’t determine whether it’s worth continuing, but rather, you need to re-evaluate the ongoing costs, the value of completion, and the costs of exiting. When stopping a project, retain the information learned, rather than hiding unfinished work as evidence of failure.

Dependency graphs should also avoid excessive depth. While it’s important to ensure an account is properly set up and functional before commenting, rebuilding the entire infrastructure for a minor feature might be excessive. Consider whether each prerequisite task truly blocks current functionality, and whether there are more limited alternatives. Building a foundation can bring benefits across multiple projects, but it should be accompanied by specific timelines for implementation and validation, and should not be based on the assumption that it will be needed indefinitely.

It is important to maintain appropriate capacity for user value, reliability, and maintainability, while also considering various internal sorting options. There is no single, universally applicable answer; the appropriate proportion should be determined based on the product stage and the current risk assessment.

This approach doesn’t aim to permanently equalize all types of work, but rather to prevent short-term growth metrics from overwhelming all long-term capabilities. When significant reliability issues arise, the system should be able to adjust, with rules allowing exceptions and documenting the reasons.

Even small teams need to consider operational capacity. Features like comments, community engagement, and personalized content are not code that requires no ongoing management after launch. Maintenance costs should be factored in, otherwise the roadmap will continuously increase the burden of long-term responsibilities that no one is accountable for.

Decision records should preserve dissent

Discussions about capacity can be traced back to long-term responsibilities. If no one can handle the volume of comments weekly, even a cheap initial development cannot be considered low-cost; if automated article publishing requires manual fact-checking, the editing time should be included. The downtime of technical staff does not mean that operational staff have sufficient capacity. Resource planning should consider engineering, design, content, and support simultaneously, rather than just focusing on development points.

Maintaining learning capacity also requires boundaries. An experiment should first define the problem, duration, and stopping conditions. After a failure, the results should be summarized, and the experiment should not be extended indefinitely until success. Capacity for reliability, on the other hand, is adjusted based on known risks and does not guarantee a permanent fixed proportion. Using separate pools helps to avoid short-term gains from consuming all long-term work, but it remains a choice that can be reviewed and changed, rather than an immutable budgetary rule.

Specify which project was chosen, the reasons for the choice, and the assumptions upon which it was based. Also, note what new evidence would change the decision. Record the main opposing viewpoints so that the team can understand what concerns they had at the time.

Even a decision to decline a request requires explanation. A user’s request for postponement doesn’t necessarily mean that the need is being dismissed; it could simply mean that the goals are misaligned or that there’s insufficient evidence. Clear communication is more honest than simply keeping a request “on hold indefinitely.”

After completion, check whether the expected value is achieved, whether the costs exceed the budget, and whether the assumptions are valid. If the scoring system consistently favors certain types of projects but doesn’t yield good results, adjust the estimation method rather than continuing to assume that the formula is objective.

Compare the full responsibilities of search and comments

The initial search implementation requires indexing and result pages, and also needs to handle ongoing content updates, no results, sorting quality, and mobile experience. The initial comment implementation appears to be just a form and list, but it also needs to handle spam content, reporting, permissions, notifications, and dispute resolution over the long term. When comparing, use the same cost boundaries, and do not combine the full cost of search with the initial development time of the comment system. A simple piece of code does not necessarily mean that someone will be responsible for it in the long term.

The current goal is to improve discovery of older articles, so search and tags act on it directly. Comments still need evidence that they advance the same goal. Comments that help readers correct technical issues may be valuable, but that case needs specific user evidence and a moderation mechanism; “better interaction” is not an explanation. A goal is a selection rule, not a way to justify every feature the team already wants.

Vulnerabilities and draft leaks fall under hard constraints. First, confirm the impact and remediation requirements, and ensure they don’t compete within the scoring criteria. Additionally, ordinary proposals cannot arbitrarily claim to be essential, and the source, duration, and verification methods must be traceable. For legal or contractual uncertainties, seek professional judgment rather than relying on guesswork to arrive at a precise result.

Turn confidence into a verifiable list of assumptions

Regarding search, the team determined that the current corpus could be indexed, but they were unsure how many readers would need to search for older articles. Regarding recommendations, users wanted relevant content, but the corpus tags were unstable. The former requires task discovery, while the latter requires a quality prototype. A single confidence score cannot reconcile these differences and tell the team what to do. Instead, the team should separately record the needs, technical aspects, operational considerations, and supporting evidence, and then choose the action with the greatest uncertainty.

Estimate the number of people affected using a stated source and time window. Estimate the degree of help from task evidence, and estimate cost from engineering effort and long-term maintenance. Do not use one high-confidence label to hide different kinds of error. A direct user request shows that a need exists, but does not prove its overall scale. Approval during an internal demonstration may show that the concept is appealing, but does not prove real use. Each form of evidence has a limited scope, and a decision record must not expand it.

The range can be simply represented using conservative, moderate, and optimistic scenarios. If the recommendation only wins under the most optimistic scenario and the lowest cost, first verify these two assumptions. If the search consistently aligns better with the target under reasonable variations, the justification for continued investment becomes more stable. There is no need to fabricate probabilities or decimals; the sensitivity analysis is to identify which assumptions are sufficient to change the choice.

Learning investments need explicit stop and continue conditions

A search prototype processes only existing articles. Participants are asked to find specified topics while the team observes result relevance and the steps required. Before the experiment, define the observations that support continuing, the prerequisites that must be fixed first, and the observations that should stop the work. If the results do not meet those conditions, adjust or stop the prototype. Not every completed prototype should become a production feature, and it should not be repeatedly modified merely to protect the proposal from a negative result.

Concise and reversible copy or layouts can be directly delivered and tested, while billing, permissions, and persistent data structures require more robust validation. The cost of verification should be balanced against the potential losses from errors, and a “test everything first” approach should not be blindly followed, nor should “ship it and fix it” be treated as a universal strategy. With limited team resources, research efforts should focus on answering questions that are likely to significantly impact the decision-making process.

The research findings have practical value, but there’s a limit to how much information can be collected. If a key variable has already been sufficiently supported by evidence, extending the research is unlikely to be worthwhile. We will retain the areas not yet covered and the conditions for future review, and make a judgment based on these constraints. The goal is to avoid making large, potentially wasteful investments based on uncertainty, rather than achieving a false state where all uncertainty disappears.

Manage work in progress instead of constantly inserting a new number one

Each of the four projects is being worked on halfway, which means users may not receive a complete task cycle. When a new priority item is introduced, it’s important to clearly define which project to pause, how to save code, and which unfinished side effects need to be addressed. The roadmap is expanded by one line, but does not reduce existing commitments. In reality, resource prioritization is not actually completed. Context switching, maintenance of unfinished work, and waiting for collaboration all contribute to the cost.

Checkpoints should be tied to risk reduction or a deliverable outcome. If the project’s original assumptions have been invalidated, sunk cost should not force continued investment. If the project is nearly complete and still valuable, a small scoring change need not trigger an immediate switch. Compare the cost of continuing, the value of completion, and the cost of exit, and keep that decision visible. When work stops, retain what the team learned instead of hiding the material and forcing the next person to repeat the same investigation.

The foundational dependencies also require scope limitations. Establishing stable metadata for searching is reasonable, but rebuilding an entire platform from a single entry point might be excessive. Each preceding task should list the current users and any obstacles, and then identify suitable alternatives. While the long-term benefits of shared capabilities can be discussed, it’s important to remember that future needs may not necessarily equal current needs, and therefore, unlimited development may not be the optimal approach.

Capacity pools preserve responsibility but allow justified changes

Reliability, user value, maintenance, and learning each have their own capacity, and the proportions can vary depending on the stage and the actual risks. Major incidents should be addressed first, and then re-evaluated once stability is achieved. The proportions should not be maintained mechanically indefinitely. The learning pool should not be a protected area for experiments without any restrictions, and the maintenance pool should also clearly state the actual burden it addresses. Provide transparent choices without automatic justification.

The following aspects should be considered: engineering capacity, design capacity, content creation and support capacity. All comments require review, and automatically generated articles require editing. Search results need to be maintained for quality. Development does not imply that other roles have remaining capacity. External commitments should be clearly defined and agreed upon in the near future. Subsequent candidates should only provide questions and evidence. Important customer exceptions: clearly state what will be removed, what will be added, and the long-term responsibilities. Also, specify when the review will be conducted, rather than secretly increasing the score.

Estimates should avoid only counting the benefits of new features while ignoring the losses from existing tasks. Comment sections could encroach on the main content, recommendations could increase script costs, and accounts could raise the barrier to feedback. These negative impacts should be considered as constraints or guardrails, not just acknowledged after release. Project value is net task improvement, not simply getting more clicks on features.

Once a priority has been established, maintain a stable execution window unless significant new evidence or hard constraints arise. Allowing each piece of feedback to interrupt the process would prevent the team from ever achieving a complete outcome. Completely prohibiting adjustments would also ignore real changes. For a rule set to be truly effective, it must clearly define what constitutes a sufficient reason to restart a selection, who is responsible for making that decision, and how to handle situations where work needs to be paused, along with resource commitments.

Acceptance criteria for the prioritization process

The prioritization process needs to distinguish between commitments and candidates. Recent projects have defined scope, assigned owners, and have acceptance criteria. Candidates, on the other hand, only have issues and evidence, and do not include fabricated dates. This allows new information to change the order of candidates without constantly disrupting external commitments. The roadmap is not a timeline of all desired tasks, but rather a collection of tasks with varying degrees of certainty.

Record exceptions for external requests. While deadlines from important clients may require adjustments, it’s crucial to clearly identify which tasks are being sacrificed, what additional maintenance responsibilities are being incurred, and when the team will return to its original goals. Explicitly documenting exceptions is more credible than subtly altering scores, and it ensures that future discussions are based on accurate data, rather than arbitrary decisions.

Decision records can be presented in a concise format: Choice, Primary Reason, Source of Evidence, Unspecified Variables, Review Date, Conditions for Changing the Choice. The goal is not to create lengthy documents, but to provide future reference with the information available at the time. If subsequent evidence contradicts the initial assumption, the direction can be adjusted without the need to continue investing solely to maintain the original judgment.

When communicating with users, it’s important to clarify that the current priority is focused on improving article discovery and that commenting functionality is not yet scheduled. This is more clear than saying “it will be released soon.” While collecting new task evidence can be helpful, it doesn’t guarantee that users will receive a roadmap for every request.

For tasks with similar scores:

  • Discuss whether changes in the input range will affect the order of execution.
  • For a necessary security fix: confirm that it will not be pushed to the end of the queue by the formula.
  • For a low-cost experiment: confirm that it has a place to be executed.

Ultimately, prioritization is about making commitments regarding resource allocation. A good process ensures that trade-offs are clear, that decisions are traceable, and that changes are conditional, rather than simply applying a numerical “score” to every opinion.

When reviewing estimates, it’s important to identify the sources of error. If estimates consistently underestimate maintenance costs, adjust the cost breakdown accordingly. If estimates consistently overestimate the number of people covered, examine the sample and its relationship to traffic sources. If estimates consistently ignore critical dependencies, involve the engineering team earlier in the process. The goal is not to achieve perfect predictions every time, but to ensure that the next investment is based on more accurate information. Formulas cannot replace the team’s learning process; accurate records of actual results are essential.

References