7 votes

What is your framework for back of the envelope/ MVP style software design?

I suspect many don’t write anything down and do this largely by intuition/experience but I want to tease out some ideas.

when it comes to describing and designing a system from a blank piece of paper, what are the parameters you think of?

I’m thinking napkin sketch level of software design.

So things like:
Number of users, are they concurrent users, what load dimensions there are (disk IO, network IO etc.), target platform (everything is a web app these days), how do you design/visualise the data model?

Any decisions or constraints that impact what and how you build a proof of concept / MVP? How do you document this? How do you test it against the finished software?

2 comments

  1. Skyaero
    Link
    IMHO an MVP does not bother with number of users or performance in general. An MVP tests if there are customers for the product that you are building and are willing to pay for it. So the...

    IMHO an MVP does not bother with number of users or performance in general. An MVP tests if there are customers for the product that you are building and are willing to pay for it. So the important part is the core concept of your product.

    I don't do much from scratch anyways. I'm in the Microsoft environment (i.e. Asp.Net), which comes with all the basics: MVC framework, Identity (login) provider, ORM (Entity Framework) and deployment in Azure. With the latter, I also don't have to think about things like disk IO etc. Even in terms of UI you could stick with a fixed template like Bootstrap (although my experience is that bootstrap does so much wrong when it comes to good practice of HTML/CSS, that it is a giant bitch to unclutter it).

    It literally how I build a number of applications that found their way to paying (early adopter) customers. They don't care about UI or performance, they care about the functionality and the support. Now we are in the phase to improve the software and move to wider adoption.

    It is always cheaper anyways to scale up something in the cloud anyways then to optimize the software. By the time software optimization is a must, you are far from a start-up anymore and have a significant amount of paying customers.

    3 votes
  2. failuer
    Link
    I’m in agreement with Skyaero. The only thing I think about/optimize for in an MVP is time. My time (so it’s not wasted) and how quickly I can get something up and running to get actual users...

    I’m in agreement with Skyaero. The only thing I think about/optimize for in an MVP is time. My time (so it’s not wasted) and how quickly I can get something up and running to get actual users testing.

    There’s two keys to this; the first is really honing in and identifying what your product is. This is difficult in the beginning because you’ll be excited and motivated. All the cool features you can build, all the directions you could possibly go in, how many users, all the murky engineering questions will be flying around in your head.

    The second part helps tame all these thoughts - you need to be willing to follow the users. You’ll have ideas and theories on what your idea should be and evolve to but you need to let them help guide you. This will give you an idea on what features to prioritize, and help guide the product into something people will pay for.

    For software I’m in the web space so I’ll typically go with Sinatra (or flask) but always try to think about how can I do this easier. It’s even possible to build nothing. Sometimes you can slap together an MVP with an Airtable form and some static HTML. Think of all that time you’ll save!

    If you’re interested in this kind of stuff I’d highly recommend attending a startup weekend. You’ll build and sell a product in 54 hours. It’s a real eye opener.

    https://www.techstars.com/communities/startup-weekend

    1 vote