Enforce predictable problems in production to be addressed
before they actually have an impact in production (sounds like
sales talk, no?). You might think this is just "impact analysis",
but that is not it:
Impact analysis is what you do in the
plan-phase (we all know that, right?).
Audit (= name of the phase we use for it), is
around the time that the developer thinks/claims to be ready.
Something like "unless there is anything else that may have
happened in production while I was working on my change, I'm done
and recommend to move forward". Think of things like "version
regression issues". Eg because last night a fix was applied to
production and you didn't retrofit that fix, so if you move forward
with your change, you'll wipe out the fix again ... bad luck if you
Give me a red button, so that if anything else fails (and
production is impacted), I just have to push a magic button, be
patient (for a few secs) and be 100% sure a rollback completed with
0 rebuilds of any kind (= Backout is the name of
the phase we use for it).
This boils down to "component level backups" of any
files/components you will be updating by your change in production,
whereas these backups are made at the very moment the change is
going to be applied. and this for any type of artifacts included in
If later on (5 mins, 2 days or 1 week later) something goes
wrong in production, and it turns out to be caused by your change,
all you have to do is to have an automated procedure (the red
button!) in place that you can launch, and which simply restores
the backup you should have available.
Attention, if there were database updates involved, this backout
may not be an option anymore. While things like "backups overlaid"
(because of concurrent changes/fixes got applied to production) is
another scenario where the red button is no longer available.