DEV Community

Cover image for How to prioritize your work as a developer
Josh Tulloch for Stashpad

Posted on • Updated on • Originally published at stashpad.com

How to prioritize your work as a developer

Uncertainty is the currency of every technology company. It fuels growth. Pivots. And sometimes layoffs.

While uncertainty accompanies progress and hiccups, it also represents nearly everything that’s out of your control as a developer. That’s why uncertainty feels paralyzing or difficult to wrap your arms around in the moment.

But you don’t have to be undone by what you can’t get done today. Instead, build a flexible, fluid approach to work centered around a guiding principle: prioritization.

By establishing a clear method for decisions, effectively managing your workload, asking others what they need, writing down what you’ve accomplished, and intentionally structuring your day, you’ll find more certainty and satisfaction at work.

Read on to find out how to know and weigh your priorities as a developer in five distinct steps.

1. Start your planning with a decision-making matrix

Establishing priorities is like trying to win the claw game at the arcade. It looks deceptively simple; but then 30 minutes has gone by and you still haven’t figured out how to get the prize.

Will Larson, the CTO for Calm who runs the blog Irrational Exuberance, suggests starting with a clear hierarchy based on the needs of your company.

“Reach the right outcomes by prioritizing the company first, your team second, and yourself third,” wrote Larson.

This outward-in hierarchy forms the framework for how you make decisions. It allows you to assess tasks or obligations to determine which should be tackled first. It also helps you align your work with what directly benefits your company, which may strengthen your case for a promotion or show why you’re indispensable in times of reorganization.

Larson also encourages developers to take a future-oriented view when it comes to balancing obligations in a particular category – whether that’s for your team or yourself – so projects with a longer timeline stay at the forefront of your task list.

“You should always be in the longest-term perspective that you’re certain you can reach,” adds Larson. “But sometimes that’s only next week.”

Add additional weight to projects that can’t be completed immediately; so the implied urgency of today doesn’t strip away your ability to get multi-step projects done in the future. When you convert larger goals into smaller chunks to tackle each day, you’ll gain insight into how you’re doing and be able to communicate your needs more effectively in the moment to your team.

2. When everything is a priority, nothing is a priority

It’s not that you can’t get everything done. You probably can. It’s more about what you’re sacrificing and what comes next. As you move into leadership positions, you know what’s at the end of that sprint? Another one.

By trying to do everything all at once, all the time, you’re chipping away at your ability to be reliable and effective in the future. You’re also unconsciously focusing on the action items that are right in front of you.

When we’re stressed we tend to pick the tasks with the shortest timelines. It’s how we cope. In a 2015 study, psychology professors at the Dongbei University of Finance and Economics and Peking University discovered that people in moments of stress, like a product deadline, look for tasks with faster payoffs in order to get a sense of accomplishment or find a bit of positivity.

You may be checking off items off your to-do list; but you’re likely not making significant progress on projects with longer-term horizons. You’re using up hours that could be doled out incrementally to achieve those goals.

It’s easy to lose yourself in the work. Without a system for prioritizing, you might find yourself drawn down rabbit holes outside of designated spikes or feeling like you don’t have enough time for maintenance tasks because of upcoming feature deadlines.

Stop giving all of your tasks equal weight. Find small wins when you’re stressed in different ways. Instead of snacking on the empty calories of email or Slack messages, eliminate the tasks that are eating up time without moving your work forward.

“People think focus means saying yes to the thing you’ve got to focus on,” said the late Apple founder Steve Jobs. “But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully.”

Setting boundaries for yourself will cut down on your stress by reducing your potential workload and enable you to focus on a new habit of prioritization.

3. Ask questions to uncover what’s limiting your team

As you’re building your framework for priorities, you need to think beyond your own limits and discover what is limiting your team members. This is how you tie your work to the needs of others on your team and throughout the company.

Nick Zhu, a senior director of engineering at Affirm, encourages developers to look at the ways in which tasks are interconnected, to understand whether your work is aligned with your company’s values.

For Zhu, “an engineer isn’t just working on a list of tasks,” but instead is considering the impact of each of those tasks. And that impact is determined by weighing the amount of time and effort that must be invested in relation to the potential for gains.

Reach out to a product manager to understand what a product or feature will look like now and in the future. Start asking managers about what’s on the top of their mind or what they need help achieving.

