MVP, which stands for Minimum Viable Product, is a concept that became widespread as many companies began to adopt Lean Startup principles and practices. Much like other popular movements (Agile for example) Lean Startup introduced ideas, such as the Minimum Viable Product, that can be very powerful and helpful for organizations, but that can also cause a great deal of friction if not understood and used correctly. In some of the companies I have worked with, the term MVP had actually begun to develop a negative connotation and caused the companies to avoid using it when it could have helped the most. In this article I want to revisit the idea of an MVP and talk about what it is and why it is an important practice.
"In preparing for battle I have always found that plans are useless, but planning is indispensable" - Dwight D. Eisenhower
There is always a fear when embracing Agile that things will fall into chaos and that planning and strategy go out the window. I have been on projects that have run into these types of issues and a big part of that stemmed from the team losing sight of the big picture goals and direction for the project. One thing that has been very helpful in preventing chaos and keeping things on track has been: release planning.
A team member once came to me and said that they're team was currently using Kanban, but that they wanted to switch to Scrum. When I asked why, their response was: "we need the two week time-box, because in Kanban everything goes into the in-progress column and just stays there". There are clearly many issues that would need to be addressed in this statement, but one that is very important that seems to be ignored on a regular basis is: WIP Limits.
One of the most well-known aspects of many Agile frameworks is the iterative nature of the delivery of working software. The Agile manifesto states: "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale." The key phrase here that many teams seem to struggle with is "with a preference to the shorter timescale". The Scrum guide states that sprints can be from 2-4 weeks. This is a little bit better, but many teams still gravitate towards the longer end of that range and end up attempting 3-4 week sprints (Although I am using sprints as recognized in Scrum for most this article, I believe the content and practices that follow can apply to any Agile framework).
Scrum and Kanban are currently two of the most popular ways to implement Agile practices within software development teams. Scrum has prescribed roles and ceremonies and focuses on delivering small batches of potentially releasable work in short time-boxes. Kanban focuses on visualizing work, flow, and limiting work in progress. Both place an emphasis on continuous improvement. Both have been shown to be effective, but the question many teams face when starting to adopt Agile is: which one should we use? Teams often get hung up on deciding and in many cases select a framework which may not suit their team or environment. Or even worse, they will switch when the framework they chose isn’t working as well as they had hoped, without giving any thought to the underlying cause of their problems. Taking the following factors into consideration when deciding which one will be best for a particular team will help to ensure that the team is set up for success.