More on this book
Community
Kindle Notes & Highlights
A model is a simplification. It is an interpretation of reality that abstracts the aspects relevant to solving the problem at hand and ignores extraneous detail.
That subject area to which the user applies the program is the domain of the software.
The model and the heart of the design shape each other.
The model is the backbone of a language used by all team members.
The model is distilled knowledge.
Good programmers will naturally start to abstract and develop a model that can do more work. But when this happens only in a technical setting, without collaboration with domain experts, the concepts are naive. That shallowness of knowledge produces software that does a basic job but lacks a deep connection to the domain expert’s way of thinking.

