Focus and Flow

Struggling to stay in the zone?

Meetings. Chat. Interruptions. Distractions. Open offices.

There has to be a better way. So we wrote a book to help developers like you get into the zone, and stay there. Accomplish more while finding space to think and recover.

Download ebook for free:
Buy on paper:

Table of Contents

  1. 1

    Productivity and software development

    It’s easy to talk about productivity, but that’s a loaded word. What does productivity really mean for a software developer? How can we become more aware of our productivity levels so we can optimize for the most focus, and, as a result, the highest possible productivity?

  2. 2

    Get lots of good sleep

    When we’re tired, our body sends us plenty of signals to encourage us to get some sleep, but even mild sleepiness has significant detrimental affects on our patience and ability to focus. As software developers, these costs add up quickly.

  3. 3

    Eat well and hydrate

    Eating the right foods, avoiding hunger, and staying hyrdated enable us to function at our best. We’re more able to stay focused, and the right foods can improve brain health.

  4. 4

    Take restorative breaks

    Breaks aren’t a counter-productive behavior that distracts us from work. They’re an integral part of the process of knowledge work that enables our brains to focus and perform at their best.

  5. 5

    Value happiness and well-being

    While happiness isn’t an essential part of work, it is absolutely critical for maximizing productivity and collaboration. Designing for happiness, well-being, and engagement enables focus and improves communication.

  6. 6

    Make time for movement

    Human bodies are built for movement–not sitting at a desk for eight hours every day. Staying active and moving help our bodies and minds function at their absolute peak. Movement may not be inherently productive by itself, but it plays a key role in unlocking maximum creativity and productivity.

  7. 7

    Curate your environment

    Our physical environment can either hurt or enhance productivity, and the key factors go far beyond private or open offices. Air quality, noise, ergonomics, temperature, and humidity all affect producitivity in their own way.

  8. 8

    Reduce self-distraction

    You can optimize most things to remove and protect yourself from distraction, but there’s no door you can shut or headphones you can put on to prevent you from distracting yourself. You have to learn to recognize self-distraction and its triggers if you want to prevent it.

  9. 9

    Build consistency and continuity

    Whatever tactics you employ, few things work better than showing up each and every day. Regardless of what time you work or how you work building habits and consistency will invariably pay dividends for your focus and productivity.

  10. 10

    Right-size your tasks and start big

    In order to maximize engagement and focus, you have to design your work and tasks to be just big enough to be challenging, but just small enough to not be overwhelming.

  11. 11

    Have high expectations of tools

    You can’t write code without tools, and you can’t tolerate counter-productive tools. You have to measure tools by their net productivity and then invest heavily in learning those tools forwards and backwards.

  12. 12

    Shorten, consolidate, or reduce meetings

    Few things chip away at daily productivity like meetings. While some meetings are necessary, the vast majority could safely be cut or shortened. The resulting blocks of time open the door for increased focus and fewer distractions.

  13. 13

    Collaborate and communicate better

    Many of the interruptions and distractions a developer deals with involve important information and communication, but these exchanges can happen just as easily while reducing interruptions if we take the time to be considerate of the costs of the interruptions.

  14. 14

    Proactively mitigate interruptions and distractions

    While many interruptions are unavoidable, many more can be short-circuited by proactively addressing the source of the interruptions through tactics like improved documentation and knowledge sharing.

  15. 15

    Automate and streamline

    As a developer, technical automation is one of the most powerful tools at our disposal for reducing the amount of time required to handle tasks or potentially prevent the need for any manual effort and free up time to stay focused on primary tasks.

  16. 16

    Reduce time lost to unforced errors

    While we can’t prevent all errors, we can take steps to reduce them and reduce the amount of time required to address them so that they create less of a distraction.

  17. 17

    Do less

    Nothing improves our ability to focus more than simply doing fewer tasks at any given time. By focusing on one task at a time, developers are more able to see it through to completion, make fewer mistakes, and reduce time lost to switching between tasks.

  18. 18

    Structure and protect your days

    Between meetings, administrative tasks, phone calls, and casual interruptions, it’s difficult to string together a continous block of productivity. Adding some structure to your days for untouchable focus time means more time to be in the zone.

  19. 19

    Switch slowly and strategically

    While avoiding multi-tasking and context-switching is the best line of defense, it will be unavoidable at times. In these cases, you have to learn and employ tactics to mitigate the interruption and assist in returning to your primary work as efficiently as possible.

  20. 20


    There’s a lot to take away from all of these insights. So let’s boil it down to a few key takeways.

Or skim the abridged versions. Like the book, but in summarized formats.