Software as a Service Development Lifecycle and the Cloud
June 8, 2012 2 Comments
October 2011 I coauthored a whitepaper on the subject of the software as a Service Development Life Cycle (SaaS DLC). It was published at InfoQ.com—an ‘independent online community focused on change and innovation in enterprise software development, targeted primarily at the technical architect, technical team lead (senior developer), and project manager’.
The SaaS Development Lifecycle (SaaS DLC) is an adaptation of the traditional iterative software development process with additional important phases added. These additional phases—Evaluation, Subscribing, and Operations—are less prominent and implicit for on-premise deployments. However, the activities performed during these phases become critical success factors for a SaaS development and deployment.
The whitepaper defined all the actors and activities to be performed in each phase as well as the business and technical inputs and the output decisions and deliverables resulting from the phase. You can read the full whitepaper here. There are, however, a few points that I want to emphasize concerning the phases and phase details that are different when approaching your first cloud project.
First, in the interests of full disclosure, you should know that I make my living helping customers move applications (or parts of applications) to the cloud. That incudes helping them make such decisions as what cloud platform to adopt and what applications or application components would benefit from being moved to the cloud. (See my previous blog post: You Just Might Be a Cloud App.) I feel strongly that your first cloud project, like projects involving any new platform, should have the guidance of an architect or consultant specializing in that platform.
During the envisioning phase, where cusiness inputs are defined, one of those inputs should be collateral on the chosen cloud platform (or platforms from which a selection will be made). You will probably also want to review research from sources like the Burton Group, Gartner, and Forrester concerning the economics of cloud computing and how existing cloud platforms compare.
During the platform evaluation phase (which is new with the SaaS DLC), you will determine each alternative platform’s fitness for the service. Deliverables from this phase should include a platform comparison that includes considerations such as economics, capability, supportability, security, and compliance. Cloud platform comparison results from the operations perspective should include considerations such as reliability, availability, scalability, performance, and disaster recovery. If a proof-of-concept (POC) is part of the platform selection strategy, then POC results encompassing both functional as well as non-functional aspects of the prospective service should result. If the POC is based on, or entails a subset of, an application that you have already targeted for a move to the cloud, then a useful output of the POC can be a refined architecture that can be implemented on the selected cloud platform.
In the subscribing phase (which is also new with the SaaS DLC), you acquire a production quality platform subscription. Deliverables from this phase should include your backup, recovery, and disaster recovery strategies; subscription management strategy; and production support strategy. Most of this is understandable. The new factors—such as subscription management—stems from the pay-as-you-go operating expenditure (OPEX) charging model that is new to cloud-based applications as opposed to applications that are run in your own data center which is based on a capital expeditor (CAPEX) cost model. When it comes to production support, existing operations management tools need to be extended to encompass cloud-based assets or unique cloud-management tools have to be acquired or developed.
While the initial SaaS projects require more emphasis on cloud provider evaluation, subscription acquisition, and operation, subsequent SaaS development efforts can leverage the know-how acquired previously thereby allowing the project teams to short circuit the evaluation and subscribing phases.
The SaaS DLC described in this paper important for software companies building software to offer up as services to consumers and other businesses. It is equally valid for services provided by enterprise IT departments to their internal business units. It is pretty clear today that even enterprise IT departments must start looking at themselves as service providers and act accordingly.