You likely already have a strong sense of when you’re productive and when you’re not. After a day of work, you know whether the day was productive or whether you were struggling to get anything done. You may be great at recognizing when you’re in the zone, but it’s much more difficult to quantify it or explain it—let alone know how to get there. Intuition is good, but deep understanding is better. So that’s where we have to start.

Productivity in software development is notoriously difficult to measure effectively. Things like hours at your desk or lines of code are easy to quantify, but they don’t always correlate to meaningful progress. In many cases, working additional hours offers diminishing returns at best and can be counter-productive at worst.

If the extra hours start cutting into your time to eat, sleep, or recharge, the quality of work lowers with each passing day. So while 16-hour days might sound productive on paper, any boost in productivity won’t last long. And in many cases, one hour of coding can be more productive than four hours of responding to email. So hours just aren’t a great measure of real productivity.

Since hours aren’t a great measure of productivity, maybe output is. So as a software developer, how should you measure output? Lines of code has traditionally been one of the methods used, but that’s a misleading proxy as well. In some cases, it may take a day or two to troubleshoot a complex problem. That work may only lead to a couple of lines of carefully researched and written code, but if that code solves an issue that’s cost the support team a week of time and immeasurable reputation loss, that’s significant. Alternatively, you may be refactoring a particularly bug-prone section of code and significantly reduce the lines of code while re-writing it in a more maintainable manner. In both cases, the value produced doesn’t correlate with the lines of code written at all.

Alternatively, while email is more closely tied to work, going for a walk could very well be more productive when it comes to generating novel ideas. We can’t judge the value of a task by its proximity to work. We have to look at all of our choices and behaviors holistically to understand what contributes to the most significant results, and staring at an email inbox is’t always a great use of time.

Productivity isn’t black and white

The fact that our best ideas often occur to us in the shower or during a walk should remind us that our output doesn’t only occur at our desks. Forcing ourselves to sit down and crank out code can often get in the way of the deep work that makes the biggest impact on our productivity. The idea to solve your problem could be incredibly valuable, but it doesn’t necessarily occur to you at work, and it may not directly generate any code. The idea definitely counts as output, but it’s not going to show up on any quantifiable reports, and those ideas often only come to us when we let our brains wind down. That’s not a green light to procrastinate incessantly by going on walks or taking showers, but things like building a 15-minute daily walk into your routine could work wonders.

Issues are complicated further since our brains are wired to reward us with dopamine when we complete something regardless of whether it’s the correct thing. Checking email, participating in team chat, or making a ton of commits can feel like real work when it’s often just a dance around your real work.

At the same time, our willpower is finite. Each day, you have some set reserve of willpower, and as you use it, it gets depleted. Every time you delay or avoid those tasks that give easy dopamine hits, you’re chipping away at your willpower. By the late afternoon, you’re going to have less willpower to work with, and you’ll be tired on top of it.

With finite supplies of both time and willpower, we have somewhere between one and four hours of deep work that we can accomplish on any given day. After that point, we can work more hours, but they won’t be highly productive hours. That’s not to say that the additional hours can’t be useful work—it’s just not going to be our most focused work. Our brains handle focused thinking best in about ninety-minute bursts, and then they need a break. So three high-quality ninety-minute cycles every day can maximize our productivity while leaving plenty of time for rest and recovery.

Speaking of recovery, things like taking naps, going on a walk, or making time to exercise, aren’t generally considered productive. They do, however, undisputedly contribute to productivity and creativity. So while you may not log them in a time tracker, you can’t maximize your overall productivity without them.

All of this is to say that productivity isn’t a black and white quantifiable thing that’s easy to measure, but we still have a strong intuition about whether we were productive at the end of any given day. To be fair, that intuition could be wrong due to years of believing in the wrong tactics, though. The trick is turning those feelings into something more tangible so that we can understand what truly helps our productivity and what harms it. A certain habit may not be directly productive in and of itself, but it may play a key role contributing to productivity.

For example, you might currently believe that stealing two hours from sleep to work two extra hours is productive. Or maybe you think if you cut out one hour of sleep and one hour of exercise, you just freed up two more hours of potential productivity. Or maybe skipping lunch will buy some more time to work. However, all of the data shows that these are ultimately counter-productive. It’s a focus on quantity over quality simply because quantity is easier to measure.

We have to learn to understand and appreciate the role our behaviors play in the quality of hours worked. Measuring the number of hours may work great for manual labor or production lines where hours worked correlates directly with output, but for modern knowledge work, focusing on quantity of hours hurts more than it helps. Just like measuring developers by lines of code is easily quantifiable, it can lead you to focus on counter-productive behaviors.

