Saturday, May 16, 2015

Scaling Agile: Succeeding in Release Management

This post on ‘Scaling Agile’ is to present a list of critical factors to succeed in release management.  What makes large-scale Agile teams capable of ensuring successful product releases? Here is the list.
  1. Roadmap and theme for releases – Have a road map and theme for all releases or as many you can envisage.  This is one of the key responsibilities of product managers and sponsors.
  2. Tech debt management -  In addition to having measurable Definition of Done and Acceptance Criteria to measure the success of Sprints, have a consistent focus on technical debt management.
  3. Don’t let a hardening Sprint result in a chaos!  - Plan hardening Sprint well and execute them to preserve the integrity of your product release.  Don’t let a hardening sprint result in a big mess leading to an unexpected upsurge of defects.
  4. Test Automation – The strength or weakness of test automation will reflect directly on the team experience, challenges and results of release management.  Keep this in mind.
  5. Risk-based Testing – It is important to focus on risk-based testing by identifying risk prone areas or epics or modules and testing them first.
  6. Continuous Integration - You may have continuous integration working very well in development and staging environment.  Make sure that continuous integration is applied in other environments too (e.g. Testing, User Acceptance, and Production).   When you don’t do this, you are going to carry out several manual steps to complete integration. That is going to be time consuming and error prone.
  7. Continuous Delivery and DevOps – Do you want to increase the ‘speed-to-deploy’ in product environment? Think two things – Continuous Delivery and DevOps.  These will improve efficiency and result in cost savings.
  8. Defect Management - Is your defect management process helping you in slicing and dicing data to understand product quality? Does it allow you to predict? Does it allow you to spot missing test cases?  Or are you relying on a basic defect management process that helps you understand defects by priority and severity alone?  Effective (and efficient) defect management is an enabler for release management.
  9. Dependency Management – Understand all dependencies, categorize them and manage them effectively. Do not allow any dependency to create a big surprise and impact release schedule or quality.
  10. Communication & Coordination and Stakeholder Management – These are the non-technical but essential aspects not only for release management but for all software engineering activities. Make sure that the way you communicate and coordinate among teams enables osmotic communication. Also, keep your stakeholders informed of what to expect and how release management activities are progressing. Manage their expectations well.

      No comments: