1. 여러분의 소프트웨어가 고객이 원하는 기능을 하도록 하세요. 2. 객체지향의 기본원리를 적용해서 소프트웨어를 유연하게 하세요. 3. 유지보수와 재사용이 쉬운 디자인을 위해 노력하세요. 고객은 프로그램이 동작할 때 만족스러워 합니다. 고객은 프로그램이 계속 잘 동작할 때 만족스러워 합니다. 고객은 프로그램이 업그레이드가 가능할 때 만족해 합니다. 프로그래머는 자신의 프로그램이 재사용될 수 있을 때 만족스러워 합니다. 프로그래머는 자신의 프로그램이 유연할 때 만족스러워 합니다.