Developer productivity is made of two components:
1- Working in the project by adding value and solving projects bussiness problems.
2- Working in others mistakes which stops you from adding value to the project. This is called “Waste” and should not be calculated in productivity time.
In short, any work you do that isn’t directly related to adding desired capabilities to the system is waste. Any work that you do to resolve obstructions to getting your work done is waste – even if that work improves the overall quality of the system. The reason is simple: obstructions are mistakes that you haven’t yet learned not to make.
There may always be some waste in the work, so you have to develope the means to aggressively and progressively eliminate it.
How to Measuring Productivity ?
The moment you’re forced to divert to non-value-added work, write down the time. The moment you’re back on track doing value-added work, write down that time. At the end of the day, add up all the non-value-added time and subtract it from your total work time.
Productivity Activities (direct):
– Coding new features
– Desinging a solution
– Testing code
Productivity Activities (in-direct):
– Lunch break
– A standup meeting
– Dealing with frustrating design mistakes
– Problems caused by others
The start of an improvement effort begins with recognition of a problem and a pathology. Being able to make measurements of the problem is essential to recognizing the problem and also to monitor progress. By developing the ability to recognize waste, you’ve also given yourself some basic tools to monitor your progress.