Defensive Programming
Murphy's Law: If anything can go wrong, it will.
Defensive Programming:
    Redundant code is incorporated to check system state after
modifications
    Implicit assumptions are tested explicitly
23