Raja Jasti’s Blog - Renaissance Thinking

May 24, 2010

Requirements for SaaS companies

Filed under: Internet, Technology — Raja @ 11:20 am

SaaS (Software as a Service) is all the rage these days. But what does is take to be a SaaS provider? GigaOm takes a good post on this topic.

In order to become a sustained market leader in SaaS, software companies need to focus on building and delivering a highly efficient service to their customers without spending significant money on the underlying infrastructure (cloud or otherwise). A poor architecture will underutilize server resources, making software costly to deliver.

Feature-wise, most SaaS applications have the ability to quickly provision new customers to the system as well as to manage subscriptions in order to identify the types of application functionality they’ve purchased access to, metering systems to track what was used so they can be billed appropriately, and the ability to roll out upgrades to a live environment. The addition of such features could take anywhere from six months if the goal is to “just to get by” to well over a year if it’s to reach full SaaS stack maturity.

To be a market leader, however, companies must be willing to go the distance and attempt to reach full maturity as quickly as possible. Architecturally, this means: 

Handling multitenancy: The days of managing and executing data for a single customer at a time are over. To succeed in the cloud, software companies must be able to simultaneously recognize and handle requests from many customers (and their associated end users) at once. From a delivery standpoint this means one instance of your SaaS offering must segregate customers efficiently and offer them their own unique experience, despite sharing an instance of the software and the underlying resources. From a technical standpoint, this massive efficiency of scale adds significant complexity, and, as with most fields, complexity is money. 

Scale-out: In order be able to meet the aggregate demand of all customers, not just the largest, the software has to be able to utilize the elastic capacity offered by cloud infrastructure such as EC2, to give them the ability to scale-out each of their components independently. Simply running on EC2 doesn’t mean your application can scale infinitely, but that your application has infinite resources at its disposal if it knew what to do with them and how to manage them. And knowing what to do with an infinite number of resources requires highly complex software architectures that most applications simply don’t have. Maintaining a level of abstraction from the underlying hardware, and being able to dispatch requests from any user to any part of the network provides the foundation for such scale-out. 

Customer management: Of all of the cloud’s distinct advantages, among the most prominent are its superior operations and customer management tools such as customer provisioning, upgrade engines and monitoring. Granted, such tools have to be built into the core architecture, but by allowing customers to track their end users’ activities, they provide a path to stable and recurring revenue streams. Customer provisioning systems even allow a software vendor to seamlessly “turn on” a new customer without impacting existing ones.

It takes more than just building web based version of desktop software to be a good SaaS player. The SaaS customer value proposition is about reducing the friction of  buying, using and managing applications and solutions.

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress