The road to a robust platform: lessons from scaling MVPs

The road to a robust platform: lessons from scaling MVPs

Pablo Romeo

Head of R&D and Tech Strategy - Co-Founder

7 min

Both startups and big corporations struggle in the journey of transforming their MVPs into robust platforms. However, by scaling up the infrastructure, growing the team and applying good software development practices, it is possible to do so.

Let’s dive into this process step by step to see how.


The starting point

A Minimum Viable Product (MVP) has only the essential features to achieve the following goals:

  1. 1.Attract first customers
  2. 2.Validate a business idea
  3. 3.Enable faster time-to-market
  4. 4.Check if there is a market for this product
  5. 5.Present your business idea to potential investor

Once it is launched, the Product team will receive user feedback to iterate it and improve the next version.

The goal is not to build your final product right away. It is useful to investigate if there is a market for your business idea, to check if it is worth the effort. An MVP is not built in a way it can support millions of users from the start. The objective is to quickly test a simple product, and after that your Development and Product teams can ask themselves: “Ok, now how do we do it right?”.

The goal is to be the first ones in the market. Be the brand everyone knows your idea for. And in order to achieve that, you do fast but sometimes inefficient processes, at the expense of good practices and technical decisions that prioritize scalability.


Next step: scaling up your product

Some startups and even bigger companies might keep on building over their initial product. However, if it is really successful and if the user traffic demands for a greater infrastructure, the initial architecture probably won’t be able to sustain it.

That is why there is a concept known as Throwaway MVP, which “allows you to test a hypothesis” but it is important to know it is “not your end product but rather brings you insight on whether to and how to build your product”.

This is a great way to validate an idea and, with all that knowledge, feedback and insights gathered, re-implement the idea considering what your team has learned.

Similar to a Proof of Concept (POC), once you have evolved your MVP and learned from users’ feedback, there is a good chance that you’ll have to throw it away and start over in order to work towards a scalable and robust platform that can support the demand of millions of users wanting your service or product.


The inflection point

Any MVP can grow on demand but at the level of its architecture, the development cycle and the deployment process; it has an expiration date.

Many startups and companies do not pass this inflection point.

As said before, at the beginning the priority is to be the first ones to bring an idea to the market. In order to accomplish that, the development team will focus on delivering functionality quickly, but behind the scenes, the coding practices and solutions usually are not the best. Most likely, the architecture and infrastructure will only support the demand of the first users. It is not intended to handle a considerable increase in traffic.

If your product or service proves to be successful and your user base starts growing, your Development team must follow that growth too. An MVP will only become a successful product by proving it is able to scale, which means:

  • Welcoming thousands of users to the brand-new platform
  • Having the capability to serve those users with exceptional performance and UX
  • Growing the Development team to follow the platform’s growth
  • Being easily extensible—adding new features should not be a painful process
  • Adopting an adequate testing strategy
  • Building a Continuous Integration pipeline
  • Automating repetitive tasks so that the Development team can focus on the quality of the code
  • Continuously gathering user feedback and use it to iterate and refine the product
  • …among many other things.

At this point, the priority is to evolve the infrastructure so that it supports high demand. It is the time to assess the technical aspects and think in the long term. Most of the time this will translate into designing a scalable architecture for your project and also refactoring portions of the code—or all of it. You will need to implement best practices with continuous delivery, outstanding performance and high quality standards in mind.

The reason many companies fail at this inflection point is that they don’t invest appropriately on the improvement of their incipient product. Here lies the key to transform an MVP into a robust platform that can grow over the years.



4 main problems when continuing an MVP

If you built a product rapidly, you might have applied not the fanciest solutions but the quick ones. That’s why you need to start over. Unfortunately, many stakeholders get attached to their initial product and are unwilling to let it go. Let’s see the 4 biggest problems in this scenario:

  1. 1.If an MVP was built with the intention of discarding it after being tested in production for a while, it is highly likely that it will have numerous bugs, subpar performance and UX, and frequent downtimes.
  2. 2.There’s a good chance that your Development team won’t be able to handle your business requirements at the needed pace. Introducing new features on a far-from-stable foundation will be painful and demoralizing for the team, which will spread to other levels of your organization.
  3. 3.Your efficiency will decrease while your costs increase. Why? In this context even fixing a bug might take a lot of time. You might find you’re maintaining a whole team and forcing them to keep on building on quicksand, instead of making the most of their abilities.
  4. 4.If your product experiences a significant increase in user traffic, it may not be able to respond due to the inability of its infrastructure to handle the high demand. This is because the product was not designed to accommodate such a large volume of users in the first place.

That is why the best approach might be to start over, using the lessons learned from the Throwaway MVP and investing on building a robust and scalable product.



4 main elements to have a robust platform

First, you need to change your startup mentality. A reliable platform must be able to grow over time. In order to do this, you’ll need 4 main elements:

  1. 1.A stable and scalable infrastructure that’s able to support high user demand. You’ll need to assess your server infrastructure in order to implement high availability. This implies covering the following:
    1. a.Infrastructure as Code
    2. b.Proper auto-scaling policies
    3. c.High availability
    4. d.A Disaster Recovery Plan
    5. e.Real-time monitoring and alerting
  2. 2.To keep up with the growth of your product and user base, it is important to scale your Development and Product teams accordingly. The process of scaling should be seamless and controlled. When the team grows from a small number to hundreds of people, there are changes in the development cycle that need to be managed. For example:
    1. a.A unified Product and Platform Architecture vision as well as a clear Roadmap
    2. b.KPIs and metrics on team productivity
    3. c.Clear component/service ownership across teams
    4. d.Clearly defined Domain boundaries
    5. e.Documented onboarding processes
  3. 3.Improve the development process by implementing good practices throughout all stages of the development cycle. Your development team should focus on coding and building with a long-term perspective in mind. To name a few:
    1. a.Continuous Integration and Delivery
    2. b.Automated deployments across the board
    3. c.Documented Development Guidelines
    4. d.API documentation
    5. e.Automation Testing Strategy
    6. f.Stress and Load Testing Strategy
  4. 4.Your team might need to update the technology and tooling they employed to build the first product. In this stage you’re building the robust and stable platform your product deserves to have. You have no other option than to come up with long-lasting solutions, and use technology in your favor. For example:
  5. 5.Incorporating static analysis quality checks
  6. 6.Migrating from “pet” environments to “cattle” behind Orchestrators
  7. 7.Rewriting parts that were initially built using obscure frameworks
  8. 8.Replacing manual tasks with automation and platform features



Wrapping up…

In conclusion, the journey of transforming an MVP into a robust platform requires a strategic shift from the startup mentality. While the initial product serves its purpose of testing the market and gathering initial feedback, it reaches an inflection point where its limitations become apparent.

Scaling up the product entails addressing technical aspects, such as designing a scalable architecture and implementing best practices in software development. Failing to invest in the improvement of the product can lead to numerous problems including bugs, performance issues, and difficulties in introducing new features. To create a truly robust and scalable product, four key elements are crucial:

  1. 1.A scalable infrastructure
  2. 2.A scaled Development and Product team
  3. 3.Focus on coding and building with a long-term perspective
  4. 4.And the adoption of appropriate technology and tooling.

By embracing these elements and making the necessary changes, startups and companies can successfully transition from an MVP to a robust platform that can meet the demands of a growing user base and thrive in the long term.