This is when you might discover that your company’s push to ship a product quickly has created a backlog of code reviews. By jumping in and filling the gaps, you’re now solving issues with bugs or performance that are essential especially when your company is more resource constrained.

The answers to those questions will give you the input you need to transform prioritization from a concept to a process. This is also the moment when you need to make sure you’re not blinded by your experience.

Assaf Stone, senior customer associate at Github, notes that while experience can help you navigate difficult situations; it also makes it easy to miss rapidly changing circumstances.

“Experience can also give you a false sense of security. You feel secure that you know all of the answers to the relevant questions, that you know the complete context of the problem,” wrote Stone. “If you want to change something, never assume that the current conditions are immutable.”

Talking to different teams will give you insight into the state of your company and which values are shared values. By consistently asking questions, you can evaluate (and re-evaluate) if the solution you’re working toward will have a high impact.

4. Don’t underestimate the importance of writing things down

Twitter owner Elon Musk recently made headlines when he announced that he would expect weekly updates from engineers. That decision spurred a series of takes on whether that was a reasonable expectation. While many of Musk’s ideas have been controversial, writing weekly updates can be valuable in making clearer the connection between your work and your company’s goals.

Taking the time to write down what you’ve accomplished in advance of weekly stand-up meetings or one-on-ones is a way to find more satisfaction in work and build regular check-ins to ensure your work is still aligned with the needs of your company.

While you may initially list all of the tasks you’ve completed, stick to the most important points when you’re ready to share ideas with someone else. James Clear, the author of Atomic Habits, emphasizes the importance of narrative when talking about what you’ve worked on.

“When explaining strategies, emphasize stories over patterns,” said Clear. “People forget numbers and charts. Everyone remembers a great story.”

You’re building the story of why this is important to you and your team. You’ll also find that the act of writing things down helps bring closure to your work. Feel the satisfaction of what you’ve accomplished and unburden yourself from the weight of thinking about the portions of the tasks you still have to complete.

5. Balance staying in your flow with meeting your team’s needs

Flow is important. But it can’t come at the expense of your relationships with your team. As we seek to optimize our own productivity, it’s easy to lose sight of the impact of prioritizing your teammates’ needs.

We know that change can be difficult. Initially, you may want to keep the shape of your day intact to protect the deep work routines you’ve spent time building. In that case, find your moments at natural points of transition to add tasks that are new priorities. That might mean scheduling consistent time for code reviews after your regular stand-up meetings or right after you return to your desk from lunch.

Make sure you’re not disconnected from what teammates are working on and make it a priority to be there for your teammates who need code reviews or have a question.

Frontend engineer Domagoj Vidovic realized that while he was an excellent coder, in part because he prioritized working in the flow state, he was harming the productivity of his teammates by being unavailable for hours at a time.

He’s not alone. A survey by video software company Panopto showed that employees spend an average of 5 hours every week waiting for others in their organization, who have the information they need, to respond.

“Being a great developer is much more than writing amazing code,” wrote Vidovic. “We are team players, and we must act like it.”

When Vidovic made it a priority to respond to his teammates’ pull requests, his team came to rely on him and he went from being “an unresponsive person who coded in the corner with noise-canceling headphones” to “one of the most valuable people in the company.” His colleagues began to appreciate him more. He was a grounding force, the reason the pipeline kept moving.

He also discovered something unexpected. He was happier at work and he actually began to code faster. The brief context switches enabled him to get unstuck from difficult problems and inspired the people around him.

“Soft skills, if you can focus on them, can improve your career more than your technical skills,” said Vidovic.

Developing a system for prioritizing work is an iterative process. It’s a continual balance of examining and understanding the needs of your company, as well as your capacity and the capacity of your team.

“Rigid adherence to any prioritization model, even one that’s conceptually correct…will often lead to the right list of priorities but a team that’s got too little energy to make forward progress,” said Larson.

You have to be committed to establishing priorities; but not so stuck on a given structure that you miss out on the opportunities for creativity that lead to innovation. Uncertainty is part of working in technology; but you can meet the questions or opportunities that arise by embracing the priorities that support you working at a transformative level.

Check out Stashpad

Thanks for reading this post! It comes to you from the good people at Stashpad :)

Stashpad is the note-taking app designed for your working memory. It's made for devs, by devs. It comes with features for technical notes, like markdown support, customizable key bindings, and syntax highlighting.

Get your thoughts out, organize them effortlessly, and return to them when you're ready.

Top comments (0)