Habit_ look for your heuristics and competing heuristics
Heuristics competing against Favour Composition over Inheritance
Heuristic: Use inheritance when template pattern fits Heuristic: Use inheritance when is-a Heuristic: Use inheritance when behaves-like-a Heuristic: Use inheritance when and only when there is inheritance in the domain Heuristics competing about reality
Heuristic: Don’t model reality, evaluate for usefulness…driven by the domain Heuristic: immutable in reality => immutable in code invoice - ready, signed off, sent out, does not change anymore Heuristic: when your solution involves breaking&entering, find another solution Heuristics to help find competing heuristics...