## DEV Community

Igor Fil

Posted on • Originally published at igorfil.com

# How To Measure Productivity?

How do you know that you are productive? What makes a productive day for you? If you have people reporting to you, how can you tell if they are productive or not? I have heard these questions many times and I have heard just as many answers.

## Can you measure?

Measuring productivity is hard. This is not a precise science. There are no common units, rules, or measurements. But if I wanted to say that today I was more productive than yesterday, how can I turn it from something subjective (“just felt productive”) to something comparable, apples to apples? I would need to measure my productivity somehow. But how can I quantify my productivity? How can I transform it from abstract word ‘productivity’ into something that I can count?

## Measure output

The naive method is just to measure output. If I have a machine producing lollipops, I can just calculate how many lollipops it can produce in a day. The more lollipops - the more productive the machine is. Maybe it is possible to quantify a person’s productivity the same way? If I am a programmer - I produce source code, right? The more lines of code I produced - the more productive I am? Not so fast. It is important to understand what exactly do I measure. If I only want to produce piles of source code - maybe it is better to just use some code generators? They can produce thousand lines of code per second. But code alone is not what I do and get paid for, right? Counting amount of code is a fundamentally flawed logic. Code by itself is not worth anything, it only exists to solve some particular problem. We cannot say that the more lines of code - the better the solution is (I would rather advocate for the opposite).

## Measure progress

It turns out that I cannot use code to measure productivity, maybe I can measure productivity by looking at my progress towards goals? Usually I break down distant goals into smaller milestones and tasks. What if I could count the number of tasks that I completed per day and use that as a measure of productivity? That sounds intuitive and pretty reasonable. But the problem is, not all tasks are made equal. ‘Fix failing unit test’ task is greatly different from ‘design new system architecture’. One day I can complete a dozen tiny tasks, but the next day I could spend the whole day on diving deep into some problem. Does it mean that the day when I completed 12 tasks was more productive than they day when I comleted just one? Does not seem right to me.

## Leave it subjective

I often see people just using a subjective measure of productivity. I can use ‘It feels good’ or ‘I could have done better’ to determine productivity. While it may be pretty accurate if I am self-critical enough, it is hard to keep unchanged over time. Today my perception can be different from yesterday’s. If I just came back from vacation, caught up with emails might feel good on that particular day. But how do I compare it to a day when I fixed a critical bug or designed system architecture? It would be different ‘feel goods’.

## Use other abstract units

There are some techniques that aim to improve personal productivity, such as the Pomodoro Technique. The short idea is that you split your day into fixed-time chunks (called “pomodoros”) when you do nothing but focus on your tasks. In the end of the day, you can count completed “pomodoros”. The more pomodoros I complete - the more productive I am in a given day. This approach seem to be closer to the truth. No meetings or phone calls are allowed during a “pomodoro”. Since a “pomodoro” is entirely dedicated to working towards your goals, so it seems that number of pomodoros can directly translate into productive time. Almost. There is just one important piece of information missing - what is inside the pomodoro? What do you exactly do during a pomodoro? For example, if you spend the entire time reading documentation or writing code - you are 100% productive. But what if you write code for 5 minutes, and then wait 20 minutes for code to compile or to run tests? Is this pomodoro can be considered just as productive? I don’t think so. Time spent waiting for something to happen (compilation to complete, webpage to load, etc) is a time not spent on doing something important, a time not spent directly on getting closer to your goals.

## Measure time

What if it is the measure? If the amount of time I spend on something unproductive is a measure of “unproductivity”, then the rest of the time was spent productively, so it is a measure of productivity. The productivity is a ratio between input (time) and the output (progress towards goals). It is hard to measure the progress towards goal directly, as all tasks are not equal. But the input (time) is fixed. I can see how much of time I waste on things that don’t bring me closer to goals and compare to the time wasted. The more time spent productively and the less time wasted leads to greater productivity.