It is not a secret that a lot of IT projects go over budget, over time and get released with a lot less functionality comparing to the original plan. There are several factors contributing towards this and a lot of them are out of scope of this post. But the one I want to focus on, is that developers usually spend a lot less than 40 hours per week writing software. A lot. Which makes it very hard for the project managers to deal with estimations. Let’s say that it is estimated that a project will take 80 hours of the development work. For the sake of the argument let’s say that this estimate is very accurate. Does it mean that a single developer can finish the project within two weeks or that two developers can finish it within one week? The answer is no, because developers don’t spend 8 hour per day writing code.
So the question is, how much less? Well, of course, it depends on individuals and their environment. I have read a few books on this topic, some suggest that the answer is no more than 6, others, crazy enough, say that they cannot get more than 2-3 hours out of the day to actually build software.
Usually this is not because they are lazy! let’s admit it, we love writing code. This is why we do it in the first place. But aside from doing development, there is a huge amount of tasks that needs to be completed by devs. Meetings (Sprint Planning, Sprint Retrospectives, Daily Standups, Client Demos, Performance Reviews, regular catch-ups with the managers, Coffee breaks with the colleagues, etc, etc, etc) can stuck up to a couple of days per week. Communication is another big factor which prevents developers from doing the actual work. I am not talking about disruptive communication here (although that is also a factor for a lot of us, because humans are social creatures), but rather productive communication. A manager could tap you on a shoulder to ask a question about the product, a QA specialist may want to discuss a bug with you, your peer may want to discuss with you how to approach a particular problem and so much more. Emails, Slack and other IM messages can easily take an hour per day as well.
What’s the remedy?
And the answer is it depends! There are multiple ways to improve productivity of individuals and of the departments. Some needs to be enforced by the managers, others can be employed by the individuals themselves. I am going to cover a few techniques I personally found useful in the later posts. You can have a look at my Speed Reading to learn how to reduce time spent on reading emails and blog articles, but before you jump to a solution you need to find out whether you have a problem and if you do what exactly the problem is. Which leads me to a software I have been using lately to find my bottle necks.
RescueTime is a fantastic tool to find out what you spend your digital day on. It runs in the background and it analysis what applications you use and what websites you visit. RescueTime can then provide you with daily, weekly, monthly and annual reports about your productivity score and the categories you spend most of the time on. Here is a screenshot of my report for February 2016 to give you an example:
As you can see from my report only 29% of my time was spent on Software Development. It doesn’t mean that the rest of the time I don’t do anything. You can see that 15% of my time is spent on Communication & Scheduling. That is my emails, IM messages with the team and working with a product backlog using Jira. Another 11% I have spent on Reference & Learning. At the moment I am working on Android Nanodgree from Udacity and finishing it off is one of my annual goals. Also Stackoverflow, Apple and Google documentation falls under this category.
Using this application is effortless, and it provides a good inside into my days. It is also free. ResuceTime does provide a paid subscription model which I have tried, but personally I didn’t find it useful. Do keep in mind that information is stored in the cloud, so we never know what it is used for. Otherwise, I encourage you to give it a go!
I would be curious to know how much time you spend on software development and whether you have used anything similar to RescueTime and how did you like/hate it.