Compile cleanly at high warning levels
Strive for Logical Completeness
Avoid errors of ommission
Avoid errors of addition
Ensure that switch statements have a default clause