How can I be more productive today?
Every now and then my wife comes home, looking not so satisfied with her workday. She complains that she spent first half of the day in meetings and the second half fixing a problem which was not in her area of expertise. She adds that she could not write any code for the project she is currently working on. She concludes the daily report with “Today, I did not feel productive at all”, just to be faced by my killer(!) question “What does productivity mean for you?”.
As a developer, writing code is what I do best. I feel more productive when I spend more focused time on what I do best. It’s no surprise, I do not feel so productive when I spend my time synchronising our deliverables, or when I got interrupted by a QA friend about a bug in a feature that will be shipped next Monday. However, sometimes there is a significant gap between how it feels for me and what the reality is.
It is essential to understand that, as a software developer the only time I create value is, when a user interacts with the code I wrote and gets a positive impact out of it. When I'm writing code I do not create value. I'm only making an investment that might turn into value in future, and often not.
We can not measure productivity by measuring how efficient we are at making investments. We can only measure productivity by the results of our investments. In software development the only way to see results is to ship our work to customers. Even though this sounds very obvious, it sometimes becomes quite obscure in our day to day work. Especially when we focus on our individual efficiency, in other terms, “How much time I could spend on coding, without being interrupted”.
Focusing on my individual efficiency and optimising it, might not improve productivity. In fact, in many cases local optimisations impact productivity in a negative way. When I’m trying to optimise the system for myself, I might be suboptimizing the whole system of delivery. Just because I want more focused time to write code, I might be preventing a valuable feature to reach its user. Whatever my job title is, my main responsibility is making sure great features reach to users, and create impacts on their lives.
Try to think like this:
“How can we be more productive?”: By creating more value with less investment.
“How can we create more value with less investment?”: By delivering working software to real users in less time.
“How can I contribute to this?”: By doing whatever necessary so that valuable features reach to real users as quickly as possible.
Today, before starting a new task at the TO-DO column, first look to things already IN-PROGRESS or WAITING. And ask yourself: “What can I do to have these things reach to users?”. This will give you the answer of “How can I be more productive today?”