Back in 2007, Joel Spolsky quipped that developers hate making schedules. “Usually, they try to get away without one,” he wrote, “‘It’ll be done when it’s done!’ they say, expecting that such a brave, funny zinger will reduce their boss to a fit of giggles.”
A lot has changed about software developer productivity since then. Today, developers work on projects that directly impact multiple teams across their companies and drive revenue. As a result, they’ve had to find new ways to prioritize tasks, communicate their priorities to important stakeholders, and make the most out of their hours at work.
We reached out to a few programmers to see what time management looks like for them in 2018. Here’s what they had to say.
Creating To-Do Lists for Each Day
Ian Allen, a Developer here at Stack Overflow, says that he starts his day by making lists. “First, I write one that outlines all of the things I’m working on,” he continues. “From there, I go through each line item and prioritize based on two things: What’s most important and what I can reasonably get done that day.”
Anthony Rieder, a Software Engineer at S&P Global, also begins his mornings this way. For him, the key is aligning his to-do list with his team’s most pressing deadlines.
“Anything related to product releases always come first,” Rieder adds. “Additionally, I complete any tasks that enable others to do their work because I never want to block someone else from getting things done, especially when it comes to software developer productivity. Not only are these the things that I start each day with, but they’re also the projects that we discuss first in our daily scrum calls.”
Setting Expectations by Being Transparent
Recently, we looked at how developers can reduce duplicate requests from non-technical teams. But people will still reach out when they need technical help. What can programmers do to address these unexpected requests? For the people that we spoke to, being transparent about their workload is essential to setting expectations.
“I keep my Trello cards up-to-date with updates on my progress and where I’m currently stuck,” Allen told us. “This makes it easy to show everyone what I’m working on, where I need a little help, and why certain things are higher on my list than others.”
This process is a little different for Rieder, who works for a large enterprise company. He walked us through what his team refers to as their “Scrum of Scrums” process, during which everyone outlines the potential roadblocks in a project and ideal time frames for completing tasks. When someone from another department asks him to re-prioritize, he has a simple solution. “If a simple ‘no’ doesn’t get my message across, I’ll invite that person to our Scrum of Scrums. This gives them the opportunity to see first-hand why we can’t drop what we’re doing to fulfill their request and how it impacts developer productivity.”
Completing The Easiest Tasks Immediately
To wrap up our conversations, we asked about the unique ways that developers manage their time. Rieder said that he tries to determine if there are any assignments that he can take care of quickly. “Once you have a to-do list, scan it before you dive into anything. If a task takes less than five minutes to complete, I do it right away,” he said.
From there, he says he uses a time-based system to organize his day. “If I know that something will take up to 30 minutes to finish, I’ll do it after I wrap up my easiest wins. But for anything that takes an hour or longer, I’ll block out time on my calendar to work on nothing but that thing.”
Want to help your technical colleagues stay productive? Find out how Stack Overflow for Teams can help.