Coffee is an important ingredient in creating successful software development organizations. In this blog post, we explain how to to apply lean processes and queuing theory to brew enough coffee for 100 people with one coffee maker.
Many early-stage companies (defined as pre-espresso machine) have a coffee maker and an expectation that employees will self-organize to ensure the availability of fresh coffee for all. My previous startups have followed the same pattern.
Despite my enthusiasm about self-organizing teams, the coffee process ("please brew more coffee when it runs out") was always failing us.
There are two psychological effects at play here:
We have a tendency to drink from the coffee pot that's fuller. I expect the coffee in that pot to be fresher, and as a hard-working employee I certainly deserve the freshest coffee.
When there's not enough coffee for me, I'm not really incentivized to brew more. Or maybe there was enough for me, but I'm already late from a meeting.
The common outcome is that both coffee pots will run out roughly at the same time, the system stalls, and the employees will take it to the Slack channels to find out who to blame.
Coffee process to the rescue
It doesn't have to be this way. It's possible to design a better system using learnings from lean manufacturing processes and queueing theory.
We introduced a new process: you are only allowed to drink coffee from the rightmost jug. If it runs out, you need to brew more.
By taking out the choice and by aligning incentives, we addressed the natural bias and helped scale the system.
In lean terms, this creates a pull system.
How many jugs do I need?
We know from queuing theory that if a bank teller serves a customer in 10 minutes on average and customers arrive at a rate of 5.8 per hour, the expected wait with one bank teller is 5 hours and with two tellers 3 minutes.
The jugs act as a buffer, which is a form of a queue that helps us even out consumption spikes.
We ran a quick Python simulation to analyze how the waiting time evolves with different rates of coffee consumption and different number of jugs.
The conclusion is that three jugs will take you to the moon and two will suffice most of the time.
Conclusion
Our previous coffee maker was already causing issues at a 10-person office. The new setup scaled to 100+ people with half of the brewing capacity.
The beauty of a well-designed process is that with a couple of simple tools, the system performs better — without anyone having to work harder.
Let us know on Twitter if you end up implementing this at your startup!