Edit AllPages

A SimpleDesign is the bare minimum design needed to satisfy the requirements. In other words: it does not have unnecessary complexities. Do not confuse this with ReadableDesign! A simple design does not mean that it is easy to understand. In fact, it can mean quite the opposite. Some may disagree with this definition, but I am making this distinction to keep it simple. ;-)

Taking It Too Far

The absolute simplest design is the smallest design possible: the fewest number of classes, methods, and lines of code. This results in a design that will be difficult to read and inflexible to future changes. To avoid an overly simple design, make sure to refactor to a ReadableDesign and FlexibleDesign.