Reversible And Risk Free

You want your changes to be reversible, and risk free. Nothing is risk free, but your changes will be low risk if you can reverse them. Then, you can make more changes, and have more fun.

Code

This is a solved problem. SCM systems make your code changes reversible. Use a good SCM system and understand your code contribution process.

Servers

Making server changes reversible is more challenging.

  • Roll back. At the very minimum, you should always be able to roll back any production change or distribution, with a script.
  • Later, you should be able to build the current version of any server, on demand.
  • Finally, you might want to be able to build any version of any server, with a test database, etc.

Data

Don't change your schema by prematurely changing or overwriting data. Instead, add new fields, and make new copies of data. You can always reverse by ignoring it. Storage is cheap compared with peace of mind.

Features

You should be able to switch new features on and off. If a feature causes a problem or a negative response, you can turn it off. This capability is also useful through the entire development and testing process.

Thoughts and mental commitment

Tactical: If a change causes a problem, do not try to fix it on the fly. Reverse it, and fix it in a thoughtful way. This is a big change for some people.

Strategic: Do not cling to your ideas. Nothing is constant except change.