0

I am building an eCommerce project and I wanted to define the MVP of it so that I can build it in an iterative way in an agile fashion so I can shorten the feedback loop from clients and adapt asap.The problem is that for an eCommerce to go to production it needs the following features which are standard in the market:

  • Buy an item
  • Listing view of products
  • User Registration
  • Login
  • Forgot password
  • View a specific item (view a product)
  • Cart
  • Checkout
  • Rating system
  • Pay by card
  • Notification system

If I build all these features it will take me 6 months for the first release where the feedback loop is huge had probably there is a huge risk of failing.

Do you have any idea how to approach such a problem so I can build the project with being as Agile as possible?

1
  • 1
    The focus with an MVP is on releasing it, not building it. It is the minimum usable thing that you can put in front of your users or clients. If it takes you 6 months to build the bare minimum then it doesn't matter how Agile you are. So you either redefine what minimum means so it doesn't take you 6 months, or you give up on the idea and use an e-commerce solution that already exists so that you don't need to build an MVP in the first place.
    – Bogdan
    Commented Nov 17, 2021 at 14:58

4 Answers 4

3

TL;DR

If I build all these features it will take me 6 months for the first release where the feedback loop is huge had probably there is a huge risk of failing.

The issue is that you have fundamentally misunderstood both the purpose and scope of what a "minimum viable product" is, and what it is supposed to do. This is a common problem, and you are certainly not alone in misunderstanding it, but you need to reframe what you're doing (which sounds more like developing enough for alpha or beta testing) which you are unprepared to invest in, or switch gears to a real MVP approach. In either case, you must pivot from what you are currently doing, and take a radically different approach.

What an MVP Should Do

What you're describing is not a "minimum viable product" at all. You're describing a ready-for-market product, which is a very different thing. An MVP is a tool for validated learning, and is really intended to be the barest minimum you need to test a market hypothesis. In the laundry list of things you describe as being essential, most of them simply don't meet the definition of "minimum," nor do most of them really provide a clear path to validated learning about your target market.

If you're really striving for an MVP, you should toss your laundry list of functionality and replace it with the smallest amount of work you can do to gain useful feedback from the marketplace and your target customers. This might take the form of:

  1. Wireframes or models.
  2. Some pretty UI mock-ups with decent artwork and a clearly defined user journey.
  3. A walk-through of the user experience a customer might experience, whether in visual or narrative format.
  4. Possibly a small piece of working functionality like a home page, or something else you can show off as unique or special, but that is designed to elicit feedback rather than for actual use.

An MVP that creates validated learning lets you know whether whatever you're planning to build is viable in the marketplace, and tells you whether you're on the right track or need to pivot. In other words, you want to gain knowledge or fail early; it has absolutely nothing to do with whether the product is functional or usable in its current state, and everything to do with whether people would be interested in investing in it now or paying for it later if it was.

What You Have Now

You have a large project with no defining unique characteristics, no incremental or iterative seams, and no opportunity for validated learning short of building the whole thing from stem to stern. There are plenty of e-commerce platforms and software systems already on the market; building another one may be a project, but is not in itself a business justification for doing so.

If you decide to go down this path anyway, then what you should do is define a set of minimum vertical slices that you can deliver quickly so you can get maximum UX/UI and business feedback about those slices as fast as possible. For example, and probably in this general order:

  1. Build a home page, but grey out the "add to cart" button as future work.
  2. Build the minimum back end you need for a product database, but populate it with a single product for demonstration and feedback purposes.
  3. Build a login page, but leave user validation, management, and other complexities for future iterations.

It's pretty much the same for everything else on that list. If you want the benefits of agility, and the benefits of validated learning and tight feedback loops, then you must adopt a development process that embraces small increments of functionality, iterative development, tight feedback loops, and most of all an unconditional embrace of the YAGNI principle.

Look at it this way:

  1. If the market is not interested in what you're proposing, you want to fail early and possibly cancel the project before you've spent a lot of money on an unsalable idea.
  2. Alternatively, if you learn something from your MVP that requires you to pivot your product or business model, you may end up building something entirely different from what you originally envisioned. In that case, having built it already represents a sunk cost that could have been avoided.

In either case, while you might need all those features for a working e-commerce site that's generating profit to continue bootstrapping the company, you do not need them (possibly at all) for an MVP, and certainly not all at once as part of an emergent design process such as Scrum.

See Also

2

For each of the features listed think hard about if you actually need it for your early consumers, if you do then can you get the functionality from something else which is already built, if not then can you fake it by having a manual process in the short term.

For example: Listing the products, you need this and will probably build it. For user registration, login, forgotten password, you need this but could you use the Sign up with Google/Facebook rather than building it. Payments - Look at things like Stripe or anything else which is easy to integrate. Rating system - Feels like it is something that could come later. Notifications - Fake it, send the notifications manually. If you get loads of traffic then build it.

2

Since the goal is getting a Minimum Viable Product, that means having the bare minimum features. The idea is simple: as customers start using the product, they'll offer you valuable feedback, which can change the course of development of your project. Just as earlier said, it's best to use an existing feature rather than hard coding. An example is using a plugin for sign up functionality. This way, you don't have to spend so much time and these existing features can be taken out later and hard coded if you wish.

1

One thing worth considering is creating a beta test group for the product. This would be a group of users who are interested in the product, don't mind seeing it while it is still not feature-complete and are willing to sign an NDA.

The value of the beta test group is that it allows you to release in an iterative fashion, even before you get to the MVP stage.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.