• Objecten moeten verantwoordelijk zijn voor zichzelf en moeten deze verantwoordelijkheden duidelijk gedefinieerd hebben • Hoge Cohesie: De operaties binnen één routine moeten sterk gerelateerd zijn • Lage Koppeling: De relatie tussen verschillende routines moet zwak zijn • Zoek wat varieert en encapsuleer het • Probeer bij een project gefocust te blijven op het algemene probleem en laat je niet teveel afleiden door details. • Gebruik Overerving enkel selectief! • Probeer duplicatie van code tot het minimum te herleiden.