There are less than 10% of products are conceived and built as Desktop/On Premise solutions rest 90% of the products are built for Cloud and especially in the multi-tenant model, there is a new terminology coined now which is “Born in the Cloud”. Leaving behind the existing apps which have the potential to be migrated to Cloud or SaaS model, most of the new SaaS start-ups are targeted for SMBs, Mid-level Markets and Enterprises in mind. These start-ups companies are completely new to the SaaS product development era and all they know is only about the product they are going to build and have very limited knowledge on Non-functional aspects of the service. These small start-ups don’t have enough time, cost and resource to build the entire architecture or the base infrastructure or framework to build their dream product on top. Hence it is ideal for Start-ups as well as established players to look for third Party components and frameworks to build their SaaS Product.
Now let us look at Top 10 Reasons as to why SaaS companies must use Third Party Software out of the box.
1. Multi tenancy
Building Multi tenancy requires a different mind-set altogether than developing a desktop or enterprise applications in general targeting one enterprise or user groups. SaaS Applications are meant for Scale and Huge volumes of Data; hence the Multi-Tenant Architecture that you are trying to put together must be capable of handling these numbers gracefully. Though there are many reference architectures and blueprints available in the form of research papers and articles, there is no base structure or solution to start building your business features from Day 1.
2. Application Security & Data Security
Analogous to the human body, consider the application as Brain, Security as the heart of the body. Security must be as healthy as the Brain to function properly. Multi-Tenant applications security is not a child play and any potential breach can invite law suits against the company and the team. Security is one of the complex subjects which make Multi-Tenant architecture even more complex. Security must be addressed differently for the different layers (i.e. UI Layer, Biz Layer, and Data Layer) of your application. But there is no simple or single Security strategy that will fit for all the SaaS Applications. In fact many SaaS companies hire Security Hackers & Architects to concentrate on the Security Aspects of the SaaS Product.
I have seen customers who run their application in single instance model asking “Should I really build/migrate to Multi-Tenant SaaS model or can I continue with the way I do now?” I respond them by asking
- Are you targeting only 50-100 customers or >1000 customers?
- What is your pricing strategy?
- What is the domain you are betting on?
If the Customer’s response is positive i.e. He/she is looking for Scaling his customer base with less margin and niche domain then Multi-Tenancy is a MUST. When you want to serve such a huge Customer/User base, the base architecture should have the ability to seamlessly Scale up and down as and when required.
When it comes to technology, there is nothing called One Size fits all, but there are many Tools and Techniques which provides ultimate flexibility and facility to extend or customize as per the application requirement. It is the SaaS Application Architect’s ownership to best select an ideal Platform or Framework to aid your SaaS application development. But from my experience of dealing with a bunch of Customers, the Non Functional Components of SaaS application is quite common across all different kinds of SaaS Solution irrespective of the size & domain they belong to. SaaS frameworks have now widened the scope beyond some specific use cases and specific domains.
5. Customization and personalization
The Rule of “One Size doesn’t fit all” also applies to Customization and personalization. Your end customer doesn’t even know or care how the app is built or what is happening under the hood, how it is built or served etc. They want the software to be customizable and white label as per their Organization, configure settings etc. Provide options for the customers to dress and customize the application the way they want. Usability personalization plays a key role in the decision making process from the customer’s point of view, hence the easier and usable your application is, more the App adoption will be.
6. Cloud Independency
In general when SaaS ISVs kick start the app development, ideally they might have identified the cloud platform they are going to host. But over a period, the decision might change for various reasons such as
- You might get a better price offering from other cloud (Happens with aggressive marketing from multiple cloud providers JJ)
- Your competency between clouds may change over a period
- Clouds are evolving and competing with each other, hence you may get better value proposition
- You may want to couple multiple clouds (Happens with large products)
The point is, the architecture that you build should be completely cloud independent so that you will not handicapped with one cloud provider.
7. Workflow & Business Rules
Workflow Process Automation and Business Rules are some of the inevitable components when it comes to building robust, resilient and customizable solution. Applications in general is a bunch of fixed process flows involving various decision making rules, complex branching etc., Often these process is not common across many organizations. Hence Workflows & Business Rules helps you to allow your end customers to customize process according to their requirements. Adding to that, if the workflow component that you use is intelligent and easy enough for the end users to customize, you are the winner.
8. Plumbing & Instrumentation
As per my knowledge being a developer, writing plumbing layer by yourself is one of the time taking and complex practice, if it is not carefully implemented it can crash the whole architecture down. Usually this will be developed by highly skilled Senior Developers and Architects. Thankfully there are lot of middleware’s and Plumbing Layer components available both in open source world and paid components which offers flexible and customizable solutions. Yet choosing anyone of the components to put together the plumbing layer requires lot of analysis and best practices.
9. Tenant & Subscription Management
Tenant Management refers to managing ex-customers and simplify the process of on-boarding new customers into the SaaS Game and Subscription Management refers to managing the multiple subscription plans your offer, the pricing plans etc. Both of them are the two hands on your SaaS product and both must go hand in hand. Tenant Management involves providing simple & elegant User interface to get registered into your offering, providing an effective admin interface for the SaaS provider to look at all the customers, the subscription plan they own, the dues that they have to clear, look for any cross selling or upselling opportunity, identify opportunities for Subscription plan Upgrade and Downgrade etc. This requires a close coupling between Tenant Management and Subscription Management.
10. Billing & Monetization
Success of your business depends upon how well you are making money with your SaaS App and it depends on how many paying customer you have. When you have more customers the billing gets difficult. If you believe you can survive with manual or paper based billing system, it is worth considering the perception. We learned from our customers that manual billing is more painful than we think, be it simple app that charge 20$ per month or high end system which transacts 1000-2000$ per month, unless you automate it’s going to become nightmare for you.
You need a flexible billing system to automate the entire process of invoicing, metering, payment collection, dunning, taxing, notification & reminders etc. There are many intelligent SaaS/Perpetual based Billing Systems available today to simplify and automate the painful payment automation process.
11. Product & Business Analytics
Product & Business Analytics plays a vital role in understanding how the application is performing in the LIVE environment. These analytics helps you to better understand your customers & product which in turn help you to make better strategies and decisions.
- The most used module/feature in the application
- The most subscribed plan of the application
- The Tenant who use the application inside out and consumes the entire bandwidth
- % of Customer who may discontinue the next month
These components are generally called as Non-functional Components and nothing to do with your core business Expertise. The main question that you have to answer yourself is
- Do I have the bandwidth in terms of Cost/effort/Money to build/test/manage these components by myself?
- Do I have the expertise to build it?
If your answer is “No”, then it is best advisable for you to look at alternatives including Open Source and paid Softwares for these components instead of building it yourself. However, the second major problem in building by yourself is, you have to build/maintain and enhance these components by yourself which is going to put away lot of your effort which will otherwise be spent on your core expertise.
Please feel free to contradict with me @ Ilyas.firstname.lastname@example.org