After deciding to SaaS-ify your app, you then need to decide how you want to move forward. Do you want to re-write or migrate? While some companies have the time and resources to re-write their app, it is not always the best fit for everyone. Re-writing and migrating both have their pros and cons, so it is based on what fits for your long-term business strategy. Click here to read more about the pros and cons of re-writing vs migrating.
Now that you’re ready to SaaS-ify your app, these are the 8 key questions you need to ask yourself to get started. Some questions also have additional questions to help ensure you are fully answering the question.
- What type of resource demand does the application have?
This question is to help you think through how your application works and what is required.
- What is the expected compute horsepower?
- What are the hardware requirements of your platform? Are they specific?
- What are the hardware requirements per user?
- Can it operate in a shared environment where multiple users can be logged into the same VM running multiple instances of the same app?
- Are there internal databases?
- Are you going to put them in the cloud?
From a user authorization perspective, this question will help you understand where security will be managed.
- Will your application manage user access and data security, or do you expect Active Directory to authenticate users?
Use this question to think through what your infrastructure will look like and what you will need to grow as new users are added.
- What is the base infrastructure (data base server, file server, app server)?
- As you bring new users onboard, what portions of your infrastructure will need capacity increases to help you grow on demand?
This question will help you gauge what you’ll need for your standard user profile.
- How much compute capacity will each user need?
- Do you want users to store any data locally or is it stored only in the cloud?
- Do you want to prevent users from copying data locally?
- How will data security be managed?
Use this question to work backwards from common issues to develop solutions to problems and minimize extra work.
- What documentation can you provide to help users?
- What is the process for contacting the help desk?
- Are you able to provide any self-help options?
Consider your different security options to determine how you want to handle security and what expectations you have for your application.
- Is user name and password adequate? Or do you need multi-factor authentication?
- Does your application handle all the security?
- Is the application doing user authentication or do you expect the infrastructure to do user authentication?
- How do you ensure valid users have access to the infrastructure and how will you protect the user's data?
Use this question to understand how your apps work together and what is needed.
- What other dependencies does your app need (like Office)?
This question helps you determine if you can use a shared infrastructure. If your app is able to manage user and data access, then multiple customers could share the same infrastructure, thus reducing runtime costs. If each customer needs to be isolated, then each customer would need their own infrastructure, thus raising runtime costs.
- Where is the application security - user authentication level or database level?
- Where is the data isolation?
- How do you isolate data from unauthorized access?