Back in 2005, I wrote an article for SIIA.net about using meta-data driven design, rather than code changes, to create highly customizable SaaS applications. Since customization continues to be a hot topic in the SaaS industry and often a stumbling block to adoption for many types of businesses, I wanted to briefly review how a SaaS can be designed to allow for easy customization and configuration.
At the most basic level, for a SaaS to be highly scalable and efficient, everyone starts with a single instance of the application. This is the concept of multi-tenant-efficiency. Client data is stored in a shared database, but authorization and security policies ensure that each client’s data is kept separate from that of other clients.
To customize a SaaS application, you don’t modify the application in the traditional sense. No one fiddles around in the database, modifies schema or creates custom code (hoping nothing breaks), Instead each client uses meta-data - “data about other data” - to configure the way the application works and how it provides a unique user experience and feature set for each client.
Customization/configuration using meta-data can run the gamut from from terminology/lexicon and branding/layout, to individualized workflows, to data model extensions, to integration from other systems, to user provisioning and even to business logic.
The challenge for the SaaS architect is to design and define the requirements for customization/configurability early in the definition cycle and then design easily-configured UI components that can manipulated in a self-service manner by non-technical clients.
Needless to say, if you are developing an enterprise SaaS solution, furnishing this type of configurability, customization, and control is a big win for your clients and your sales team.
Categories: SaaS