Alternative Definitions of Simple Design
Since the four elements of simple design express high-level goals instead of low-level rules, they allow for a great degree of personalization in how they are expressed. That's because everyone uses their own favorite set of principles and values to express what is key to achieving these goals. Hence, we have found several different versions of the elements, each one different, yet all expressing the same goals. Here are a few of them:
Definition #1
- Passes the tests
- Reveals intention
- No duplication
- Fewest elements
Martin Fowler, BeckDesignRules: https://martinfowler.com/bliki/BeckDesignRules.html.
Definition #2
- Passes all the tests
- Expresses every idea that we need to express
- Says everything once and only once
- Has no superfluous parts
Definition #3
- Unit tests tell you when you are done
- Self-documenting code
- Once and only once, don't repeat yourself, redundancy...