Recently at
SalesCrunch we had an interesting discussion of what MVP (minimum viable product),
done and
working means for our web application. Like all startups, we've run into growing pains with our app's feature set, reliability and performance, some self-inflicted and some external (
Apple disabling Java by fiat and killing lots of functionality on the web overnight), and I wanted to reduce the non-productive frustration and tension we often fall into ("the app is broken!") by pointing out that
unless you define and agree on specifics, every participant will have different expectations. Different expectations are bad, so it's important to
always make it clear what it means for a feature to be done and working--no assumptions.
So my main goal was to make sure every product build process includes an explicit conversation about what it means for that product to be
done (i.e. it has all the features/use cases/user-error protection we want) and
working (the SLA it needs to meet). That discussion must happen between all the people involved in the build--product, design, business, engineering, and maybe even the end-user (or at least the end-user should have a way to provide feedback so the company can adjust their criteria for "done" and "working" in case we got it wrong).
We got to a good place with that conversation, but it was a little abstract. Then I tried to make coffee, and was given a great real-world example of what the discussion and thought process could be.
I went to make espresso. Turned on the machine, put the cup under the
espresso spout, and started the brew.
My cup promptly filled with high-pressure hot water, because I had
forgotten to put the coffee basket in.
You may say "well that's dumb, the brew shouldn't be able to start if
there's no brewing basket, since you're never gonna get coffee". That's
what I thought, briefly.
But that requires an extra feature (a sensor or switch that blocks the
brew switch if the basket is missing), meaning more moving parts, build
and integration time, testing, higher costs, more expensive retail
price, etc.
It's likely somebody at Mr Coffee had a conversation about this and
decided a distracted/stupid/sleepy person forgetting to put the brew
basket in before turning on the machine wasn't likely and/or dangerous
enough to warrant the extra time, complexity and cost for a machine built for the sub-$100 price point.
Until this incident, I had no issues with the machine. Today, I used it,
and didn't get coffee out of it. So one could argue the machine is not
done (missing a sensor), or it's not working (it's allowed to function
without producing coffee).
But does the machine work? Is it done? Until yesterday I had no issues with it. Today the circumstances have changed: I did something dumb I'd never done
before, and had a failed coffee-making experience. So maybe my criteria for done and working have changed as a
result: today I may decide to buy a different machine, looking for an
error prevention feature. But the machine I have hasn't changed.
The main message here is:
- don't assume done and working are defined the same for everyone
- it's ok for done and working to change meaning with new circumstances
- if those change, then the product needs to change in response to it
- frustration, hand-wringing and pain can be avoided by being aware of
1-3 and not judging a product that was built on old done/working
criteria against the new criteria