Three Flaws in Software Design - Part 2: Not Making the Code Easy to Change