The PagerDuty Quiet Room.. oooh

After working 4 months at Y-Combinator startup, PagerDuty, I feel I’ve matured more as a developer. One aspect that I feel that has been vital to my daily work has been how various factors affect my productivity. I use a lot of tools and techniques to try and keep my focus on tasks, and to measure productivity and felt that others might benefit if I share them.

As a rule of thumb, I’d like to think that productivity is proportional to the amount of sustained, contiguous focus one can achieve. Naturally, context switching is the thing that will be detrimental to productivity. The tools and techniques I use help me optimize for this, but I still have a lot to learn.

So here goes nothing:

Music

Grooveshark

Music is really dependent on the person, and various studies have shown mixed results in terms of focus and music. Heck, you could even ask your friends and you’re probably guaranteed that it’s different between people. For me, music is the signal for my brain to realize that it’s time to start working and get focused. Furthermore, it helps reduce the mentioned ‘context switching’ by removing environmental noise. I feel like there needs to be some sort of background activity going on otherwise it almost gives me the sense that I’m not being monitored and won’t be pushed… a little strange but perhaps this article will help.

In terms of specific music, I tend to listen to a combination of Jazz Beats, Metal, and 80’s, depending on my mood or time of day and depending on the task. If I need to think about the problem and it’s challenging Jazz Beats tend to help me stay focused, and I pull out Metal when I need to chug out lots of code.

Break Down Tasks into Smaller, Manageable Tasks

Asana... the super useful Project Management Tool!

When I see a huge project or task presented to me, my brain almost immediately goes in to a panic. It’s natural - you even feel this in coding interviews and that’s why people ask you hard coding questions. Can you remain calm and figure out where to start or do you give up?

The trick to dealing with huge tasks (or even small tasks) is to break them down in to smaller manageable and consumable tasks. If you don’t enforce these things you can easily get lost and feel like you’re getting nowhere. You definitely feel more motivated and satisfied when even a huge task is breaking down. Heck, even reviewing the things you’ve managed to achieve gives you a little boost.

So what tool do I use for this? I use Asana, largely for work, but also recently for personal tasks. I used to use AndBang for my tasks but I feel like Asana has a larger feature set and development for it will be more reliable. Once you get used to the still relatively-small learning curve, it’s a good tool. Do.com also comes to mind, but I haven’t used it.

Find Other Hobbies - Take Breaks!

Asana... the super useful Project Management Tool!

In my case, I like various sport activites (Martial Arts, Soccer), and play instruments aside from coding and learn new languages (current Japanese). It’s incredibly important to have other hobbies because when you hit a roadblock in one thing you do - say you run in to a bug that has gotten you stuck for days - it can be EXTREMELY frustrating. If you have other hobbies, at least you can feel that you have measurable success in SOMETHING, and that feeling is incredibly important to have to keep you motivated and prevent you from burning out.

In terms of daily examples, there are times that I feel like there’s a lot to do at work and I just can’t keep going. So what do I do? I go to the gym for a workout or go for a run, take a shower, and come back. My mind is clear and I can go back to work. If you’re thinking about something ALL the time, then when you run in to problems you can easily get depressed. So find something to do that you enjoy - my tip, however, is to try and do something that will take you AWAY from the computer (that is - if you are someone who spends most of their time doing computer work).

Get Proper Sleep

Asana... the super useful Project Management Tool!

I feel like this is an often stressed point, but even so, I felt that this was important to include in the post. Sleep is king. Most people are good with approximately 8 hours of sleep give or take a few hours. Personally, I feel that I’m more productive if I sleep earlier and wake up earlier. However, sometimes various constraints prevent this. The solution? Well, if you force yourself to wake up early even if you have slept late your body will definitely adjust, but you may not have the proper amount of sleep to be as productive as you could be. So my suggestion is try and take naps if possible and try to re-adjust.

However, I feel that the wrong solution is to rely on performance-enhancing chemicals such as caffeine. I can definitely see people arguing against this - especially those of us who have it daily. But I want a scalable solution. People who drink caffeine regularly require more and more caffeine and depend on it. It’s hard to stop and really I feel that it should be used in moderation and as a last ditch result for those days when you don’t really have a choice.

Eat Properly

Asana... the super useful Project Management Tool!

The most important meal stressed by everyone is breakfast. So what should you do? Eat a proper breakfast! Also, don’t constantly stuff yourself on days you need to get done. Itis can be a horrible thing to productivity ;). There are a lot of articles about this, so I’d suggest reading them to get an idea of why and what to eat.

Invest Time to Learn Tools that will Help

If learning a tool will help you improve your productivity, it’s important to take some time each week to learn a little bit more. Why? If it can improve your daily productivity it really does add up. If it reduces things like your feedback loop, DO IT. It’s important. It’s like test-driven development - it WILL save you time in the long run.

An example I like to use is my text editor of choice - VIM. I use it every single day and have used it since my 2nd co-op job; I haven’t looked back. There was a point where my learning curve really hit its high and I kept learning and that’s because I forced myself to use it. As a programmer, if you can even edit your text a LITTLE bit faster each day, those things WILL add up. Think about it - everytime you’re not actually thinking of what you’re building, you’re wasting time just TYPING it out. VIM helps you reduce that feedback loop and this results in a little less context-switching, which is that thing that kills your productivity.

Conclusion

So a lot of things I’ve talked about are really related to me being a Software Engineer, but this can apply to school, personal life and really anything that requires you to do something. Also, my main assumption here is that you are doing something you WANT to do. There might be times where you really don’t want to do something, but it has to be done (like school assignments.. heh). At a fundamental level, you should not be doing things you don’t really want to do, but even with that, there will be things that NEED to be done. I find that the Pomodoro Technique really helps for those instances.

What Tips do YOU have? Feel free to share below and follow me on Twitter! @j_ckao