What are best practices in release management in an agile environment?

ne02886's picture
ne02886 asked on March 23, 2011 - 11:23am | Replies (3).

Can anyone shed some light on best practices of when / where/ how to establish the scope of the Release in the Agile Development Lifecycle model?

Our problem seems to be that we can never get to the point when we can nail down what the scope of the release is. When we do, it seems to be last minute and I am sure that this is not the best method for testing.

3 Answers

jptownsend's picture

Lewis,

Irrespective of development methodology, the release scope should be known before the development starts, granted it can change along the way as requirements, issues and defects, and changes are added and removed. If you are saying we know this release is going to be these 5 changes, and towards the end it become 15 changes. This is indicates bad process.

Even though Agile is concerned as much about process as people, it still requires that you follow some semblance of a release plan. Remember that Agile doesn't mean cowboy developing and releasing.

Regards,

Joe

lancelyons's picture

I'm in agreement with Joe.

Even in an agile environment where you might break down a development/testing process into pieces or iterations/sprints you still need to have an understanding of what needs to be released. In fact knowing what has to be released is a pre-requisite for dividing up the work into smaller pieces.

We prefer to define the content in a release up front so we can communicate this to our clients who are eager to know what changes are coming. This doesnt normally lend itself well to releasing items adhoc but its still possible if a good feature branching approach is used.

Sourabh  Chowdhury's picture

Best Practices in release management in an agile environment:

 

  • Define criteria for success

Clear acceptance requirements in both releases and testing will to more reliable releases. The criteria for a successful release can’t be subjective. If it is, you can’t learn from your mistakes and continue to iterate on the release management process to figure out what works best. Product owners, quality managers, and release managers need to define key release metrics and agree to acceptance criteria before moving forward with any new project.

  • Constantly strive for minimal user impact

Proactive testing, active monitoring and real-time collaborative alerting can help you identify issues during a release – many times before a customer will even notice. Coupled with a collaborative incident response plan, the team can quickly resolve incidents and continue along toward a successful release.

  • Get the most from your staging environment

Everyone from product owners to QA should be combing through staging and running tests to identify any issues with a new deployment. As long as your staging environment is nearly identical to production, you can easily find issues in staging before deploying the code to production. A well-designed staging environment will reduce customer impact and help DevOps teams ensure that releases meet acceptance criteria faster.

  • Streamlined CI/CD and QA

By moving QA, automation and testing earlier in the development lifecycle, the DevOps team can identify potential issues faster. This reduces the amount of time spent in feedback loops and allows the delivery pipeline to continue moving forward. The more you can integrate testing with development workflows, the easier it will be to maintain a consistent CI/CD pipeline.

  • Use automation to your advantage

Whether it’s on the software development, QA, or IT operations side of the fence, automation should be used to reduce human error and make day-to-day operations easier for your people. Allowing your team to spend more time on strategic thinking and less time on day-to-day tasks, you’ll be able to consistently deliver reliable services to your customers.

 

Immutable programming causes teams to deploy entirely new configurations instead of modifying existing ones, you’ll reduce errors and bugs that could appear from changing current configurations.

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.