The other day one of our investors asked us to speak with another of their portfolio companies that was considering moving to a multi-tenant architecture from a more traditional hosted set-up. What does that mean? Right now they host separate instances of their application for each client. They want to move to one platform where each client logs in and sees a "personalized" version of the same application.
Big deal you say... lots of folks do that! What was interesting about the conversation we ended up having wasn't that it was something new and unique, but that many of the insights that proved of value to this other company were taken for granted by those of us that have "grown up" in the "cloud" or in the Software-as-a-Service business. For almost my entire software career I've been in product management for companies offering their product as a hosted service on a multi-tenant platform. In fact, my first entrepreneurial venture (sadly a failure) was because (in part) we were offering SaaS before folks understood what it was. Some of the things that become a natural part of the DNA of a SaaS company are fundamentally different for a traditional enterprise software model.
I don't mean to infer they are in anyway more complicated than the challenges or learnings inherent in "on site" software or custom hosted solutions, just different. As we began "riffing" on lessons learned and risks to avoid it really stood out how different the models are. Some simple examples:
1) Disaster recovery/Fail-over/Upgrade processes. When you are in a multi-tenant model, what happens to one customer happens to all. Have a failure - you are getting calls from everyone, not just one customer. This changes the financial equation in evaluating a fully geo-redundant system (and in our case made it a no-brainer)
2) Reporting. Since tenants are sharing a common platform, is no longer as easy as just watching click trends or aggregated behavior, you have to be able to drill down into specific tenant data (not to mention the usual parameters)
3) Customization. In a true multi-tenant model, everyone gets access to the same features... or at least could be given access to the same features. The trick here is balancing what you add into the platform and how. Inevitably customization requests have to be addressed. Do you make the new "customization" available to everyone? Does it overly complicate either the infrastructure or the user experience? Does it add too much to your cost basis? If only one client wants this feature, what will your cost be to implement and support this one feature across your entire platform?
What's my point here? I guess it was an epiphany for me to see the challenges faced by someone trying to move to a SaaS model. It's not just about the bits and bytes - that might even be the easy part - its about how you approach the market and the DNA of your company. Some of the things that have just grown up as a natural part of my company's way of doing business were completely different than this "traditional" software company.