Inefficiency











You make morning coffee. Want to make 2 cups. You:









I posted this question on Twitter and got about 50 answers. Most of the comments were either sarcastic or thoughtful tips for making coffee, so it seems I could not get my point across.







Since such a hint was not understood, I will try to write directly:









The coffee story is just one example of the phenomenon.







The original uses the terms “ Latency ” and “ Throughput ”. I decided that the most appropriate translations in the context would be “Response Time” and “Performance”, respectively - approx. perev.







Response Time vs. Performance



Response time is the “interval between cause and effect”. Let's say I decided to go to the city center. How long will it take before I get there? Response is measured by time.







Performance is the “speed of achieving the desired result." People want to get to the center. How many people are there every hour? Productivity is measured in quantity over time.







Sometimes response time and performance conflict. Buses can carry more people per hour than cars (i.e. more productive), but I personally will need more time to get to the center because I have to go to the bus stop and wait for the bus (i.e. the response time is higher).







The relationship between response time and performance is not always straightforward. If due to the large number of people who have moved to cars, traffic is deteriorating, then response time and productivity are affected. If enough people start using the bus, then after the traffic both the response time and the performance improve.







Coffee



Let's go back to the coffee example. Here is a sequence chart for preparing cups:

















And here is the "simultaneous" preparation of cups:

















HEAT - water heating

POUR - pouring water into the filter

DRIP - water leakage through the filter

approx. perev.


It can be seen that the first option has a shorter response time, but the second is more productive. In what cases can this be important?









Analogy



When developing software, we are faced with the equivalent of “one cup at a time or two in parallel” every day:









The correct answer to each of the questions is “depends on the situation”. Three important aspects here are:









A high score in each (or several) of the indicators above should suggest that you should prefer a short response time for high performance.







An attentive reader may notice that the word “carefully” is used in all the examples above. But even the most careful planning has its limits. From a certain moment, planning ceases to work at all, and only work with subsequent debriefing leads to a result. I think that the illusion of the ability to think absolutely about everything in advance makes us biased in favor of performance.







Intuition



Choosing a low response time even at the cost of a (possible) decrease in productivity is one of the lessons that my generation learned from their mistakes. I wrote about another such lesson, discussing a basket of options . It seems that both of these lessons are forgotten today.







Contrary to urgency, learning from mistakes and unpredictability of circumstances is an exception, not a rule. I hope you understand this faster than I did in my time.







Inefficiency



The title of this article is a pun. Productivity, which apparently seems effective, is often ineffective. The quote from Peter Drucker comes to mind : "There is nothing worthless than effectively doing what should not be done at all."







But the title can be read differently. Focusing on response time, we get feedback earlier. Learning and adapting to change leads to less labor and, therefore, to greater efficiency. Each individual part of the work is inefficient (compared with a certain theoretical maximum), but the work as a whole is effective.







In my world, response time is dominant. Often. But not always.








All Articles