A few readers of Developer Microskills have written in and asked me about focus. They've asked questions like:
- Once you've picked something, how do you keep yourself from jumping to the next thing?
- How do you juggle projects that seem to have equal priority?
- How do you stay focused on the work that matters and not chase around the next shiny feature or topic?
There are a lot of ways to slice the focus pie and numerous books and podcasts have been made on the subject. I like to think about focus on three levels:
- Macro focus: "Staying the course" at the level of goals, themes, or roles I have
- Mid-level focus: Staying on track while working on projects
- Micro focus: Day-to-day focus
Let's look at each one.
Macro Focus 🌏
Macro focus is, "Am I on the right track in the big picture?" There are different styles for how you might characterize the big picture. Some people define goals, some define OKRs and KPIs, and some look at roles they have or themes for the year. I divide most of my time and work across three "realms":
- Work (Auth0)
- Business (All of my writing, courses, and consulting)
- Personal (property, health, etc)
In each of those realms, I tend to have one "most important thing" that I need to focus on. That "thing" is the goal or theme that takes priority but is usually comprised of many smaller projects. For example, right this minute my "most important things" are:
- Work: transition to management
- Business: ship egghead course on setting up Ghost on AWS
- Personal: get legal and financial stuff in order
These high priorities change over time. I use a two week sprint cycle to ship projects and reevaluate priorities as the sprints go on (I use the same strategies I talked about in the recent article about how to prioritize projects). Having these priorities set helps me maintain focus at this macro level.
As I have ideas or come across tasks that are related to other goals or projects, I add them to notebooks in Notion or add them to my kanban backlog (also in Notion) and tackle them another time. Of course, sometimes urgent things come up and you just have to build some extra capacity into your planning to account for this. I also build in capacity for parts of work or running my business that have to happen as part of the routine, like program maintenance, legal or financial stuff, or ongoing initiatives. This is another thing that I build into my capacity and is why I try to only have one or two creative endeavors in each area going at a time.
It's not a perfect system. For example, I can't avoid using certain tools that are only for work like Jira and Confluence. I also can't store work documents in my preferred applications. I don't worry about duplicating all of that in my own systems. I just use a kanban board in Notion to keep track of projects that I'm in the middle of and add links to external tools or documents. I find that it's actually pretty helpful to keep the separation, though. It makes it a lot easier to shut off from work in the evening and on weekends.
Why just one most important thing? What do you do when multiple projects seem to have equal priority? In my experience, even when that's true, I am much more productive if I can zone in on one thing at a time and cross it off my list. I'll keep tabs on multiple lower priority projects by putting notes in Notion or taking care of urgent tasks, but I won't try to ship more than one thing at a time in each realm.
There's some psychological magic that happens when you put all of your effort in one direction. Have you ever heard of the debt snowball? It's a strategy for paying down debt where are you focus on one debt at a time. Some people like to do this by sorting the debts by smallest payment and some like to sort by interest rate, but the effectiveness remains the same. Even though you're still paying the minimum payments on everything, you're throwing all of your extra money at one debt at a time to cross it off. The satisfaction of moving the needle is a very powerful boost to your brain that keeps you motivated. I've found this to be true in money, programming, creating content, and even home improvement projects.
If you're feeling frazzled or directionless at this macro level, it might be a sign that you've taken on too much. You might be trying to ship too much work without measuring it or you're measuring the wrong thing. This is where tools like documenting everything and reviewing your progress really come in handy. When you regularly review what your most important things are and what progress you're making, it makes it a lot easier to decide what to focus on and what to set aside.
Mid-level Focus 🚢
Mid-level focus is project-level focus. How do I stay focused on the task at hand in the project I'm working on? How do I juggle multiple projects that seem to have equal priority? How do I see a project through to completion?
Since many issues of Developer Microskills have revolved around the Tiny Experiments framework, including an issue on how to finish what you start, I won't spend a ton of time on this section. Most of the problems related to focus inside of projects can be mitigated through things like scoping your projects correctly.
There are a couple of things that I haven't written about yet, though.
First, just like with the macro level of focus, if you find yourself frequently getting distracted by new shiny things in the middle of a project, there are two common reasons. The first is just that you're in the middle of "the grind," that period after the excitement and motivation of a new project has worn off but before the payoff of actually finishing the project. This is the answer more often than you'll want to admit, which is why it's so important to scope your projects correctly and do tiny experiments to limit the amount of time you spend in the grinding phase. Of course, sometimes you just have big, long projects that take as long as they take. Super Mario Bros. 3 took well over two years to develop!
On the other hand, if you find yourself getting distracted a lot, it might be a sign of a disconnect between your deliverable and your measurement of its success. I like to ask myself a few questions to make sure I don't prematurely jump ship:
- Has my most important thing changed?
- Does this project still get me closer to that most important thing?
- Why am I doing this specific project at this specific time?
- What's the payoff of finishing this project?
- Is there anything I can do to finish this faster? (impose a deadline, ask for help, etc.)
Sometimes things change and I need to call an audible, drop the project, and move to something else. Most of the time, I find that my emotions want me to work on something new and shiny but that it's not justified based on my previous planning.
On a very practical level, it's also really important to use the right tool for project management. There are a wide range of options for this and you'll probably use something different for your day job than for personal or side projects, but it's important to keep experimenting. For me, the best tool I have to track and ship projects is OmniFocus. It just seems to work well with my brain. Look for a tool that allows you to group projects together or tag them by context. It's ideal if the tool has a review feature to help you periodically check in on projects to see how they're going.
Micro Focus 🔍
Micro focus is day to day focus. How do I avoid distractions like social media or falling down a research rabbit hole? How do I get tasks done and move the needle each day?
This is the level everybody jumps to when they think of focus or productivity. We always want quick answers like productivity hacks or an app that will solve our problems. While these things can be helpful, it's important to note that having your macro and mid-level focus nailed down will help your micro focus tremendously. That said, here are some strategies that I found really helpful in managing day-to-day productivity:
- Do one thing at a time. Multi-tasking is a myth.
- Use apps like Focus to force you to avoid distractions
- Use the Pomodoro technique to work in chunks.
- Turn off as many notifications on your computer and phone as possible. I turn off badges and push notifications for just about everything.
- Communicate with your team about when you will and will not be available on Slack or over email. Quit both whenever you can.
- Organize links and bookmarks into apps like Notion so you can finally close all of your open tabs. There are also Chrome extensions that can help with this.
- Experiment with tracking time through tools like Toggl.
- Plan for breaks and downtime. Don't just hold on for dear life hoping you can never distract yourself. We all need to blow off steam!
- Color code your IDE windows with tools like Peacock. Associating colors with contexts and mental states helps more than you might guess. This trick works with music, too!
Interestingly, I found that this micro focus is a muscle you can build. I used to rely a lot on apps like Focus that could block social media sites. I found consistently that it took me about 10 to 15 minutes for the urge to check Twitter or my email to go away. Eventually, as I practiced that over and over again, I kind of stopped needing the apps to force me to do this. I've actually gotten so used to getting in the zone to do creative work that I have to remind myself to check my email or to respond to Twitter.
This article began its life as an issue of the Developer Microskills Newsletter. Each week, I send out a practical, actionable way to improve as a developer and developer advocate. Sign up below!