I love Trello. For those unfamiliar, Trello is a SaaS kanban board / taskboard. It’s free (mostly) and is virtually idiot-proof to set up and start using. You don’t have to adopt the kanban methodology […]
DevOps. The next saviour of the world. A combination of agile delivery and super-effective provisioning scripts with a sprinkling of software-defined (virtual) infrastructure. Whilst ITIL v3 and 2011 seem (on the surface at least) to […]
I recently discussed service support / operations on twitter with someone frustrated at being asked to provide support for a public cloud service he had very little ability to. Not technical capability, because he seemed capable enough, but access to the systems to do more fundamental fixes. We didn’t get far into the details, but it seemed he was being asked to deal with something which hadn’t been thought about when the service was provisioned.
This is sadly not an uncommon situation among support teams who often have no say in the choice of system/service, no time to get familiar with it, and no means of pushing back on critical gaps even if they do get a chance to see it beforehand. These are often gaps that a 5 year old could often spot, let alone experienced engineers but which seem to be frequently ignored by people whose shopping list only has one thing on it: functionality.
There are many reasons why releases fail. Maybe your test pack wasn’t scoped properly or that harmless application patch from the vendor removed a key piece of functionality. All of these pale in terms of avoidability and regularity in comparison to the following conversation:
Requestor: “I want this change to go into the release.”
Release Manager: “Sorry, the scope has closed, we’re scoping the next one though.”
Requestor: “But that’s too long to wait, it has to go in NOW.”
Let’s generalise for a moment. Release management usually comes into effect in two significant circumstances:
1. When you want to bundle changes into a package
2. When you want to fully ‘transition’ a service into operation and deliver the associated support and knowledge etc
In both of these circumstances, the output of the release will be an amplification of the inputs, ie. the component changes.
1. High Level
Aligned to your release model, details the major stages of a release: plan, build, accept and deploy and how the lower level activities fit within that: scope, requirements, build & test, acceptance, implementation, early life support and also show checkpoints (scope finalisation, build completion) and show gateways which align to your other processes such as governance, Change Advisory Boards etc). It’s also worth showing which environment various activities take place.
Build a timeline. Start from the ‘go live’ checkpoint at day 0, work backwards (T-) and plot in the major stages for an average release type (you may need one per model) and then plot other activity: environment management (data refreshes, interface switching etc), comms plan and enough lower level activity.
This high level lets you see the whole picture and start identifying areas of contention. If you have release cycles which last for several weeks and which are implemented monthly, you can expect some overlap. Examine these areas of overlap, it’s not uncommon to find the same teams doing different activities at the same time. Does this work for you?
Something I’ve run up against several times at several different organisations is making sure that the release process, policy and schedule is fit for purpose not only in terms of being compliant with best practice (such as ITIL) and controls (such as COBIT) and any other requirements within the business, but also to ensure that your change and release structure can cope with the volume of change.
Let’s assume your organisation has two broad categories of changes which are bundled into releases – new business functionality in the form of BCRs (Business Change Requests) and problem fixes.
We’ll also assume that you have a monthly release model which includes:
1. Scope and Design finalisation (1 week)
2. Build & Test finalisation (2 weeks)
3. Running an automated regression pack (1 week plus 2 days for final fixes to go as deltas on top of the main release)
4. Cutover and implementation activity (3 days)
5. Early Life Support (2 weeks) (ELS is an ITIL term which used to be called release warranty – in essence, a period of enhanced support following a release or where incidents/problems follow an accelerated support model compared with normal Business As Usual support).
I’m currently doing some work planning releases for the next 30 months or so based on some standardised models etc (more on this in another post). I’m scheduling 2 main types of release: functional releases […]
This blog will show you how to implement change, release and configuration management. It’s broadly ITIL V3 aligned. It includes some concepts and tools that work for me, and may do for you with some […]