Thursday, November 7, 2013

The Art of Release Management

Release Management in a fast paced environment requires skills of people management.  Every one's change "Has to go now", "Has client/customer impact" etc., etc.  How does manage the wants and needs of all and keep all happy?  One has to first determine how to evaluate real emergencies that need to go immediately versus those that need to follow the schedule and go during the change window.

The Release Manager first must learn the complete system and how the parts interact with each other.  This way they can see the possible places where additional coordination is needed when projects and prod support are release code on the same cycle.  You cannot allow a prod Support branch release and the trunk release to go out in the same cycle.  they must merge early and test the heck out of the code prior to release.

You have to learn to ask the hard questions of the managers pushing their team's changes in.  What will happen if this change is scheduled for the weekly window versus tonight?  If coordination has not been done who gets delayed?  How do you smooth out ruffled feathers?  Ask the question "What will be the cost of releasing this code this week without all the integration testing completed if the customer finds a bug tomorrow?".  Escalate the issues up the chain in case there is any push back and let the senior leadership make informed decisions.  You have to do it in a way that no one take it  personally.

This is some of the Art of Release Management.

Tuesday, October 29, 2013

What is Software Release Management?

What is Software Release Management?  Is it an art or a science?  Or, is it just something you do - neither an art nor a science? I believe that it is an art as well as a science.

First the science:
Release Management can be described as the science of combining various parts of a system into one.  Understanding how they fall together and then creating a single release working with the project/development teams.  One can use a tool (recommended) or build scripts themselves to pick up the various pieces from wherever they are located to move them into the next stage environment.  It could be as easy as copying and pasting individual files or creating a zip file, deploying the zip file and unzipping.  It could be a 'clean deploy', a 'overwrite deploy', 'update deploy' etc etc.

Now the art part of it:
Release management is also the art of coordinating the various teams so that the resources are available, multiple teams deploying code are not stepping on each others toes, the end-user is aware and ready to accept the new files, the environment is ready to handle the deployment, managing expectations, planning for combining multiple teams' code early if they are touching the same code base, segregating the change types etc etc.  This involves people an hence in my opinion is also an art.

This is just the start of it.