Few weeks ago we started a new internal initiative called Codete Video Club. Once per two weeks we gather to watch a talk from past tech conferences and hold a discussion later. This week we watched Jeremy Walker’s “Refactoring Your Productivity from BaRuCo 2013. When we were chatting after it, some interesting ideas emerged and I think they are worth sharing.

Productivity in software development teams. Video Club internal initiative

Productivity

Before we start, we need to define what productivity really is. For that let’s use Jeremy’s definition: Productivity is maximising output for given input. For us programmers it usually means that in a given time (say 8 hours) we should deliver as much of valuable result as possible. It does not mean that we are more productive when working 14 hours a day, but we spend time efficiently. So, what can we do to improve it?

In the talk there are many big ideas mentioned, such as finding your own motivation and source of happiness from what you do, balancing your work-private life and even eat healthy. During the discussion we concentrated on tools and lifehacks that can make our time spent in the office better and therefore boost the performance. Here are some of them:

Email is root of all evil

Even though since many years people are predicting that email will soon die, it still remains the main mean of communication. The problem is that it is a giant box of trash in which valuable bits are concealed. We have newsletters, important messages from our customers, password change reminders, One-Time Passwords to VPN, Viagra ads and powerpoint presentations full of cats sent by our beloved aunts. It is hard not to get distracted by flow of messages coming to your inbox all day. Aaron Patterson once wrote:

Every morning I think “damn, I’m gonna get SO much stuff done today”, and then I make the mistake of checking my email.

Managing that is hard, especially that we usually cannot simply turn the email off completely, as we have work-related messages there too. On the other hand, when a number of unread messages grows, we tend to feel overwhelmed and even less willing to clear it out. One useful idea for that comes from Tomek Rożdżyński.

Every time you start to go through your inbox, don’t just read all messages one by one, because most of them will be a distraction at the moment. Instead, just by looking at the subject and maybe the first paragraph, classify the message using, for example, Gmail labels (or stars, like Maciek Malarz does). You can mark an email as “Read later” if it is some interesting newsletter, “Funny” if those are pictures of cats that you might want to look at later, “Reply later” if you need to think about what to write and you can’t afford to do it at that moment etc.

This way your unread messages count stays at healthy zero. When you have time you can go to your labeled messages and start reading them. If Tomek is done with the email, he removes the label from it, this way marking it as processed, so he can keep track of what’s left to be taken care of.

This approach is somewhat similar to “empty inbox” idea from Getting Things Done approach. There are many books written on this topic, so if you want to know more, you probably should read them. I have never gone too deep into it, but I’ve heard good things from some of my friends and also Jeremy is recommending it.

Turn off the Internet

Email is not the only thing that can kill our productivity. There are far more dangerous beasts hiding in the wilderness of the web, such as Facebook, Twitter or Reddit. Nowadays, even if we bury them somewhere deep in unused browser tabs, the will prompts us to use them with a sound or desktop notification.

It might be difficult to turn them off completely just with using your strong will (I salute you if you can always resist the temptation), so there is plenty of tools to help you with that. A very nice idea comes from Tomek again. He wrote a script productivity-boost.sh on that puts entries for all those social productivity killes into /etc/hosts, pointing them to the abyss and this way cutting them off completely on a very low level. productivity-boost.sh off allows them when you need a break or want to check something, but you have to perform this one extra step, making it a totally conscious decision.

You can find the script on Github.

Create environment that works for you

It is important that the surrounding does not reduce your concentration and, therefore, productivity. This is a very individual thing: some people like rooms to which people come in and leave, talk, print etc. For others, like me, silence is preferable and I probably could not work in any open space office.

But silence is not always possible and sometimes not enough. That’s why many programmers sit with headphones on, cutting themselves from surrounding environment with sound. Again, different sounds work for different people. Here are some examples:

  • Jeremy is a coffeeshop person. When in the office, he uses Coffitivity to find the best flow.
  • Many programmers use some electronic or techno playlists, such as Sleep: She’s for the weak.
  • For me it differs, depending on activity type (debugging? thinking about an algorithm? just coding?), but my favourite playlists for concentration are Deep Focus from Spotify or my own Post Rock.
  • Krzysiek Kucharski uses this playlist, full of soundtracks (mostly instrumental)
  • Some people claim they like environmental sounds, such as rain, seaside or train on the loop. Some even say that the put white noise on their headphones. You can compose your own set with Noisli, recommended by Tomek.

Have breaks

No matter what you think and how beyond deadline your project is, working for 6 hours straight is never a good idea, not to mention 10 or 18 hours. So, do yourself a favour and let yourself have breaks. Most people recommend 5 minutes per one hour.

What you do during this time is up to you, as there are no silver bullets working best for everyone. You might want to have a five minutes walk in the office surroundings, read a book, check your Twitter (but remember to use turn_off.sh after it!) or call your mom.

Fortunately, at Codete we have our chill room when resting is made easier with a pool table, darts, foosball and a hammock. It is a good way of spending your breaks, because you perform activity that is crucially different from sitting in front of the computer.

Increase your productivity: chill room break in Codete

What about you?

What are your tricks? How do you relax and what you do during your breaks? Share in the comments!

Ruby Developer

I am mostly a Ruby developer, however I value a lot a polyglot approach and selecting the right tool for the task. That's why you can find me studying other technologies in the evenings and sometimes even sharing them on my Github account.