So you got an idea for a new product and you decide to build an MVP, a minimum viable product, to begin with. And that’s the beginning of a big debate …“Which framework should I use for the frontend?” or “What is the best backend technology for my MVP?”
Remember that an MVP is primarily about getting a product into the hands of your customers quickly and then using their feedback to enhance the final output. But before your developers write any code, you will need to pick a tech stack that will power your software product. The options can be overwhelming, especially if you are not of a technical inclination, and they come with the risk that committing to the wrong language or framework could seriously impact product now or even much later.
For the uninitiated, a tech stack is a combination of software products and programming languages used to create a web or mobile application. Applications have two software components: client-side or the front-end, and server-side or the back-end. Each layer of the application builds on the features of the one below it, creating a stack.
Web Applications Development
Fortunately, selecting the right tech stack is not that hard and requires you to keep only a few important factors in mind during the selection process. Here are some factors that will help you can quickly trim the options down to a manageable set of technology choices.
Your target user base. Refer to your primary target audience when designing your MVP and the value proposition your product will offer them. Are users more likely to engage with you via an app or a desktop, or both? Launch your MVP for only one platform, to begin with. Spending additional resources to build and maintain two separate interfaces makes more sense after you have made progress in validating your product. The platform you choose will be your first step in selecting the technical layer.
The landscape of tools in your industry. One of the keys to a successful MVP is reducing time to market. Capitalizing on existing tools can dramatically reduce the scope of work and effort required to launch your product. When selecting a programming language and other back-end technologies, identify the best open source tools available in your industry and use their tech stack as a guide. If you are launching with only a simple native mobile appl you should use a back-end provider like Parse or StackMob instead of developing your own. Look for recent development on Github from a wide variety of contributors and a large number of StackOverflow questions. The best tools have a vibrant and enthusiastic developer community around them.
Functional and non-functional requirements. Another critical, perhaps the most important, is defining the functional and non-functional aspects of your product before you put together the tech stack. Non-functional requirements are scalability, performance, usability, accessibility, data delivery, security, compliance, extensibility, portability, disaster recovery, documentation, robustness etc. The tech stack you pick must give you full control over supporting these non-functional requirements.
Functional requirements are product features or functions that developers must implement to enable users to accomplish their tasks. Basically what you want your software product to do. A specification sheet with all the functional requirements will help you pick the right tech stack. You need to keep in mind factors like speed, scaling, cost of future maintenance and integrations to avoid unnecessarily complicating your MVP.
Who is your developer? Certain tech stacks need different types of candidates. When choosing a tech stack to make sure there are enough developers in the market with the skills you require. New technology like NodeJS might attract good talent, but you will be recruiting from a relatively limited talent pool. Your team has to be really experienced because the project runs on a deadline. So if you are about to choose a web tech stack, make sure it has a huge developer community and rich documentation. Even your industry will impact talent availability. For example, Fintech platforms are usually built using Java or .NET because of regulatory and compliance issues, both languages with a vast talent pool. Even after deciding on the tech stack, remember the developer team will have to maintain the app after launch too.
Type of Project. If the project is small and you need to deliver it in the shortest time possible, then simple technologies like CMS or WordPress can be used. Your MVP can then be delivered even within a strict timeline. A larger project would need a combination of programming languages because the developers would need something that provides them with various functionalities and seamless integrations across multiple platforms. Java and C# are the commonly used programming languages for large or complex projects, such as social networks, huge e-commerce marketplaces, etc.
As the number of users goes up, the app must be able to handle the load. Pick a tech stack that will accommodate future growth of the app to prevent a product collapse in the future. Remember that tech stacks have different scalability potentials. For example, the components of the MEAN stack (Angular and Node.js) have excellent scalability.
Cost of Development
While most of the popular tools and frameworks are free and open source, you may have to subscribe to them by paying fees to get access to the advanced features. Depending on the tech stack that you pick, you will have to get its license as well. So make sure you know how much you are willing to spend on MVP development.
In conclusion, I would like to point out that it is better to go with proven technologies, especially as you grow and need more developers. Also, don’t reinvent the wheel unless critical to your product and be mindful of what tools you actually need to make the product do what you want it to. For instance, one of our clients was working with another vendor that was using.Net and SQL Server as frontend and backend respectively to build the MVP. But Zuci quickly realized that Apache Solar, Java, and allied technologies were a better option considering that the application would actually need to serve read needs more than write needs.
In the end, remember that technology is a tool that can help you build a profitable business. But don’t fall into the trap of technology for the sake of technology. Your end users won’t care how trendy is your tech stack but will care about how well your app or website works.