DEV Community

Cover image for Building an MVP
Thiago Mota dos Santos
Thiago Mota dos Santos

Posted on

Building an MVP

Building an MVP is a challenge that every developer should undertake, as it is a great way to learn various concepts, not only about technology but also about the product and, most importantly, people. In this article, I will share my strategies, challenges, and lessons learned.

The MVP I am building is Crypto Use Pay, a gateway where it is possible to receive payments via cryptocurrency.

Dashboard MVP

Starting

The first thing you need to do is to put everything you plan to do on paper or as notes on your computer screen. Conduct an analysis of each feature you intend to create, make a prioritized list, and strive to include only the essential functionalities in the product, as an MVP = Minimum Viable Product.

Sketches can be a great way to do this as well. It's essential to visualize precisely what you are going to build.

Sketch MVP

Sketch MVP zoom-in

A first version should have only a few functionalities. After noting all the features your product will have, you should be able to state its purpose in a brief sentence. In the case of our gateway, we can say that:

"Crypto Use Pay is a platform for creating orders for merchants, with the primary form of payment being cryptocurrencies."

Stack

Here we can have two approaches:

  • The stack you are proficient in
  • The best stack for your product

If you are proficient in a few technologies, it would be ideal to use them to create your product.

If you have extensive knowledge, you can conduct a more in-depth analysis to determine what would be the best fit for your product.

Trade-off

When building your product, it is inevitable that you will have to make some sacrifices. Consider the following example:

"I want to scale my application significantly, so GraphQL makes sense for me."

In this situation, if you have limited knowledge of GraphQL, you may face a steeper learning curve to implement this technology satisfactorily. Another example:

"I'll use Firebase because I won't have to build authentication from scratch, and many features are readily available."

While this may work well initially, what happens when the application scales? You may still need to create some components manually.

You should be aware of everything that involves your product and carefully consider the trade-offs associated with the technologies you choose.

Be simple

Overengineering is a significant problem; your first version certainly doesn't need thousands of incredible features. You need to find out if someone will use your product first.

Reduce the number of clicks; it should be possible to reach the purpose of your application in just a few clicks. Therefore, a good Developer Experience (DX) is crucial.

Don't be afraid to discard an unused feature.

Try to keep it as simple as possible.

Talk with your customers

If you have a specific niche to target, don't hesitate to talk to as many people as you can. Send DMs on Twitter and Linkedin, ask in the comments, inquire if they would use your product, create posts to gather ideas, and provide incentives for your customers. At Crypto Use, we are considering offering a real benefit to those who promote our product!

commission

Code fearless

Creating an MVP often involves fear and insecurity, as it naturally would. However, these negative feelings are often just noise from the mind and do not reflect reality. When embarking on a journey, it's impossible not to hit or fall somewhere.

That's precisely why you should write the code, no matter if it's bad. If something goes wrong, you are forced to learn how to solve the problem anyway. Iteration, that's the keyword of this article. Just code it.

Community

On Twitter itself, there are many people who have already built incredible products. My recommendation is Sibelius

If you encounter any obstacles on your journey, don't hesitate to ask for help. Surely, someone will be able to assist you.

Wrapping up

Building an MVP is a significant challenge that goes beyond technical development, involving a deep understanding of the product and user needs.

There's still much to learn, but I believe that's enough for now.

Twitter: @Thzinhdev
Linkedin: Thiago Mota
Photo by Scott Graham at Unsplash

Top comments (0)