If you think building enterprise systems is complex, then building SaaS products can be even more complex, simply because you have to service multiple organizations, each one bringing its own idiosyncratic requirements, and of course, the inevitable Service Level Agreements (SLAs). Essentially, engineering SaaS products is not all that simple and it typically takes longer to develop an ondemand product.
Hence, one needs to be really sure about the engineering aspects of moving to SaaS before making the transition. Remember, SaaS isn't shrink-wrapped desktop software and it demands a unique architecture to be easily customizable, and extensive user interface design to allow users to successfully adapt to a hosted SaaS application.
The purpose of this paper is to put forth some fundamental elements that can be used to achieve the goal of right-engineering your SaaS product. It consolidates the technology strategies to build on-demand products and is the result of helping several ISVs transition to an on-demand environment. Of course, these technical guidelines are not specifically developed for SaaS; in fact, some of them have been around for several years and are widely used today to build enterprise products. This paper also provides you with a good starting point for your engineering strategies to achieve SaaS.