…. and go right into Continuous Delivery
A tanker cannot turn fast
Large Projects are like Tankers. Docking needs to be planned and controlled. Set Direction and lower Speed. It is all about Navigation.
What does that mean:
Change Control
Even the smallest obstacle may cause your ship to end up stranded rather than docked. Even small changes may have unexpected and unpleasant side-effects. That is why three things are important: Change Control, Change Control and Change Control.
Any change to the code, data, environment or how the system is deployed is considered to be a Change. In the last phase of the Project, before going into Production, only critical defects should be fixed.
When changes are made it is important to have enough time and resources to retest and regression test the package before shipping. The purpose is to achieve a known quality of the product before going into production. Known defects are better than unknown defects. The known defects may be planned for and handled. Unknown defects are unpleasant surprises and fixing them in a hurry may lead to more defects.
How to achieve controlled docking and prepare for Continuous Delivery: Side Tracking
Change Control at the end of the Project needs to be rigid and only critical defects should be fixed. Then what about all the serious, but not critical, defects and all the nice-to-haves ? The End Users should not wait too long to have a better performing user friendly system. This may be achieved by using a Side Track.
All the critical defects should be fixed and tested in a Fast Track, whereas all the other defects should be fixed and tested in a Side Track. There is one code branch for the Fast Track and one for the Side Track. Of course, all the Fast Track fixes need to be merged to the Side Track as well. To have controlled and efficient Pipelines, there should be a Test Environment Stack for each of the tracks, but usually it will be sufficient to have only one Staging Test Environment for the last verification of the Package.
Using this approach the large Big Bang/Go Alive may be delivered safe and sound, reducing risk to the possible minimum. There may still be some surprises, but having achieved a known quality of the product, the necessary firefighting is reduced to a minimum. When firefighting – despite of all precautions – is needed, the Fast Track is used to get the fixes out in a controlled way.
Then – when the Project Delivery is in Production and is proved to be stable – the release in the Side Track is packed and shipped, having full control.
And from this point on, the Fast Track / Side Track Pipelines may be used to obtain Continuous Delivery. Changes may then be delivered several times a week – if needed or wanted.