How I boost my productivity as a developer.
Every single developer want to be more productive. Here are my tips on how I increased mine. I have been working from home for about 4 years and at first it was not that easy to be productive.
Get rid of the annoying stuff
If you have one thing to remember about that blog post, get rid of the annoying stuff the first hour in the morning. Commit the first hour of your day to get rid of everything that is on the way. It can be paying a simple bill, or that mail that you forgot to reply or even that annoying administrative paper you have to fill up. We tend to postpone what we find annoying. Annoying things stack up and are in the back of your head. Getting rid of all the tasks that you have postponed for so long will free your mind. No need to think about it anymore.
Do it for one hour at most, each day.
Say goodbye to guilt and say hello to free brain time. \o/
Know you tools and improve them
You know it, I became a huge defender of Emacs. Some people will tell you that you will spend more time configuring your Emacs rather than using it. It's arguably true. But people tend to miss the point. By doing so, you are adapting the most precious tool you have to your needs, instead of spending time adapting to your tool. Note that this is not bound to Emacs and you can do the same with many many other text editors. The point is, while developing, there always has been some stuff that annoyed me. For example, I wanted a way to re-run my unit tests automatically on my machine each time I modified more than 10% of a file. This is now history. My Emacs does it, and report back to me only when things get dirty. I also like documented functions. I made sure that I have the proper templates in place for function documentations upfront in my code using yasnippet. Every time you run into a small repetitive annoyance in your work flow, address it with a little piece of code (or configuration). In the long run, it will give you time to focus on what it is important: crafting your code.
Use an offline TO-DO list
This one is tricky. I use the bullet journal at the moment to keep track of my TODOs. I could have used a fancy online tool that connects with my phone and so on. But I chose an offline / analog TODO list for 2 reasons:
- I want to be able to forget my TODO list. A moleskin notebook is transportable, yet, you wont have it with you all the time.
- I want to re-write tasks that I postpone because.
Re-writing the tasks that you haven't done yesterday to your today's list gives you the real importance of a task. If you haven't done it, it may not be that important. Can it be postponed even further ? Or you realize that things will burn if you don't do that task this morning. By re-writing, you re-assess the importance of a task.
There is two level of importance only
I tend to see people categorizing things like "not important", "not so important", "important", "very important", "urgent". This is the wrong way. It should be "to be done" and "URGENT". I treat any "URGENT" as the next coming task, disregarding the others. If it's urgent, it's your priority number #1. If it's "to be done" (that's why it's on your list after all) you have to do it as soon as there is no urgent matter. That's it. Don't spend 2 hours categorizing your tasks. You know if something is burning or not. Just take the extinguisher and kill the fire. Right away.
Being productive one day is a simple thing to do, being productive 5 days out of 7 is way more difficult. I tend to apply these four principles only to make sure that my head is always empty when I need to relax or when I need to focus on coding. And for that, you need to get rid of any annoyance.