How To Prioritise As A Manager
Ruthless prioritisation is the key to success in engineering teams.
Juggling multiple projects and tasks is an expected part of the job for managers. Last-minute stakeholder demands, unexpected emergencies, and competing priorities are common in modern software engineering teams.
As a leader, you create value by acting as a prioritisation system. Managers must filter a long list of possible projects, tasks, and activities and reduce it to a smaller list their team can execute against. This means clarifying what’s most important and ensuring your team efficiently executes against those priorities.
Prioritisation involves deciding which tasks to work on and in which order to ensure that the team’s efforts are always focused on the most critical work. Done well, prioritisation is a high-leverage skill that will prevent your team from being overloaded with too many tasks and unrealistic deadlines.
Prioritisation is challenging because you’ll frequently deal with limited capacity, urgent deadlines, unreasonable requests, and conflicting priorities that must be resolved.
As an Engineering Manager, you must balance the needs of your stakeholders, team, and customers.
Navigating these priorities is a constant challenge.
Problem
Deciding what not to do is as important as deciding what to do
Steve Jobs
In a modern software engineering organisation, the list of potential projects and tasks for teams to work on is endless.
Work can come from many places. Your team serves many stakeholders, and they all want their needs met. Work can come from many places:
Business requirements - A business goal or objective to be achieved.
Customer requirements - Support or new features to meet customer needs.
Internal requirements - Technical debt, operational routine work, and internal projects to support your team's needs.
External stakeholders - Your team may support other teams and stakeholders within your organisation.
Surviving as a leader requires a system for prioritisation.
Engineering teams will always face more demands than they can handle. There will always be more work to do than capacity, and everyone will think “their” projects are more urgent than someone else’s. Juggling all of these demands can feel overwhelming and unwinnable.
So, how do you decide what to work on if everything is necessary and seemingly urgent?
Step 1: Understand Your Capacity
The first step in prioritisation is understanding your constraints and why you must prioritise. Your team has a limited capacity, and any attempt to exceed that capacity will result in burnout, overload, and, ultimately, a reduction in your team’s output.
When allocating work, account for predictable problems like your team's taking holidays and sick leave. Be realistic and don’t violate boundaries when prioritising your team's time.
If you have a team of 10 engineers who all work 40 hours per week, you have 400 hours of developer time per week in the best (naive) case. In reality, sickness, holidays, meetings, and unplanned interruptions will occur, meaning you likely have only about 200 hours of available “real work” time per week.
Every additional project or task you take on has an impact. As a general rule, the more work in progress that happens, the longer things take. In an ideal world, each team member is focused on 1 thing at a time, whether a project, a task, or being part of an on-call rotation.
For most engineering teams, “unpredictable” interruptions are “predictable.” You probably need to allocate a 25% buffer to your team to handle unplanned work such as customer support, on-call emergencies, and unexpected issues.
Every team is different, but the first step to prioritisation is to have a realistic understanding of “how much capacity do we have?”
Step 2: Build A Filtering System
The next step in prioritisation is reducing a long list of potential work to the most important. You need a filtering system that picks out the most important work in your queue based on some criteria and removes low-priority work.
The goal of the filtering step is to reduce your choices from many to few.
My favourite question is: What happens if we don’t do this work? If the answer is “nothing,” it’s a good sign that you can deprioritise something.
Some factors you can use to make prioritisation decisions are:
Impact: Prioritize work that will most positively impact the business (revenue, strategic goals) or customer satisfaction.
Urgency: Some urgent work needs to be done now, such as handling operational emergencies (“our servers are running out of disk space”) or resolving customer-impacting bugs.
Return on investment (ROI): Understand the return on investment of your work. Does the value achieved warrant the time needed to do the work?
Risk (Economic Cost Of Delay): Understand the dangers of deprioritising work. For example
1. Deprioritising a fix for an operational issue may result in a production outage that impacts customers and results in revenue loss.
2. Deprioritizing fixing a security vulnerability could result in a breach that impacts customer data and trust.
There is no perfect prioritisation system, and what works for one team won’t necessarily work for another.
Example: MoSCoW
I find it helpful to “group” work into buckets, and the MoSCoW method is one popular approach to prioritisation.
MoSCoW prioritization, also known as the MoSCoW method or MoSCoW analysis, is a popular prioritization technique that groups work into four buckets:
Must (Do Now): Work you have no choice about. This is the work you should do first. This could be a business-critical project with a fixed deadline or essential operational work.
Should (Do Next): Work you should do but could delay if you wanted to.
Could (Do Later): Work you could do, but there is no major risk/cost to postponing it.
Won’t (Ignore): This is work you don’t need to do. Remove it from your list.
A visual example of a MoSCoW planning session.
Step 3: Sequence
The final step in prioritisation is sequencing. This means taking your list of priorities and deciding what order to do the work.
Prioritisation is only half of the work management equation. You need to decide what work is most important (prioritisation) AND in what order you do the work (sequencing).
Prioritisation and sequencing are different. You may have a list of priorities but decide to execute them in a different order. An example would be a high-priority task that can’t be started because a dependency is not ready. You wouldn’t block your team from doing any work for weeks, waiting for the dependency to be available. You would choose to do something less critical first for better efficiency. Another example would be a “quick win” that is less important than something else but could be done first to get it out of the way.
A simple method here is creating a flat, ordered list of work to do.
Step 4: Review Often
Prioritisation is an ongoing process. As work continues to enter your queue, you will want to review priorities with your team regularly and make adjustments.
When assessing your priorities, you’ll need to make a decision. Should you pause existing work to make way for more urgent and important work? This is a tough decision because stopping work in progress will cause frustration in your team, slow things down, and cause stop-start context-switching, leading to low productivity. You need to find a balance.
Sometimes, the right decision is to pause existing projects; other times, it might make more sense to let existing work complete first before taking on anything else.
Other Thoughts On Prioritisation
Planned Vs Unplanned Work
Engineering teams typically have two categories of work: proactive planned work and reactive unplanned work. In big organisations, reactive unplanned work appears in the form of urgent customer requests, security issues that need immediate attention, operational issues that need immediate resolution, and various escalations.
Prioritisation is an ongoing process and requires constantly re-evaluating tasks. You’ll need to do it continuously as reactive, unplanned work appears.
The best solution for this problem involves retaining some capacity or a rotation of people to handle unplanned work.
Complex prioritisation systems fall short in the real world. If you have many rapid and urgent demands on your team, you won’t have time to sit down with a group of people and a spreadsheet to decide whether to handle them.
Communicate The No
An obvious but sometimes overlooked aspect of prioritisation is that saying yes to one thing means saying no to another. If you say no to important work, you must communicate that the work someone else wants cannot be done. It’s far better to be transparent and honest than to give false hope.
If the work can be done later, that’s a helpful context. For example, “We don’t have the capacity for this project now, so we cannot meet your required deadline, but we estimate we will complete it by August 30th.”
Get comfortable communicating no and renegotiating timelines.
Anti Pattern: No Prioritisation
Weak prioritisation happens when managers tell teams a task is urgent but don’t explicitly decide whether to pause other work or even if the team can do the work. This leaves teams with more work to do than they can handle, which causes burnout, overload, and frustration. This might be viewed as “not prioritising” or “hoping for the best.”
Although it sounds obvious, this is a common trap because managers struggle to say no to their senior leaders. In large organisations, requests may come from different leadership chains, meaning middle managers get pulled in different directions.
Your Manager: “Your team MUST get project X done by March.”
VP Engineering: “Your team MUST get project Y done by March.”
SVP Engineering: “Your team MUST get project Z done by March.”
In these situations, escalating upwards is the only solution because it is unlikely that you can simultaneously deliver all three high-priority projects.
Don’t work your team harder. Prioritise better.
Conclusion
Prioritisation is hard. It means explicitly saying no to valuable work that someone else wants. Although you’ll disappoint someone by prioritising, your team and business will be more effective when you do it intentionally.
I started writing to clarify the perfect prioritisation approach but was reminded that no such thing exists. Every method you’ll find has tradeoffs (too complex, too costly, too basic). There is no universal prioritisation method that works for all teams.
Balance work that aligns with your business goals and urgent demands from the business.
To prioritise better:
Understand you have to make tradeoffs. You cannot do everything asked of you. Taking on too much work will slow down your team and lead to burnout. You have to say no when the system is at capacity.
Use principles to guide your prioritisation decisions: business impact, cost of delay, urgency, and risk of delay.
If you get a lot of urgent, unexpected work, consider allocating a team or using a rotation to handle it.
Create a repeatable system for triaging and prioritising incoming work.
Ensure your team understand how prioritisation decisions are made.
Communicate delays and constraints clearly to senior leadership and customers.
Thanks for reading.
Get In Touch
I would love to hear from you! If you enjoy my writing and want to connect: