Viable is important

“Minimum Viable Product”, or MVP, is a phrase that has become common place. It gained fame through the Lean Startup book and the work of Eric Ries.

It is very easy to focus on the minimum part of the definition. What is the least we can do? It is very easy to forget the viable part - this potentially raises the bar to a higher level. What makes a product viable? What does it need to do? What features must it have to enable the user/consumer to achieve what they want to do?

Over the past week the world, well the UK at least, has been gripped by the hunt for the Titan submersible that went missing near the wreck of the Titanic. Unfortunately we learnt yesterday that there was a “catastrophic implosion” and all those aboard have died.

There seems to be a lot of evidence now that the operators of the submersible were focused on innovation and navigating a different path to the more traditional companies. They were keen to innovate and experiment. Unfortunately this approach looks like it cost the lives of five people.

There is a time and a place for experimentation; there is a time and a place for processes and certification. I would suggest that in this case they focussed on the “minimum” whereas a key “viable” feature was the ability to consistently operate safely at a certain depth and to have processes and features in place to either prevent or recover from unforeseen circumstances. The harsher the environment and the more life critical the situation then the more important this is.

When we are developing an application for a mobile, a web application or maybe some types of products the impact of getting the viable part wrong is that the product does not sell or the consumer doesn’t engage with the product. Here getting the viable wrong had tragic consequences.

Random Posts

The value of throwing code away

We had a discussion at work about “throw away” code. One of our developers was very against developing any code that would be thrown away afterwards. He referred to this as a waste. In my view sometimes the biggest gain can be in developing code that is meant to be thrown away. It can be used to try things and, more importantly, learn things that can shape the code that is kept. This article sums it up much more eloquently than I can.


Read More

Future proofing

It is always tempting when buying or designing things to plan for the future; to add features that make your design or purchase “future proof”.


Read More

Using AI to find code problems

Ubissoft have introduced a tool that “uses AI” to identify potential coding issues when the developer commits code. They claim it can detect a significant number of errors and even suggest solutions in some cases. There will always be some errors that it will not be able to identify, for example where the implementation doesn’t match the requirements, however this approach could have a significant impact on the amount of time spent debugging. And it should improve over time as it learns more potential errors.


Read More