Continuous SCRUM
Puneet Agarwal · 2011
Hosted software-as-a-service products provide an opportunity to provide consumers with continuous deployment of new features, as opposed to scheduled version upgrades as is the norm for products installed on-premise. In order to exploit this opportunity, a SaaS provider needs to adopt an agile process that is capable of releasing new features rapidly. The SCRUM [5,6] process is ideally suited for this purpose: However, when SCRUM has been used for agile development of an installed product, parallel, overlapping 'sprints' are executed by separate teams, each dealing with short, medium, and longer-term enhancements to the product[3]; with the result that version upgrades are therefore easier to manage. In contrast, in the case of a SAAS product, version upgrades are no longer a constraint, so we can do better. In this paper we describe 'Continuous SCRUM', a variant of Type-C SCRUM, augmented with engineering best practices, in a manner ideally suited for managing SAAS products. In our approach, bug-fixes, minor enhancements, as well as major features are released continuously, on a weekly basis by a single team, in contrast to "Meta-SCRUM" [3]. We also present field data from our experience with using Continuous SCRUM for a hosted platform-as-a-service product for more than two years. Our experience reinforces other recent evidence [11] that rapid, smaller releases are often preferable to infrequent, larger ones. Continuous SCRUM provides a mechanism to achieve and sustain a rapid release cycle, for SAAS products as well as, we believe, for custom applications developed in-house.