Distractions Cause Bad Code

Friday, September 14, 2018

We are barraged by constant distractions, and they are degrading the quality of our work. Our digital society now is set up to allow us to focus for mere minutes at a time, since we are in an attention economy and the sole objective of companies is to capture more of our time. Facebook, Google, and Snapchat are all incentivized to get us to look at our phones many times a day.

Distractions permeate everything, even at work. GitHub has notifications for so many things that if you have work and personal projects on the same account, you will get unrelated notifications all the time. Our employers set us up with ping-pong tables, open offices, and Slack, the open-office of chat tools.

With all these distractions surrounding us and with all these notifications, we are expected to get deep work done. Personally, I cannot. And you cannot, either.

When I'm highly distracted, I'm prevented from entering flow. To my core, I'm a maker. I get such a thrill from making things that are usable and useful, and these distractions cut through that in a way that makes it impossible to have a productive, fulfilling day.

Flow is important if you want to get anything meaningful done. Context switching takes a lot of effort and time and you can only do it so many times in a day. If you are constantly distracted, you will never enter flow and you will never have great, innovative ideas.

If you never concentrate and go deep, you will produce bad work: you will produce bugs, and fail to debug them; you will create security issues; you will cause performance problems; and you will architect things poorly.

You cannot live in a vacuum: you have to talk to users and stakeholders and your teammates and your manager. But that should be done on your schedule, not on theirs (most of the time) so that when you are done talking to them and you have a good idea of what to build, you can go crank out a high quality first version. This version will be on the right track, technically: good architecture, usable performance, well-tested, with minimal bugs. This is a first iteration you can go take to users to get concrete feedback and keep iterating.

Our attention is being squandered and we have an opportunity now to reclaim it. Fight back. Get rid of the ping-pong table; delete Facebook and Snapchat; disable push notifications for emails; build some walls to establish real offices. Setup processes on your teams to give people large chunks of time where they can go deep, for days at a time. Put walls or even hundreds of miles between your employees. Embrace flow, and get some work done. You'll feel better, I promise, and what you produce will be better as well.


If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.

Want to become a better programmer? Join the Recurse Center!