.comment-link {margin-left:.6em;}

{Sajith M}

May 19, 2004

A Cool Design

The goal of a good object-oriented design is to be a "cool" design---that is, one that requires the engagement of the reader in order to make sense.
Too many designers and methodologies seem to push the notion of over-specifying a design. Provide too many details and the design becomes "hot". Think really hot. Think melt down.
The more explicit the design is, the less freedom you (or anyone else) have to implement it. The code becomes a brittle slave to the design; inflexible, and software rot can start to set in.


Thus spake The Pragmatic Programmers on this page.

A lot of people who are entrusted with the responsibility of designing an application seem to fill in tons and tons of details. Thus leaving your average coder Joe with absolutely nothing to do, but slavishly translate the design into code with no need to think. Reminds me of Assembly Line Manufacturing. Is our software industry (that is supposed to be mentally challenging) headed in the same way. I would hope not, but the more and more explicit designs make me fear otherwise.