From MVP to V1: Adjusting Development Strategies

How should software be built?

It depends.

There isn’t a single “correct” way to build software. An early stage startup might focus on speed over maintainability, because they’re looking to find Product-Market Fit (PMF). A scale-up which has found PMF might focus instead on maintaining engineering velocity. Both are solutions to two completely different equations.

If we broadly group development “modes” into two buckets, we get the following:

  • MVP
  • V1

MVP is everything before Product-Market Fit. V1 is after Product-Market Fit. Let’s define what Product-Market Fit is.

Start with Three

Engineering projects that require maintainable code should always start with a team of 3 or more engineers.

Why such an arbitrary number, you might ask? Why can’t a single engineer write maintainable code? Perhaps your thoughts might lean towards peer-review for PRs and arrive at the number 2. Two engineers should be enough to properly review.

So why is it important for software to be maintainable?

Software in the real world is only written to solve a problem for someone. But it doesn’t solve that problem fully (that’s a discussion for another post). It only represents a solution to a problem at that point in time. Unfortunately, we don’t live in a static world, so problems are always evolving. As the problem changes and new problems arise, the software must be modified or updated to meet these altered conditions. Or else they must be retired and decommissioned, as they are no longer fit for purpose.