Good Abstraction Requires Experimentation

It is difficult to "engineer" good abstractions up front at an isolated desk. Generally, one has to test, learn, and change to get good abstractions. Rarely is a good abstractor the most knowledgeable about a domain. It takes a combination of domain knowledge, experience/skill in abstraction, and time-testing. Stakeholders must be willing to experiment, and this includes the costs of failures on the road.

(Note that this is talking about making good abstractions, not merely a successful project. Abstraction allows the next level of automation beyond merely having a working product.)


EditText of this page (last edited February 4, 2006) or FindPage with title or text search