How to evaluate the quality of SaaS development services before hiring?

Hanuman

Member
I’m looking for an external team to build a prototype. What specific technical questions should I ask to ensure they understand multi-tenant architecture?
 
Ask them directly on the manner they deal with database sharding or row-level security. Many of these teams say they are multi-tenanted when they simply put a tenant id column in all the tables and declare it complete. Assuming that they are unable to explain how they will avoid losses of data between clients or how they will deal with the problem of noisy neighbors in a shared resource environment, they are unlikely the right fit to a serious SaaS project.
 
Frankly speaking all you need to do is to request them to draw a diagram of a past build. When the architecture appears to be a plate of spaghetti with all customers using the same logic and DB instance, with no obvious isolation boundaries, flee. The majority of such experts are simply creating glorified CRUD applications and applying a SaaS tag to them.
 
Explain to them that there is a client who requires a custom database schema that is not the standard template one. When their face turns pale, or it starts to stutter on how that is not how it works then you are dealing with inflexible boilerplate of low quality. True multi-tenancy must enable some amount of customization to the tenant without requiring a complete code rewrite.
 
Oh, dear, another search on SaaS gurus. Remember to enquire about their way of dealing with updates. Nothing like a dev team with a fix that brings all 50 of your customers to their knees simultaneously can happen because they did not comprehend how to execute migrations in a multi-tenant setup. They do not refer to automated blue-green deployments or canary releases, they are essentially gambling your business with Russian Roulette.
 
I would pay much attention to the authorization and authorization layer. Enquire what identity providers they like and how they can map those identities to specific tenant roles. Unless they discuss JWT claims or scoped permissions on the first page, they are unaware of the security demands of the modern SaaS development. The cheap teams normally cut corners where security is concerned.
 
I had one time to hire a team of SaaS specialists who believed that to save money, we could all use the same Slack account because of the multi-tenant architecture. In very earnest, enquire of their noisy neighbor policy. When a single customer makes a huge request and takes down the server of all others, your prototype is killed while it was in transit. Unless they have a strategy on how to rate-limit or even resource quotas, continue searching.
 
Remember to enquire about their back-up plan of their data. What is in case a tenant desires to quit and take his/her data away? When the information is bound together so closely that it requires a week of tedious SQL queries to retrieve the data of a single customer, you are creating a jail, not a platform. Portability itself is a massive signifier of an architectural thought.
 
Keep it simple: request them to clarify the distinction between a silo, bridge and pool model of SaaS. When they are not able to tell you the advantages and disadvantages of each in terms of cost versus secludedness, they are also simply Googling terms as they discuss them with you. You desire a team that will be able to explain to you why a particular model will fit your particular prototype budget and scale.
 
Everybody concentrates on the database, but enquires about the frontend as well. What are they doing with tenant specific branding or custom domains? Unless the UI is coded in a dynamic manner initially, you will end up paying a fortune to un-hardcode all the CSS and other assets to accommodate your second and third customers.
 
The key ingredient in this is Infrastructure as Code (IaC). To ask them how they spin up a new tenant environment. In case the response is either manual configuration or takes several hours to setup, they are not prepared to use SaaS. It ought to be a scripting or a button press. Unless it is automated, then it is not a scalable SaaS development service; it is a manual labor shop.
 
Back
Top