Defensive Programming: Introduction