MVP Development 101
The advantages of developing software using an MVP approach
Developing software rapidly or iteratively rather than following a traditional waterfall approach is not new but has matured over time into several methodologies. One method that has garnered much success across both private and public sector organizations is the MVP or Minimum Viable Product methodology.
Software development is an interesting sector, as it was approached much like traditional engineering principles such as construction and manufacturing. After all, things have been planned, designed and built for decades, and there are already proven successful methodologies, so why not do what works right? That’s how it started, and it worked well for many software projects.
Along the way, some in the industry became more creative in their methodologies as they realized that things could be done differently. While not a blanket analogy, software components can be changed after the fact, or things can be done in a different order which is quite a shift from a traditional construction project where you would not dare introduce a drastic change in the number of floors in a building.
One example of an early shift in software methodologies is the Rapid Application Development approach, which was started in the 1980s at IBM. The focus was on prototyping the most challenging aspects of the system early on to root out areas that might require more time than hoped or would delay other aspects of the software. They found that users are typically better at reacting to functional demonstrations than creating accurate specifications. This allowed them to build the basic functionality much earlier in the process and often resulted in stronger user buy-in earlier in the project and reduced the risk of missing requirements targets and only finding out towards the end of the development cycles.
Fast forward to current times, where a wide range of software development methodologies are available to choose from, many of which mature from an engineering perspective.
One that has garnered much success in both public and private sectors is the Minimum Viable Product or MVP approach.
What is an MVP?
The concept of MVP is to develop the earliest version of a system that has basic functionality and can be used to collect the most amount of input or validation from the users with the least amount of effort.
* This is not to be misunderstood as the Most Valuable Player acronym, a confusion that can sadly take place when pitched as a suitable approach for a software project (true story).
The MVP approach focuses on being iterative and agile, and the goal is to produce something functional as early in the project as possible. This way, users can be engaged from the start, identifying primary functions and providing necessary feedback to allow for iteration and improvement. This is a substantial shift away from a traditional waterfall development cycle. The users would generally not see the system until the late stages when the user interface was connected to the back-end system that was already built based on early specifications.
Benefits of the MVP approach
That traditional cycle can often result in an unfortunate realization from all involved that the software may not be performing what the users need, and often it is at a stage that is difficult to make substantial changes to the system. The MVP approach endeavours to mitigate this situation. MVP development is not perfect and can be a challenge. A risk of MVP can be that users don’t see all the features they expect and may be underwhelmed. However, if coached on the MVP approach, it is often successful as they can provide valuable insight into the system before it is fully developed. This allows for new realizations of prioritization or features that had not been previously considered.
It is important to recognize that the MVP approach is not the best or only way to develop software, but it does have its purpose and place depending on the organization, team, and project goals.
Some of the advantages of an MVP approach are:
Allow an organization to prototype a system to demonstrate its benefit and gain support from leadership to continue to more advanced stages.
Test and validate business process or market demand opportunities without significant investment.
Mitigate traditional waterfall software development risk of late-stage acceptance failure.
Adopt new User Interface (UI), User Experience (UX), and Usability opportunities quickly.
Supports a focus on core system functionality and helps avoid scope creep
Engages users early in the process and supports more robust relationships between teams. Often quicker validation and more valuable feedback with lower effort.
Better clarity on system purpose and needs. The MVP approach helps the users stay focused on what the system must do, as opposed to all the things it could do.
Quicker to Market – Often, value can be introduced to users early on, and features introduced later when they have been prioritized or requirements fully matured.
When using an MVP approach, the tools employed can make a substantial contribution to the initiative. Using a platform such as OutSystems allows for accelerated development because there are a significant number of re-usable components, customizable features, integrations and complex process and interface solutions that can be quickly configured to demonstrate a prototype, proof of concept, or be used to improve or replace business tools without lengthy custom software coding efforts. When an organization has adopted Outsystems, there is often a breakthrough realization that older, legacy systems can be phased out, integrations between systems can be accomplished that previously seemed impossible, and new processes or automation and business analysis tools can be created using an MVP approach to quickly identify core needs and fulfill them without substantial risk, and cost.
How we adopt MVP
Accelerated Focus has intentionally set up a development model where everything hinges on not making assumptions about how software should work. We first ask why, validate with users, prototype and demonstrate value early in the development cycles. We're always looking to deliver immediate value that users can benefit from and support continuous improvement.