Prioritising
Also Known As
- Backlog Refinement
- Kanban (in Lean Software Development)
- Minimum Viable Product
- Product Backlog Refinement (in Scrum)
- Project Management and Planning (in Waterfall Development)
- Release Planning
- Roadmapping
- Sprint Goal (in Scrum)
- Sprint Planning (in Scrum)
- Task Prioritization
Related
Addresses / Mitigates
- Schedule Risk: Helps in focusing on high-priority tasks and meeting deadlines.
- Market Risk: Ensures that the most valuable features and opportunities are addressed first.
- Funding Risk: Allocates resources efficiently to high-impact areas.
Attendant Risks
- Scarcity Risk: Prioritization can create dependencies on specific tasks or features.
Used By
- Lean Software Development: Lean uses Kanban to prioritize and manage work.
- Scrum: Scrum prioritizes work during sprint planning and focuses on delivering a potentially shippable product increment.
- Waterfall Development: Waterfall involves detailed project planning and management, which includes prioritizing tasks to ensure the project progresses according to schedule and within budget.
Description
"Prioritization is the activity that arranges items or activities in order of importance relative to each other." - Prioritization, Wikipedia
Prioritising in software development involves defining the Minimum Viable Product (MVP) and planning development priorities. This practice ensures that the most critical features and tasks are completed first, helping to meet deadlines, allocate resources efficiently, and maximize the project's impact.
What It It?
Prioritisation is a key process in trying to focus on building useful stuff first. It could look like:
- A Sprint Planning Meeting: Deciding on the most important things for the team to build in a time period.
- Phased Delivery: Breaking a large project into smaller-scoped projects.
- A Backlog: Having tasks or stories in delivery order in a queue.
- Task Decomposition: Breaking down larger units of a task into smaller items. Often, Requirements come bundled together and need to be broken down so that we work on just the most vital parts, as in
- Identifying the MVP: Trying to cast out all non-essential functionality.
Prioritisation relies on not delivering all the functionality in one go. But it tends to be a spectrum:
- Big Bang: Delivering all the functionality in a single go.
- Cycles, or Phases: Splitting a large project into smaller chunks.
- Sprints: Delivering with a fixed cadence, e.g. every month or week.
- Continuous Delivery: Delivering functionality one-piece-at-a-time.
Usually, risk is mitigated by Prioritisation. But sometimes, it's not appropriate: When Finland changed from driving on the right side of the road to the left, (in order to be in line with the rest of Europe) the changeover had to be Big Bang and the whole country changed overnight.
How It Works
There are several ways you can prioritise work:
- Largest Mitigation First: What's the thing we can do right now to reduce our Attendant Risk most? This is sometimes hard to quantify, given Hidden Risk, so maybe an easier metric is...
- Biggest Win: What's the best thing we can do right now to reduce Attendant Risk for least additional Schedule-Risk? (i.e. simply considering how much work is likely to be involved)
- Dependency Order: Sometimes, you can't build Feature A until Feature B is complete. Prioritisation helps to identify and mitigate Dependency Risk.
By prioritising, you get to Meet Reality sooner and more frequently and in small chunks.
See:
See Also
Lean Software Development
An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.
Scrum
An Agile framework for managing and completing complex projects.
Waterfall Development
A traditional linear and sequential development methodology where each phase must be completed before moving on to the next.