Abstract
A release is a collection of authorized software changes that include new functionality, changed functionality, or both, that are introduced into the production environment. Agile software development results in many small releases delivered as needed, as opposed to big-bang releases that deploy large amounts of functionality at regularly determined intervals. Agile software development without a detailed standard process model encompassing the overall release management activity can result in an emergent release schedule (which is almost as bad as not having one), potential bottlenecks for resources, and problems handling genuine emergency releases. Changes to software systems must occur in a disciplined and controlled way. Otherwise lack of control over the delivered changes will lead to deteriorated system quality. Change Management is often in conflict with Agile in that Change Management requires a big, heavy, schedule, dates, content, and deployment resources specified well in advance. This is a major attraction of big-bang releases; that their deployments seem to be easier to manage. In a fast changing Agile environment the survival of the software organization may be affected. There is no reason to abandon Agile development for the sake of a disciplined and controlled release process. Our proposed pattern language captures the expertise necessary to create an orderly, well thought out, end-to-end release management process that should help deliver software releases in a disciplined and controlled way within an Agile development environment.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have