Prioritizing Initiatives with Rough Order of Magnitude Estimations
What are ROM Estimations?
Inputs for ROM Estimations
Unlike detailed estimations, ROM estimations do not require a well-described product requirement document or a product backlog. Instead, teams can use various inputs such as:
- Basic Wireframes: Initial wireframes can help teams visualize the final design and identify potential functionalities.
- User Flow Diagrams: These diagrams map out the user’s journey, highlighting touchpoints and interactions with the product.
- Epics and Themes: High-level themes and epics can be used to identify key features and functionalities.
High-Level Estimation Techniques
There are several techniques used for ROM estimations, including:
- T-Shirt Sizing: Breaking down the initiative into smaller chunks and estimating the effort required for each chunk.
- Sprints: Estimating the number of sprints required to complete the initiative.
- Story Points: Using story points to estimate the complexity of the initiative.
function estimateEffort(initiative) {
// T-Shirt Sizing example
const smallChunks = breakDownInitiativeIntoChunks(initiative);
const effortEstimates = smallChunks.map(chunk => estimateChunkEffort(chunk));
return effortEstimates.reduce((a, b) => a + b, 0);
}
Adjusting Boundaries
Rough Order of Magnitude Template
By using ROM estimations, teams can prioritize initiatives based on their impact-effort ratio. This involves:
- Identifying multiple initiatives
- Conducting high-level ROM estimations
- Re-assessing the initiatives based on the estimates
- Choosing the initiatives with the best impact-effort ratio
function prioritizeInitiatives(initiatives) {
const estimates = initiatives.map(initiative => estimateEffort(initiative));
const impactEffortRatios = initiatives.map((initiative, index) => {
return { initiative, ratio: initiative.impact / estimates[index] };
});
return impactEffortRatios.sort((a, b) => b.ratio - a.ratio);
}