How To Create A Minimum Viable Product For Your Enterprise Company
Today’s world of business requires a continuous stream of innovation to enable companies to get ahead.
Enterprises compete in an ever changing environment, so therefore, need to be nimble. As a result, they are turning to Agile in ever increasing numbers to facilitate this transformation, something which I have already covered in “5 ways Agile can help with change management”.
Agile is no magic wand though, and enterprises need plenty of discipline to stay Agile! A key area where enterprises often need help is in the creation of an MVP.
Are you a senior leader in an enterprise? If so, you are likely trying to build a nimble organization with the help of Agile and wondering how to successfully create a minimum viable product. Look no further as this guide explains exactly that!
Why it’s key to effectively manage MVP development
A “Minimum Viable Product” (MVP) in the enterprise context isn’t the same as an MVP in a start-up context. You need to carefully manage MVP software development in an enterprise since various factors can make it a complex project. These factors are as follows:
- An enterprise is different from a start-up since it already has a large customer base. Unless you manage it well, your MVP software development project can go wrong and damage your reputation.
- Start-ups have plenty of elbow room for trial-and-error, however, enterprises can’t afford that.
- A start-up can launch an MVP first and redesign it later for scalability. However, you as an enterprise business leader must plan for scalability from the very beginning!
- While open-source software is a boon for innovation, many of them are not available for enterprise usage. Some open-source software may lack scalability and security features, therefore, you need to carefully weigh your options.
- You should try to bake in automation from the beginning of your MVP process.
Read “MVP for enterprise: great Potential, great Danger” for more insights.
A guide to creating an MVP in an enterprise
I will now explain the various steps to successfully create an MVP in an enterprise, which are as follows:
1. Carefully plan your MVP software development project
Developing a “Minimal Enterprise Viable Product” (MEVP) involves plenty of key tasks, and you need to plan carefully. You should first hire a competent project manager (PM) with experience in delivering Agile projects.
Hire a competent IT architect and a capable team of business analysts. The planning process should cover all steps in the MVP development project, which are as follows:
- Identifying the business needs and understanding what the market needs;
- The discovery session;
- Prioritizing the features for the MVP using tools like “Pain and gain map”, prioritization matrix, etc.;
- Formulating a development approach;
- Development, testing, and deployment.
If you need guidance for project planning, then consult our guide “How to effectively manage an MVP in your enterprise company”.
2. Avoid disrupting your core business while developing an MVP
You need to allocate a significant amount of resources and time to develop an MVP in your enterprise, and this can take a toll on your core business. Your project planning exercise should proactively mitigate this risk, and this involves the following:
- Ensure that you have enough competent people to support your core business applications so that the MVP development project doesn’t stretch your maintenance team too thin. Assigning both maintenance and MVP development to the same team could create priority conflicts.
- Plan your IT infrastructure solution for the MVP development project in a way that you don’t adversely impact your core business apps.
- If you plan to utilize any of your existing IT applications in your MVP app, then you should plan on creating robust APIs for the existing apps.
- Proactively mitigate application security risks for your MVP app. If you are accessing your existing IT apps via APIs, then you should ensure API security too.
Our guide “How to build an enterprise MVP without disrupting your core business” can help you with this.
3. Choose an appropriate IT architecture pattern
The right choice of IT architecture pattern goes a long way towards the success of any software development project, and it’s true for developing an enterprise MVP too. You need to study the various IT architecture patterns before you make a decision.
I have explained the key IT architecture patterns in “Large enterprise Java projects architecture”, which are as follows:
- Layered (n-tier) architecture;
- Even-driven architecture;
- Microkernel architecture, which is suitable for high-usage tools;
- Microservice architecture;
- Space-based architecture.
Note that if you are offering multiple distinct and separate services in your MVP app, then the microservice architecture could be the right choice for you. Read our guide “10 best practices for building a microservice architecture” for more insights.
4. Proactively manage application security risks
As an enterprise, you have built your reputation over the years, possibly decades, by serving your customers. If your MVP product has a critical security risk, it will not only damage the prospects of that product, but it will damage your overall reputation.
Mitigate application security risks proactively. Read the “Open Web Application Security Project (OWASP) top 10 application security risks – 2017” report, which highlights the top application security risks and their mitigation measures. These risks are as follows:
- Broken authentication;
- Sensitive data exposure;
- XML external entities (XXE);
- Broken access control;
- Security misconfiguration;
- Cross-site scripting (XSS);
- Insecure deserialization;
- Using components with known vulnerabilities;
- Insufficient logging and monitoring.
You might create APIs as part of the MVP development. In that case, you should also ensure API security. The following are how you can ensure API security:
- Use tokens for authentication;
- Make use of encryption and digital signatures;
- Proactively manage vulnerabilities;
- Use API gateways.
You can read more about this in “What is API security?”.
5. Use cloud platforms
MVP development timeframes are short, therefore, you need quick provisioning of IT infrastructure and computing resources. You should use cloud computing platforms since managed cloud services providers help with this.
If your MVP app doesn’t have stringent data privacy requirements, then you could use a multi-tenant public cloud. This reduces your cost, as you can read in “Creating a minimum viable product for the enterprise: No trivial task”.
If you are developing a web app as part of the MVP, then you will benefit from using a Platform-as-a-Service (PaaS) platform, e.g., AWS Elastic Beanstalk. PaaS platforms offer the following advantages:
Hire expert developers for your next project
1,200 top developers
us over the last 3 years
- Such platforms manage the cloud infrastructure, networking, operating system, middleware, and runtime environment. You can focus on development.
- PaaS platforms let you easily integrate databases and other services with your app, moreover, you can integrate APIs easily.
- Prominent PaaS platforms offer robust DevOps and auto-scaling solutions.
Read our guide “10 top PaaS providers for 2019” for more information.
Are you developing a mobile app as part of your MVP? You should then consider using a Mobile-Backend-as-a-Service (MBaaS) platform like AWS Amplify. MBaaS platforms offer many advantages, e.g.:
- You don’t need to develop and manage the mobile backend since the MBaaS provider manages the cloud infrastructure, persistent storage, etc.
- It’s easier to implement security features when you use an MBaaS platform, moreover, you can easily implement features like user management and push notifications.
- You can scale your mobile app easily when you use an MBaaS platform.
I have earlier explained the advantages of using an MBaaS platform in “How to choose the best Mobile Backend as a Service (MBaaS)?”.
6. Choose the right technology stack
The technology landscape is full of excellent programming languages and robust database solutions, however, you need to choose the right technology stack for your requirements. I recommend the following:
- Use js if you are developing a web app since this open-source runtime helps to create scalable and performant web apps. As I have explained in “10 great tools for Node.Js software development”, there are excellent open-source tools and frameworks for Node.js, which expedite your project.
- You can use Kotlin for native Android development since it helps to improve your productivity. Kotlin also helps to avoid common programming errors, moreover, apps coded in Kotlin are performant. The other option is Java, which continues to be favorite with Android developers. Our guide “Kotlin vs Java: which is the best choice?” can help you to choose between the two.
- Swift is a great choice for developing native iOS apps since you can code performant apps using it. The language has powerful features that improve your productivity, moreover, it helps you to avoid common coding errors. It’s also the language championed by Apple, as I have explained in “How to migrate your Objective-C project to Swift?”.
- If your MVP includes Artificial Intelligence (AI) or Machine Learning (ML), then you could use either Python or Julia. Python is well-established with powerful features and libraries, while Julia is a relatively new language with powerful features. Our guide “Julia vs Python: can this new programming language unseat the king?” can help you to choose.
- You can use PostgreSQL, a powerful open-source relational database management system (RDMBS). If you need to use a NoSQL database, then MongoDB is a robust choice.
7. Form the complete MVP development team
You need to form the complete team, however, the exact team composition will depend on the project scope. The team might need the following roles:
- UI designers;
- Web developers with Node.js skills;
- Android developers with Kotlin or Java skills;
- iOS developers with Swift skills;
- DevOps engineers.
Our guide “How to find a good software developer” can help you to find developers.
Additionally, if your MVP scope includes AI/ML, then you will need to hire AI developers with Python skills. You might need to hire Augmented Reality (AR) or Virtual Reality (VR) developers if your project scope requires these technologies.
MVP development can be complex, therefore, you need a team that works cohesively. Onboarding a field expert development team will help, as I have explained in “Freelance app development team vs. field expert software development teams”.
8. Select the right development and testing tools
You can expedite your project by using the appropriate development and testing tools. The choice of tools will depend on your project scope, e.g.:
- Consider using market-leading “Integrated Development Environments” (IDEs) like Eclipse for web app development, Android Studio for native Android development, and Xcode for native iOS development.
- You can use the Microsoft Azure AI Platform for AI development or find more options in our guide “The best Artificial Intelligence software development tools of 2019”.
- Vuforia and Wikitude are good choices for AR development, as I have explained in “The ultimate guide to choosing the right enterprise AR solution”.
- You can consider Unity or Amazon Sumerian for VR development, however, you can find more options in “10 great tools for VR development”.
- The mobile apps you deliver should work with all devices, however, you need to test the apps with a wide range of mobile devices for this. You need a mobile device lab, and Experitest mobile device & browser lab is a robust choice.
9. Use a pragmatic approach for designing APIs
You will likely create and use APIs while developing the MVP app since APIs can make software development easier. Creating RESTful APIs can be a good option since “Representational State Transfer” or REST is well-established.
However, I recommend GraphQL, a relatively new open-source query language for APIs. It has several advantages over REST, e.g.:
No “under-fetching” or “over-fetching” with GraphQL
When your app calls a RESTful API to retrieve data, then the API returns all the data in the API endpoint. If your app needs additional data fields, then it has to call multiple API endpoints. We call it “under-fetching”. If the app needs fewer fields, then it will face the challenge of “over-fetching”.
GraphQL features a powerful query language, therefore, developers can request the exact data elements they want. This eliminates the problems of over-fetching and under-fetching. Read “REST vs. GraphQL” for more insights.
A faster front-end iterations with GraphQL
You create RESTful APIs in line with the views in your front-end and call the API endpoint to get all the data you need in that view. While this helps, any changes to the front-end view will require either more or less data, therefore, you need to change the API too.
This can slow down the MVP iterations. You can overcome this challenge with GraphQL since you can query the API for the exact fields you need. This eliminates the need to change the API every time you change the front-end, therefore, you can iterate faster. You can read “GraphQL is the better REST” to learn more.
Planning to create an MVP for your enterprise?
This guide can certainly help you to develop your MVP, however, MVP development in an enterprise can be complex. Consider engaging a reputed software development company for such projects. Read our guide “How to find the best software development company?” to learn how you can find such a development partner.