A few years ago, I was working for a small startup in the financial industry. We were working against time to get an application finished before the dwindling money supply was depleted. In the end, we were not able to meet our mark. However, during my time there, I became known as "the Machine" because of my intent focus on our work.
Staying focused on development work can be more difficult than you might think. The very nature of our work demands that we are constantly online, almost always available for chat or quick voice conversations and sometimes even working directly in Facebook and other social networks, which have a nasty tendency to pull us in every direction but productivity.
Software development is tricky because most of the work is done in your brain. You have to constantly keep track of where you are in your code. You also have to keep track of how the code you are working on relates to the entirety of the application. A distraction that lasts even just thirty seconds can get you off track to a point where it takes fifteen minutes or more to re-familiarize yourself with the code.
I don't feel like I deserve a nickname like "the Machine" because I do lose my focus more often than I'd like to admit. It is just as easy for a well oiled machine to lose focus as anyone else. Lately, I've been working on developing a list of guidelines that can keep me from going down the dark road of distraction. Here are a few things that keep me on track.
Make a list of what you need to get done
You could just write a list on a piece of paper each morning. I use Wunderlist. The key here is to leave your list in a place where you can easily see it throughout the day. Order your list starting with the things that you need to get done most urgently all the way down to the least important. When you get derailed, you can easily flip back to your list and see where you should be at. When something is finished, check it off the list. Start each day making your fresh list for the day.
Don't waste time on sites and social networks that don't help you reach your goals for the day
It is very easy to justify flipping over to Facebook to see if anyone liked your latest cat photo. The danger is that the newsfeed can suck you in. For me, it is helpful to entirely restrict my access to the sites that I know will tempt me throughout the day. I use Self Control for the Mac, to entirely block my access to sites like Facebook, Twitter, and YouTube for large chunks of time while I'm trying to focus. Checking social networks can become a mindless activity, so it is sometimes necessary to not allow yourself access to them.
Schedule social media breaks
If you do need to keep up with things like Twitter or Email, it is better to schedule times to check them as well as times to keep them entirely closed. Tim Ferriss, the author of the Four Hour Workweek, suggests checking your email and even snail mail as infrequently as once a month. That isn't practical for most of us who are expected to keep up with clients and coworkers, but it can be helpful to block off once or twice a day for checking social networks and email. That way, you don't get into the habit of mindlessly checking them throughout the day. It also helps to schedule your tweets and Facebook posts. That serves a dual purpose of allowing you to post at prime-time hours and also allows you use a certain section of the day or week to make them and still give the illusion that you're an active social media user.
Whether you work from home and need to tune out Daniel Tiger's Neighborhood on the TV in the next room, or you work in a traditional office setting and don't want to be distracted every time the guy in the next-door cubicle has a rant about Apple computers, keeping some music in your ears to drown out the chatter can be invaluable. It can also be helpful to take the occasional real-life break after a couple hours of focused working. I used to take a walk every day right before lunch. I really need to get back into that habit.
Prioritize things that can be done quickly
If you have several things on your todo list that can be done in 15 minutes or less, it can sometimes be helpful to do them first. That way, you can build up momentum as you enter into the bigger tasks. Personally, if I feel like I'm really winning in the small things, once I get to the bigger things that I've been dreading, they don't feel as intimidating anymore because I already feel like a winner.
I always drink a cup of coffee in the morning and a cup of tea in the afternoon. I find that they help me to focus during the times of day when my mind starts to feel tired and fatigued.
Always look forward
If you messed up yesterday and watched eight hours of Star Wars fan videos, don't worry about it. You can't control the mistakes you made in the past, but you can be more productive in the future. Start each day fresh and do the best you can.
As an addendum, I was distracted seven separate times while I was writing this. All seven times were real-life distractions that had absolutely nothing to do with the internet. These sorts of distractions can't always be avoided and luckily, it is much easier to regain context when writing a blog entry than when writing a complex piece of code. The best way to avoid these distractions is to work in a separate space like a private office or a coffee shop where you can be free to completely get lost in your work.
The thing that motivates me the most when my focus is waining is to think about how I will feel at the end of the day. If I let myself get easily distracted, I will accomplish less, feel less fulfilled and inevitably be exhausted at the end of the day. If I focus to the best of my ability, I will accomplish more, I will feel more fulfilled and though I might be tired at the end of the day, it will a good kind of exhaustion. I would rather feel that way any day.
What do you do to stay focused and get the most out of your time? Do you use any productivity software that has become an invaluable part of your work-stream?