Interviews: Developer Habits That Increase Productivity from Some Industry Leaders
March 25, 2019·
The term productivity is relative. It means different things for different sectors and different industries. In an economic context, productivity refers to the measurement of output with respect to the units of input.
This is perceived differently in other sectors and other industries, for instance, let’s take a piece from Charles Duhigg, who described productivity this way:
Productivity is about making certain choices in certain ways. The way we choose to see ourselves and frame daily decisions; the stories we tell ourselves, and the easy goals we ignore; the sense of community we build among teammates; the creative cultures we establish as leaders. These are the things that separate the merely busy from the genuinely productive
However, regardless of your context, there is a common denominator that we can all agree on, and that is, Productivity is the art of getting quality work done with less time and effort.
Productivity is essential, it does not just help us checkmate our individual and collective efforts and progress but also serves as a means to better understand our limitations and continuously work on them to extend our limits. Some developers and teams often run to technical tools for help, as much as it helps, it doesn’t make you a better developer, and it doesn’t improve your habits.
In our context, productivity is more about working smarter rather than harder. Recently a lot of conferences, Twitter discussions and even some questions on Quora have been centered around productivity and how to help developers improve productivity individually, and in their teams.
As a result, I’ve embarked on this small interview to curate these habits that should ultimately help you increase productivity and have you doing more in less time, amidst all the usual distractions.
To strengthen this interview, I reached out to some of my favorite developers whom I’ve known to be very productive.
The idea was to get their thoughts on the issue and find out how they’ve managed to stay productive in the face of numerous tasks and distractions. I summed up my findings in this post, and I hope it helps you improve and sustain productivity.
- Have you ever wondered why it has almost seemed impossible for you to stick to that your to-do list? This post is for you.
- Have you ever wondered why it seems almost impossible to finish your scheduled task at the time you allotted for it? This post is for you.
- Do you manage a team of developers, you have all the tools that should “supposedly” increase productivity, but the results are not entirely remarkable, well this post is for you.
- If you’re just a developer, who is steadily looking for ways to get better at your craft and constantly develop yourself to achieve more in less time? This is definitely for you.
One of the most important habits that can enhance your productivity is proper management of time. We set out every day having more than one thing in mind to do. It could range from having to respond to emails, to working on any project you have for the day. That’s not all; it also includes responding to comments on your blog posts, updating a deprecated code on that your library, attending a team meeting and oh, you’ll have lunch, and you might also want to check Twitter and Slack and respond to all those many notifications.
Summarily, there’s so much to do in a single day that sometimes, we get overwhelmed and slide down the “I can’t kill myself” road. The truth is, if you managed time correctly, you would get it all done and still have enough time left to do anything else you want, watch your favorite tv show on Netflix, play ping pong with a friend, hit the gym and so on. However, If you don’t manage your time correctly, you’ll see yourself doing half of everything you set out to do for the day or in some cases, not doing some of them at all. Consider this scenario
“You have a bug from last night, you want to fix it this morning, you get set up to work and the next minute you get a slack notification or a mention on Twitter. So you open it up, you respond, and a conversation starts, before you know it, you’re long gone reading this fantastic article that someone just recommended for you. Halfway through it, you realize you were supposed to be fixing a bug and boom you drop the article and come back to that bug.”
What just happened? You just spent so much time achieving nothing. A better approach would have been to sustain focus on a particular task and not break it till the time set for it elapses or better still, till you’ve got the job done. If you had turned off all social notifications, or have disciplined yourself enough to stick to the bug, maybe you would have fixed it and spent the next hour consuming that great article.
I had the pleasure of speaking with Brian Holt while conducting this research. Brian is a tutor at FrontendMasters and a Senior Program Manager at Microsoft. I asked if he could share his productive habits with us, and here’s what he had to say
“I have to go to a “workplace”. Even though I work from home, I often go to coffee shops and friends’ offices to do work.”
“I budget time to respond to emails and then only answer it in that span. Otherwise, you’re constantly interrupted.”
“Don’t be afraid to mute Slack for an hour while you focus.”
“In general, uninterrupted attention is a developer’s most valuable and scarce resource. Do anything you can to guard that precious resource.”
This goes to reinforce what we’ve been saying about properly managing time and sticking to whatever it is you have to do at that time. It will ultimately help you get so much done!!.
A distraction is anything, whatever it may be that stops you from concentrating on something else. It could be someone singing around you, a thought in your head, an ad that caught your attention, an unexpected phone call, a notification, and so on. Whatever be it that breaks your concentration and takes your focus to something else is a distraction.
Limiting distractions keeps you focused on what task you have at hand and provide you the needed concentration to get the best out of yourself in your attempts to get the work done. According to Brian,
“Uninterrupted attention is a developer’s most valuable and scarce resource. Do anything you can to guard that precious resource.”
By doing everything you can to avoid distractions, you’re proportionally trying to maintain an uninterrupted focus and concentration on your task which ultimately translates to more productive time. That said, distractions are relative to many conditions, like environment, commitments, family, and so on. Therefore, you’re more prone to distractions if you’re in a familiar environment, like at home, in your office, or even in school. These are places where your family, and or friends could easily walk up to you and say “hey, have you seen this” or “do you know where I can find.”
In such cases, going to a relatively unfamiliar place is advised. Random strangers won’t break your concentration, and if they do, it’ll be on an occasional basis as compared to when you’re at home or in your office. That is why Brian also said that
“I have to go to a “workplace”. Even though I work from home, I often go to coffee shops and friends’ offices to do work.”
It is a technique that helps in limiting distractions and undue interruptions in your workflow. The most recurrent source of distraction is notifications. If you’re a social media active developer ( which there’s nothing wrong in being one), 30 minutes won’t pass by, and you’ll not get a notification, from either Gmail, Twitter, Slack, and so on. It is easier not to get them than to fight the temptation of not opening them. If you can, snooze them all when you need concentration.
“The biggest tips I’ve found is to remove notifications. That includes email, slack, all social, and setting the phone on silent.”
This complements what Brian said, to set time for it and only respond to those notifications at the time you’ve scheduled for them. It goes a long way to improve your output as it’ll abstract everything else that could interrupt you; hence, keeping you focused on the immediate task.
Setting goals are important but achieving them is even more rewarding. Defining the tasks you have for the day is an excellent way to organize yourself and manage your time. However, the more important part of the process is, being very specific with your tasks and with the times scheduled for them. Generally, the fewer tasks you have on your list, the more likely it is that you’ll get them done.
Here’s a take away from my discussion with Chris, he mentioned a few of other habits that work for him, and here they are:
- Biggest tips I’ve found is to remove notifications. That includes email, slack, all social, and setting the phone on silent.
- The next biggest tip I’ve used is to only have 3 things on the Todo list for the day. Those 3 have to get done, and the rest are optional.
- Trying to set too many goals can become overwhelming, and burnout happens.
- Trying not to multitask is big for me. Way more productive focusing on one thing and turning the rest off.
- Especially when getting hit with multiple messages all during the day.
Here, Chris reiterates the importance of being specific with the tasks you set for yourself. To be very productive, you need to streamline precisely what you want to achieve, remove the ambiguity and narrow it down to the task itself. For instance, consider this sample todo lists below:
Todo list A
- Work on my React project
- Submit talk proposals
- Finish my Drafts
This list is ambiguous even to the writer. It is neither direct nor specific. You can easily get carried away in thoughts trying to remember what it is you want to do in your React project, or which conferences you plan on submitting proposals to and so on. As much as it is vital to keep your list short, it is equally as necessary to keep it specific. Here’s a better list
Todo list B
- Implement user sign up and authentication in my React project
- Submit proposal to 2019 Deconstruct Conference
- Complete my Scotch Draft on “Typescript Essentials.”
This list is undoubtedly specific and direct. You could open it up and know precisely what you should do without a second thought. As opposed to having 10 items on your todo list, have just two or three that you’re confident you’ll get done. You can agree with me that pulling off three tasks daily is better than struggling with ten in a week.
Even though it’s super important to check off all those tasks in your todo, what’s even more important is your ability to schedule them in the order of importance. Some todo applications help with this. They let you set priority levels for all your tasks.
This is a fundamental feature that keeps you engaged with the more important tasks first before the rest. While researching these habits, I also spoke with Simona Cotin who works at Microsoft as a Cloud Developer Advocate. Here’s what she had to say
“To prioritise things on a weekly and daily basis, I use the Self Journal, similar to how Victor Savkin described it in his blog post. Ideally, I plan my next week on a Friday afternoon or Monday morning.”
“My morning routine is getting myself up to speed with emails and chat, prioritising the things for the day, filling in the journal and then meditating using the Headspace app. After that, I close all messaging platforms for two hours and focus on what’s the most important thing for the day - a project I’m hacking on, an article I’m writing, a doc I’m reviewing etc.”
“I maintain a running todo list focusing on weekly priorities, add all my deadlines, meetings, lunch etc as calendar events. I also maintain a copy of my goals for the week in the notion.so app”
You may have noticed that Simona’s routine touched on most of the previous habits we’ve discussed. However, it stressed the importance of maintaining a prioritized list as it helps you extend your productivity skills. This way, you do not just get things done; you get the more important ones done first. So, if for some reason you were unable to finish it all, at least you’ll be satisfied to have finished the most important ones. Hence you’ll have little or no regrets at all.
A unique take away from Simona’s habits is the morning meditation. It provides you an opportunity to gain a healthier sense of perspective and learn how to observe your feelings and thoughts without judgment. Ultimately it helps you to better understand how you operate and in what mood you work best.
Eventually, you end up with a better understanding of how to get the best out of yourself in every situation. You can be stressed, anxious, scared, and still be productive, and that is what meditation can help you with. Feel free to check out Headspace or get their app if you think this could help you too.
As the saying goes, you can’t do the same thing consecutively and expect a different result. If you’re struggling with staying productive at the office or at home, working from a different environment could give you an extra boost.
While carrying out this survey, I had the pleasure of speaking to the infamous Prosper Otemuyiwa. Prosper is a remote Developer Advocacy Consultant and he also co-organizes forloop Africa. Here’s what he had to say when I asked him about his productivity habits
“I work from home, but sometimes, I use a cafe, an open space or any unfamiliar conducive environment. If traveling works for you, and you can afford it, it also helps.”
“I try to avoid every source of distraction. First, when I set up to work, I put away my phone for as long as I need to stay focused.”
“I like to work early in the morning, and late in the night, these are times when I have the fewest of distractions. Sometimes I close open tabs to minimize distractions from other ongoing projects.”
Prosper’s habits reinforces what we’ve earlier discussed about avoiding distractions at all costs. He mentioned the need to change environments too. If you’ve been working from home or from a particular office, you should consider using other locations for work, this will not only help you sustain and focus on your current task but also avert any unnecessary distraction.
The obvious take away from my conversation with Prosper is that avoiding distractions and staying focused is very essential in staying productive. Do whatever it takes to ensure that you maintain an undivided attention on the current task, turn off phones, notifications, close tabs, go away from distraction prone environments, use headphones to avert background noises, and so on.
Get sufficient rest and sleep As developers, we are naturally prone to working more hours than everyone else. Even at home, we tend to spend the night working on a side project, writing one amazing post or learning new things. The truth is, your body needs some quality rest, there’s only so much it can take before you get stressed and lose concentration. Working fewer hours can help you remain productive and focused. Trying to force yourself to work more hours may produce a negative effect on your productivity, not to mention that improper sleep hampers your health and cognitive capabilities.
Don’t reinvent the wheel, if not necessary Most of the time, we find ourselves building a particular feature from scratch. There are probably tons of existing software and libraries, dedicated to implementing that feature for you in better and more performant ways than you could write.
Using them will not only save you time but also help you build an even better product. Of course, some of these libraries have their cost, security, and performance implications but most of the time, all these issues are accounted for and optimized in the best possible way for you. If you don’t explicitly need to rebuild something from scratch and there are existing alternatives that may help you achieve the same result without compromising anything, please go for it.
Automate recurrent processes Automation is one of the most important ways to save both energy and time during development. Often you find yourself doing something repeatedly, inside all your code files, your functions, server files, and so on. Having to type it all out each time is a very daunting and time-consuming task which you can automate by taking advantage of code generation options or writing scripts to automate all recurrent processes.
We can’t finish this discussion about productivity without mentioning the fact that certain tools have been developed solely to help you stay productive. Of course, we can’t mention it all but here are a few that should help you in these categories. Not that you don’t know them, but it feels right to mention that they help in surprising ways.
- Dropbox paper
- Google docs
- PivotalTracker, and so on.
Staying productive is one of the most efficient things we can do as software developers, in this post I have laid out my findings and shared my ideas on the habits we can subscribe to in other to get the best out of ourselves as we strive daily to grow in experience and knowledge. I hope you found this helpful, if you have any more tips or habits you think will be of benefit to all of us in staying productive, please feel free to share.
Written by Peter Eze.
Follow on Twitter