Productivity? You’re doing it all wrong!

Pedro Costa
6 min readFeb 29, 2016

--

How can I stay productive? How can I optimize my work environment to be more productive? The answers to these questions are not trivial, and most of the time they vary from job to job and from person to person, as what may work for me, may definitely not work for you. My vision is that if I’m going to spend a huge part of my day working, I better find a way to enjoy it and to ultimately achieve some kind of “accomplishment” feeling. I know I can only achieve this by being and staying productive. This is why I’ve decided to share some of the habits that have helped me to do so, working as a Software Engineer over the past years.

Be demanding on yourself

You should always be extremely demanding on everything you do. No matter if it’s a small task, like writing a simple automation script, or a complex algorithm that will screw up half of your application if it goes the wrong way. Being demanding forces you to think and re-thing all the small details and to anticipate problems that otherwise will take a long time to debug and get fixed.

Even though it may not seem appropriate to spend a lot of time reviewing your code and picturing all the use-cases in your mind when you have tight deadlines, this approach versus the “let’s run it and see where it cracks” will save you a lot of time during the debugging process. Being meticulous has other advantages too. If you work on a large company it is very likely that your code will be read and rewritten by a lot of different people in the near future. If you elevate your standards and the quality of your work, you’ll never be afraid to answer for it, and most likely won’t even have to worry as it’ll be rock solid.

Push yourself! Raise the bar! Isn’t it great when you feel very proud of something that you have built on your own? That’s what I am talking about, to never compromise quality on something that has your name on it.

If you’ll be spending most of your day working on some specific task, you should better take some pleasure out of it. Otherwise you’ll became frustrated, unmotivated, and it will be painful just to start getting your hands around the problem. Make sure you feel the opposite way, which is to stay positive and addicted to that feeling of “accomplishment” that urges when you make something that you’re proud of.

No Distractions

I have a number one rule — No Facebook, no Twitter, no WhatsApp — or any other social media bugging me while I’m coding.

Distractions, notifications and interruptions are definitely the worst that can happen to your productivity. Most of them you cannot control, but make sure to avoid the ones that you do. It is very difficult to be isolated from all of that when you work in a busy work environment with a lot of people chatting and asking for your help all the time, specially when you’re part of a team that works on large and distributed applications.

As most of software engineers know, it’s mandatory to be deeply focused while you’re “in the zone”, as we often require large amounts of time to break the problems into small chunks, abstracting and translating them into something that can be expressed into code. We also have to maintain large and complex mental structures of the different pieces and components that make up the software, that can easily be broken during small distractions or if you’re constantly context-switching, whether it is a co-worker asking for help or a notification from a social network.

Here, my main advice is to really focus during the zen moments of your day when people can’t bother you and try to get rid of unnecessary distractions, regardless of what others think, or how funny that youtube link they sent you may be. Leave them for when you’re taking a break. Keep that attitude in mind and you’ll be successful.

Respect your Biologic Clocks

Everyone has different metabolisms and biological clocks. I happen to be a morning person. Mornings are the periods when I feel more energetic, more aware, more creative and receptive to new ideas and able to retain knowledge. I know this, and of course I try to take advantage of it by work on the most important and complex tasks in the morning. It doesn’t mean that I can do everything in the morning, but I always try leave the small things, like responding to e-mails or bureaucratic tasks for latter. So, the idea here is to clearly identify the daily periods where you are at your best and use them in your favor to do the things that are on the top of your priority list.

There are times when you’ve just finished a task and still have some minutes before lunch or a meeting, and of course, the involuntary reaction is to start procrastinating during that period, as “this is not enough time to get anything properly done”. Well, this is not true. I usually keep a Trello board named “small stuff” containing cards that can be done with little effort, like to respond to some e-mail, to update a wiki, a small code refactoring or to update some documentation.

Of course there are exceptions. Tell me about a developer who has never had some late nights or coding weekends! Well, here both caffeine and adrenaline help but it’s impossible to consistently produce good code if you keep working on that basis.

Dedication

It is essential that you take your job seriously. To be 100% focused and dedicated is not easy if you don’t like your job at all. Of course, not all people can have the luxury of loving what they do but you’d be surprised with what you can achieve and how creative you can be if you’re dedicated and perform your daily tasks in a rigorous way, even if you don’t like them that much. By dedicated, I also mean to have a responsible and professional attitude towards your duties and your co-workers.

Be nice to others, put on a smile and have a joke ready, be willing to help, be a team player… Do all this and people will want to share ideas with you and also feel motivated to help you when you most need it. Definitely, don’t be a jerk.

Get Enough Sleep

Everything needs to recharge. Like your laptop needs some electron juice after a long coding run, people need to sleep well to function. Well, I need my 8 hours of sleep, otherwise I’ll be in zombie mode the next day.

As I’ve said before, for being a morning person I can ruin all my mojo by wasting a good night of sleep. My humor, my ability to retain and link knowledge, my analysis skills, and definitely my concentration and ability to stay focused will be jeopardized. I take this very seriously because I’m sure that I’ll be running on fumes.

Sleep is the first thing that is affected by unhealthy lifestyles or personal problems, so if you suffer from insomnia or other sleep disorders make sure you face it as a real problem, as it will make you miserable and not productive at all. It’s impossible to shield 100% your work performance from your personal problems. There will always be a day when you’ll feel less enthusiastic or energetic. Keeping that in mind, I find it important to draw strict lines to help me achieve a good balance and separation between personal life and work environment.

As a final note, I hope you have enjoyed reading this article and used it to reflect a little on the ideas that best suit your goals.

Here’s a very passionate quote:

All code is bad

Every programmer occasionally, when nobody’s home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It’s a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.

This file is Good Code. It has sensible and consistent names for functions and variables. It’s concise. It doesn’t do anything obviously stupid. It has never had to live in the wild, or answer to a sales team. It does exactly one, mundane, specific thing, and it does it well. It was written by a single person, and never touched by another. It reads like poetry written by someone over thirty.

— Coding Sucks: Why a Job in Programming Is Absolute Hell by Peter Welch

--

--

Pedro Costa

Software Engineer, building microservices and large web distributed apps, clean code enthusiast :)