Solving a task or reading an article from a magazine takes usually no more than a few minutes. Meanwhile, the chances to be disturbed are very high - either to check your phone, your email or your Facebook notifications. Additionally, if you are sitting in your office, your colleagues" discussions about cars, football or fashion, might capture your attention. Even if you are trying to keep focus, you cannot refuse your colleague who kindly asks you for help. And this is how your focus is definitely lost. With all of these happening, your boss is still wondering why your task isn"t finished yet.
Lately, finishing a task is taking more and more time because of the surrounding distractions. It is said that while you are at the office you might get interrupted every 3 minutes, either by humans or by your high-tech devices. Once interrupted, it might take you up to 20 minutes to get back to your focus state. That"s the moment when you realize you were distracted and you try to compensate by working faster, but this comes with a price: more stress, frustration, working under pressure and a lot more effort.
Distractions in the office have been there ever since. Contrary, digital evolution had a huge impact on our productivity but nowadays, it seems that technology has only one main goal: to ruin our focus. Because of the smart devices, the large number of web application, eCommerce and the latest technologies, it is very hard to keep focus only on our tasks. Often, we start our day with a to-do list and in the evening we find out that we still have some unresolved issues. So, whatever those tasks on your to-do list are about, it is good to keep them as short as possible in order to have more things accomplished at the end of the day.
But, what does productivity actually mean? We could measure it exactly by the number of units finished within a certain amount of time, for example: the lines of code written per hour. However, this computation does not reflect the real productivity which should be measured against the results, something like: our customers have received their product, our business is growing, we have learnt something new today etc. Moreover, productivity means also the way in which we are organizing our time and ourselves so that we accomplish more in less time. In other words, we have to maximize the work done, while minimizing the effort spent.
To be truly productive, it is required a lot of discipline. But what if your brain is the one who isn"t disciplined? Most of the times, we use our brain to extract information we already know, because we had learned it, read it or heard it somewhere. The hardest part comes in when we have to solve a problem and we are forced to think: this particular case seems easy at the beginning, but it is very hard for the brain. Then, our brain pushes us to take a small break and look into some other way, hoping that, when we return, the problem would have been solved. Obviously, this won"t happen, because nobody is going to solve our problems. And we find ourselves checking emails, mobile phones for notifications, reading some blogs and articles and this is how we get lost into the pool of the latest technologies to avoid the only one thing which we were created for: to think.
So we ended up in the so called multi-tasking. It is the number 1 enemy of the productivity and there are plenty of reasons why. One of them is pretty clear: our brain has a limited capacity for attention and that one should be focused on only one task at a moment. You cannot have maximum concentration on a task if you are trying to answer your emails or to your boss at the same time.
We can avoid multi-tasking by using the flow psychology. A state of flow is that particular moment - which we all had at least once - when you feel absorbed by the problem, by your task and you feel that no one and nobody can disturb you. We should get the most out of those moments. The least pleasant part is that those flow states cannot be planned ahead and a night with less sleep can diminish the chances to achieve your flow. The state of flow is also influenced by the perceived challenges of the task on one hand and the perceived skills of each individual on the other hand. But let"s not get deep into psychology and summarize that we have to make use of those moments, moments in which we feel creative and more productive.
This article presents activities and situations of day to day life, pointing out problems but also improvements that can be made to increase productivity. Giving that every human is different and has his/her own way of working, the ideas below might not be useful for everybody.
As I said before, productivity refers also to the way in which we organize our day, work and thoughts. There are a lot of articles writing about what are the most useful habits that successful people follow to increase their productivity day by day. Reading those articles you end up thinking that for some people the day has more than 24 hours and you start wondering how come others can achieve so many things while you are still struggling through the little time you have per day. Well, there are some tricks that they used and claim that those tips had improved their way of living. Most of them wake up early and use the morning hours to deal with the important problems, before the others" activities interfere with their priorities. Moreover, it is said that usually, in the morning, people tend to be more optimistic and more open to new challenges. Also, morning hours can be used for doing sports or planning the rest of the day. So, early mornings might be the key to a productive day.
A useful tip that a lot of people seem to use is the todo list. This list does not have to follow a certain pattern; it might contain tasks that need immediate solving, things that you should remember later (for example: answer to an email by a certain date) or things that you would like to do, but which are not urgent. Even if some people do not consider it important, the todo list has a major role in our life: we have a lot of thoughts, pressures, ideas that our brain is forced to remember. The fact that there is a list where these things are written down is a win-win for us and also for our brain.
In the particular case of programmers, the todo list usually contains tasks or goals that we want to achieve as soon as possible. Defining a goal before starting the actual work will take us to better results in a more efficient way. Sometimes, we head ourselves into the problem solving without knowing what we really want to achieve and on our way we notice that we have slightly deviated from our first idea or we figure out that we want something different. This is why it is very important to clearly define your goals and specifically break down your daily tasks.
On the other hand, some journalists suggest that a list of NotTodos might be even more useful in time management and productivity increase, than the todo list. Summarizing our daily activities, we can determine which ones are worth it or not, based on time and effort spent and come up with our own NotTodo list. Finally, everyone is free to decide if they want to use a list or not and if yes, which one is the most suitable for them.
Another term used a lot in productivity related articles is timebox. Timebox is a time management technique that is more and more used not only in programmers" way of working, but also in other areas. This technique is very useful because it allows you to define slots of time for your activities in such way that you can work on different tasks on the same day. In this way you are protected from multi-tasking because you know you have reserved some time for other activities. A specific case to emphasize timeboxing is starting a new task: it is very easy to start working knowing that you have 2 hours allocated for that task, than thinking that you have an infinite time and you"ll never know actually when the task is going to finish. If you choose the second option, after two days of working on the same task, you would definitely want to switch to something else. Also, by setting a slot of time you can manage your work better: you won"t force yourself to "write a whole novel" in those 2 hours, you"ll only write a draft for your first chapter.
One example of timebox is the Pomodoro technique. It was invented by the Italian Francesco Cirillo in the `80s because he felt frustrated about not being capable to maintain his focus for a longer period of time. The technique is very simple: you pick a task and using a kitchen timer you perform that task for 25 minutes. Then, a break for 5 minutes comes in. This is called a "pomodoro". You may perform multiple pomodoros consecutively 2.
Not only, but especially in IT, we hear a lot about best practices. The name is pretty much obvious, but each domain or programming language has its own rules or practices. As Will Durant says in The Story of Philosophy (even if some journalists pretend this is Aristotle"s saying):"We are what we repeatedly do. Excellence, then, is not an act but a habit". So, the pool of best practices and lessons learned will grow by time. Therefore, establishing new habits and good practices will lead us to a better quality of our work.
A well-known way of establishing new habits is the Seinfeld Calendar. This method was created by comedian Jerry Seinfeld at the beginning of his career. In that time, he had to write a lot in order to enrich his jokes vocabulary. His technique is very simple: you pick a task/an activity and you mark in a calendar the day in which that task was performed. The key is to fulfill your task every day and as the days go by you will form a chain in the calendar. Do not break the chain! By going on with your activity, you"ll get used to it and it will become a habit. This technique works in every domain or area because daily, repetitive actions lead to establishment of new habits. Also, this gamification raises competitiveness, achievement and fulfillment into our daily life.
A newly concept, based on our way of making decisions was introduces by New York Times journalists as the "decision fatigue" 3. The main idea is that our decisions tend to get worse as day goes by. With each and every single decision made during the day, our brain gets exhausted and at the end of the day it has hard to make good decisions. So, in the evenings, when our energy level is low, it is likely to act by chance or a better way would be to avoid making any decision. Usually, we don"t realize this mental fatigue and we notice it only after a bad decision has been made. This is why we should schedule our decisions for the morning hours.
A great example that a lot of successful people embrace, probably having some other reasons too not only easing their decisions, is adopting a wardrobe as simple as possible.
For example, Mark Zuckerberg has a lot of grey t-shirts, actually same t-shirt, multiple items; Barack Obama has only 2 types of costumes: grey and blue and he alternates them; also, Steve Jobs wore same clothes every day. So, this is how they eliminate even the minimal effort of deciding what to wear each morning, decision which might take up to several minutes, for some of us. Also, decisions like what to eat today or should I go to the gym or to the swimming pool might eat up our energy without even noticing.
Knowing that "Life isn"t fair", the Pareto law or the 80/20 law states that a lot of things from our lives are not equally distributed. The law"s statement says that 20% of the input creates 80% of the results. If we switch the parts, it would be like the 80% of the inputs create 20% of the results. The second one sounds a lot more productive, because it"s about more input, more effort. That is why some people tend to follow this rule and they invest time and effort in something that is not even necessary 4.
Even if we prefer our life to look like the red line from the plot, most of things follow an unequal distribution. Fortunately, this one has a great advantage: there are moments when you want to develop a new product for your client, but the client doesn"t have the view of the entire product, he has just an idea about what the product would look like. So, as developers, it would be ideally to invest as little effort as possible (20%) and come up with a prototype or two for the customer, instead of spending a lot of effort in only one direction and following that single idea. Finally, our prototype might end up into the final product and what"s next is customization, additional features and fine tuning. If we had invested a lot of effort only in one direction, which might have been proved to be the wrong way, we would have lost 80% of the effort and obtaining only 20% of results. So, the same amount of input (effort, time, man hours) does not contribute equally to the results.
Therefore, while assigning time, resources and effort, the optimal solution is the one that takes 20% inputs and gives 80% of the results.
Many of the things mentioned above may or may be not applied in your daily life, based on each of your principles. The next ideas instead, are more like axioms; they are valid and they don"t need any proof.
An obvious way of doing more in less time is by using shortcuts or short keys. It doesn"t matter that they are used for the operating system, for your preferable editor, browse or IDE, short keys lead to a better way of working. There are lots of combinations for short keys and a good way of memorizing as many as possible is by learning them gradually: 1 or 2 shortcuts per day. Also, a cheat sheet on your desktop might be useful for revising them.
Talking about shortcuts, we can add shell aliases here also. Aliases can be created for long commands, for replacing a command with a personalized version of it, for replacing a long path with a shorter name etc. For example, if you want to run your remove command (rm) in a way in which it requests confirmation before attempting to remove the file, you will create an alias for rm command to be: rm -i. Another useful example is when you want to replace a long and complicated command of the git versioning system.
Another idea, which personally I believe is very productive, is pair programming. Besides the fact that you are not working alone, pair programming boosts productivity in the long term and also the code quality. Even if on short term, the individual time and the productivity might be affected. There are other gains brought up by pair programming: codebase knowledge, design and architectural knowledge, feature and problem domain knowledge, language knowledge, development platform knowledge, framework and tool knowledge. In other words, the person you are working with might have different ideas and a lot more knowledge and by learning and sharing the skillfulness spreads within the team.
Finally, we can pass (and we should pass) some of our work to the machines, meaning automation. Starting from small commands that are frequently used, up to big application that can generate code on our behalf (21st issue of Today Software Magazine: "How to make the machine write the boring code", Denes Botond).
There are some patterns that ruin our productivity. Among them, multi-tasking and interruptions caused by human or digital distraction are the well-known. These and also the other unhealthy habits can be diminished by self-discipline. And if Facebook or emails are more powerful than your will, there are tools which will temporary block your access to certain web sites. Less strict tools just monitor your time spent surfing on web sites or using applications. This type of tools might be useful for your personal tracking; you can monitor, identify and correct the habits that ruin your focus and productivity.
[1] http://www.cartoonaday.com/the-role-of-smartphones-in-business-productivity/
[2] http://blog.clarity.fm/25-minutes-is-all-you-need-how-the-pomodoro-technique-increases-productivity/
[3] http://www.nytimes.com/2011/08/21/magazine/do-you-suffer-from-decision-fatigue.html?_r=3
[4] http://betterexplained.com/articles/understanding-the-pareto-principle-the-8020-rule/
Calvin Correli, Productivity for Programmers, http://pluralsight.com/