How can you prioritize when everyone’s ask is an urgency and you don’t have time to fit it all in?
You’re in the trenches, knee-deep in code, and you can almost taste the sweet victory of a problem solved. Just then, an email alert disrupts your focus – another fire to put out, another deadline to meet. And so the never-ending cycle of competing priorities begins.
As software engineers, we juggle multiple projects and tasks on a daily basis. Deadlines collide, emergencies pop up, and stakeholders make last-minute requests. Navigating these competing priorities is a constant challenge.
While you can’t eliminate competing priorities, you can develop strategies to manage them effectively.
What drives priorities
Before diving into tackling priorities, it’s important to understand what’s driving them. Digging into the root cause can provide crucial context that informs how you navigate task conflicts.
Here are some examples of what could be driving competing priorities:
- Business objectives - A new initiative launched to meet a strategic goal can compete with maintaining existing systems. Understanding the business motivations behind both will help guide your actions.
- Customer and user needs - Different features may be requested by various customer segments. Mapping out each customer need shows how they align with company goals.
- Team dynamics - Departments may have different processes and rhythms. Identifying these distinctions prevents misalignment.
- Individual stakeholders - Each stakeholder has their own incentives and key performance indicators (KPIs) driving requests. Knowing these helps balance stakeholder satisfaction.
By uncovering the forces that shape priorities, you can make informed trade-offs and balance business needs with your capacity.
Making trade-offs
Since you cannot tackle every priority simultaneously, you’ll need to make trade-offs. Defining principles provides a framework for making intentional decisions:
- Impact - Prioritize work that will have the greatest effect on customer experience, revenue, or other business objectives.
- Urgency - Balance long-term goals with tasks needing immediate attention.
- Return on investment (ROI) - Consider the return on time invested for each priority.
- Risk - Evaluate the risks of deprioritizing items, both short and long-term.
- Dependencies - Sequence priorities based on dependencies between tasks.
No single principle should dominate. The goal is balancing multiple factors to optimize outcomes. Having defined principles also allows you to communicate trade-offs more effectively to stakeholders.
Collaborate with stakeholders
While you own your priorities as an engineer, you don’t establish them in a vacuum. Key stakeholders like your product manager, engineering manager, and tech lead play an integral role.
Effective collaboration is a two-way street. Bring thought leadership in on priorities while also listening to the expertise stakeholders provide. By partnering with stakeholders, you amplify your contribution and help the team deliver value.
Overcommunicate with stakeholders early and often about prioritization trade-offs and changes in timelines. Set calendar reminders to give status updates to stakeholders. If deprioritizing a stakeholder request, explain why and offer alternatives.
Working with your product manager:
- Review the product roadmap together to understand planned initiatives and how new requests fit in.
- When new feature requests come in, evaluate their business value jointly before committing to anything.
- Be transparent about capacity constraints that could impact delivery timelines.
- Establish regular check-ins to align on priority sequencing within iterations.
- Provide data-driven input on technical feasibility and level of effort for features.
Working with your engineering manager:
- Escalate risks around overcommitting or misalignment on priorities.
- Ask for help prioritizing when facing conflicting stakeholder demands.
- Review your "vital few" priorities like the product roadmap, tech debt backlog, team standards. Get buy-in on planned work and estimates.
- Share feedback on your manager's processes that are working well or creating bottlenecks.
- Request mentoring on strategies for managing priorities and saying no.
Working with your tech lead:
- Align on technical aspects like architecture plans, tech debt backlogs, and team standards.
- Provide visibility into your capacity when planning out team assignments.
- Offer to pick up items from other engineers if you have availability.
- Ask for help resolving dependencies between team members blocking progress.
- Share ideas for how to balance delivery pace with quality and sustainability.
Prioritize ruthlessly and right-size your workload
The easiest way to navigate competing priorities is to reduce them down to the vital few that matter most. Be relentless in questioning whether tasks need to be done now, if they create value, and if you're the best person to do them.
Then focus your efforts only on those vital priorities. Taking on too much is a recipe for failure. While having some stretch goals is good, overcommitting will only lead to stress, technical debt, and team burnout. Say no to non-essential work. This intentional focus prevents distractions and fragmentation. Bring data and options to the table to support your decisions and be willing to stand behind the priorities you champion.
Be realistic about your team's bandwidth and don't commit to more work than you can deliver. Actively shape priorities focused on delivering maximum value and push back on misguided priorities that don’t make sense for customers or the business. Protect your team's ability to focus and deliver sustained, quality work.
- Include at least 25% buffer time in your estimates for unplanned work and interruptions. Block focus time on your calendar to minimize context switching.
- When estimating tasks, use your completed work as a baseline, not best-case scenarios.
- Have at least one slack period per quarter to focus on technical debt and infrastructure.
- Build breathing room into delivery dates, don't promise the earliest imaginable date.
Time and energy management
Time blocking creates dedicated spaces for focused work. For added impact, try and schedule your time blocks in the morning, when your energy levels are most high.
- Schedule your calendar with set blocks of time for high-priority tasks. This avoids double-booking and creates focus time.
- Use your time blocks to complete tasks less urgent tasks as well, such as status updates or reporting on completed work.
- Schedule time blocks for planned learning and development like training courses or reading. This prevents learning from always getting pushed off by urgent tasks.
- Limit context switching by dedicating extended blocks of 2-4 hours for intensive work. Short fragmented blocks often result in more distractions.
Sustainable pacing matters as much as efficiency. How you manage your energy impacts your ability to focus and avoid burnout.
A few strategies for maintaining energy:
- Take real breaks during the workday – get up, move around, get some air.
- Set guidelines for meeting length and number per day. Too many long meetings drain energy.
- Limit after-hours work to true emergencies – your brain needs recovery time.
- Develop consistent wind-down routines in the evening like going for a walk, reading, or meditating. This helps transition out of work mode.
Sometimes slowing down is the best way to speed up. Protecting your energy enables greater engagement when working on priorities.
Learning to say no
The default answer to any request should be “no” except for the vital few priorities already on your plate. This prevents non-critical work from queue-jumping and derailing progress.
Saying no is difficult. It can feel easier just to accept more work. However, taking on too much ultimately helps no one.
If you don’t know where to start when saying no, the below pointers might be helpful.
- Thank them for thinking of you and provide alternative solutions, where possible.
- Remind them of your current priorities and commitments. And given this context, you won’t be able to dedicate your time to additional projects or tasks.
- Suggest postponing the request until your next free period.
- Escalate to your manager if you feel pressured into overcommitting.
Final thoughts
In an engineering role, competing priorities are pretty much inevitable. There will always be more opportunities than time and resources allow. By taking ownership of your priorities, evaluating trade-offs, right-sizing your workload, time blocking, ruthlessly focusing on the vital few priorities, and collaborating closely with stakeholders, you can steer your way through the twists and turns.
Though the seas may be choppy at times, you’re capable of charting the right course if you keep your anchor rooted in delivering value and maintain the agility to shift as conditions change. With these strategies, you can navigate priorities with confidence and bring your best work to meet every challenge.