Lots of literature on the Internet about cappuccino. When I say cappuccino I am not talking about that powered frothy stuff that you get out of a packet that puts a bubbly colloid on the top of some boiled water with instant freeze-dried coffee in. Ask any good coder about coffee and you will have an interesting discussion. Ok it might not be that straightforward but anyhow, most people have an opinion on Starbucks, Costas, Nero, Coffee Republic, their own machine (Ben) my own machine (Me).
So which is best? Well actually the answer is “it depends”. It depends on who is serving, the state of the machine and whether they are in a hurry.
- Who is serving – I have had better coffees off some people (consistently) than others, hence technique plays an important role
- Are they in a hurry – Even off my favourite servers, there is some inconsistency, if they are rushed or not paying attention my coffee quality will suffer, that’s not acceptable to me
- Is the machine in good order, currently my nice Gaggia Classic has been under-performing, even Ben’s machine is producing better coffee, – time to roll on the tartaric acid descaler.
Q. Erm excuse me whats this got to do about software delivery?
Well actually not a lot, I just like coffee! ……………. Except!
Comparing it with developing software for one moment.
- Some developers use better techniques than others
- Even the best developers will produce bad quality code if they are under pressure or overworked
- Sometimes you need to maintain and revisit the way you do things to keep your “axe sharpened”
Well how do you get from the problems to the solutions or something better?
Regular feedback will help teams improve. The feedback has to involve customer contribution. i.e. the person drinking the coffee/ using the code. With valuable feedback you get great coffee/code because
- The “best” can train others
- You can shield your workers from the pressures by using a better system – check out http://leansoftwareengineering.com/2008/05/21/coffee-cup-kanban/ for a Kanban reference, read the comments too some valid points there.
- When you compare with others in the field sometimes its a good benchmark, this also provides feedback for action (from de-scaling the machine to refactoring code or processes)
Ps. If I can, I always talk to the baristas, then I can gently introduce feedback as how I like my coffee, they want me back so they oblige. eg. I like my cappuccino really frothy, and I don’t like a lid on the top it ruins the “head” for me.
pps. What makes the perfect Cappuccino? You are only going to find out from feedback from satisfied customers. Like with Agile, you don’t follow a set of rules, you follow a framework which involves testing (and tasting) the end result and adapting.