We’ll cover all of the individual tactics later, but first, you have to define what your most important productive work looks like. Then, ensure that those tasks are your one true priority every day. Let the other tasks fill your downtime. If shipping code is your highest priority, then you want to be mindful of work that isn’t directly related to shipping code. So instead of a general feeling about doing work-related tasks, you begin to recognize the less productive tasks as secondary. That’s not to say you don’t do those tasks, but you treat them differently.

We’ll dive into all of this in depth, but for now, suffice it to say that all of these things and more influence your ability to focus on your most impactful work. The better you understand how our brains work and which work is truly important, the better you can plan your days and optimize for deep work.

What is productive for you?

Before you can develop an understanding of the factors that influence your productivity, you have to define productivity for yourself. In most cases for developers, it’s probably some variant of shipping code. So it may be easiest to focus on the tools you’re using. If you’re spending all day in your IDE, terminal, and bug tracker, it’s likely you were productive. If you’re in your email or chat client, it’s likely you’re shipping less code. But if you’re a team lead, then maybe a little more time in communication tools makes sense.

Regardless of your ideal standard of productivity, we have to measure and increase our awareness of when the work we’re doing is important and when it’s just keeping us busy.

At Wildbit, we strive to be deliberate about paying attention to our individual productivity. Since switching to 4-day/32-hour work weeks, we’re trying to get the same (or more) productivity out of fewer hours each week. So we’re even more acutely aware of how we spend our time. When you’re collaboratively building anything, there’s a healthy tension between the interruptions necessary for collaboration and the environment necessary for deep work. It’s a moving target, and finding the right balance is an ongoing effort.

We’re also a remote-first company. We have a handful of employees in our headquarters in Philadelphia, but we strive to work together as if everyone was remote as much as possible. So we naturally spend a fair amount of time in communication tools, and there’s some amount of inevitable interruptions happening.

We’re no more perfect at productivity than any other company, but we’re incredibly mindful about it at both an individual level and a company level—and not in a creepy big brother type of way. We simply all want to get more meaningful work done every day so we can spend more time doing the other things we enjoy.

As you read this book, challenge yourself to identify the things that chip away at your focus and those that enable and encourage focus. Pay close attention to your productivity after a good night’s rest compared to a bad night’s rest. See how eating well or exercising affects it. Try working a day with notifications off. Perform experiments in the context of your own work, and monitor the results.

A framework for productivity

We’ll explore various tactics and approaches specific to software development with three main lenses in mind: enabling focus, getting in the zone without friction, and staying in the zone. Some tactics touch on all three lenses while others are laser-focused on helping you improve in one area. So before we get started, let’s review the lenses.

Enable focus

First and foremost, you have to do the things that enable focus. You can’t focus if you can’t function. Nutrition, rest, exercise, and proactively reducing unnecessary interruptions have an outsized impact on your energy levels and ability to focus. Science is showing more and more of a connection between health and brain function. Our ability to concentrate and think depends heavily on taking care of ourselves. We understand that athletes can’t perform at 100% without taking care of themselves, yet with knowledge work, we overwork ourselves and diminish our ability to function without fully appreciating the consequences.

Reduce focus friction

Next, you have to reduce focus friction. Take steps to make focus your default instead of distractions. Anything that prevents you from getting into the zone has got to go. You want to do everything you can to streamline your days or your work so that you can get to your most important work first thing while you’re still fresh. These all help you spend less time getting into the zone so you can spend more time actually in it.

Stay in the zone

Finally, once you’re able to get in the zone, you want to stay there. Focus is fragile. So commit to take the time and make the investments that ensure once you’re in the zone you won’t be pulled out unnecessarily. Since you can’t completely eradicate distractions and interruptions, you must also do what you can to become better at handling them effectively. You don’t want to embrace interruptions, but you still need to be realistic about handling them when they happen.

Of course, we’re all different, and it’s likely that you won’t benefit from every tip we discuss in this book. So think of these like clothes. Try them on. Take them for a spin. See what works and what doesn’t. Use the knowledge to get at the tactics and habits that can help you improve your productivity.

That’s the overview. Now we’re ready to talk real tactics. What can you start doing right now that will help you focus and become more productive?

Your next steps

  1. Begin to view productivity as the outcome of inter-related choices and behaviors rather than how directly a task is related to work.
  2. Move away from purely quantifiable measures of productivity towards value-based measures.
  3. Define what productivity looks like for you, and begin treating secondary tasks as filler rather than your default work.