Domain-Driven Design
> >
BrooksOnEssentialVsIncidentalComplexity

Mon Dec 8, 2003 2:13 am

While reading Domain Driven Design, I was reminded of a couple of
essays from Fred Brooks, in particular "No Silver Bullet-Essence and
Accident in Software Engineering" and "No Silver Bullet, Refired". In
these essays, Brooks discusses problems in building software and
evaluates some proposed solutions. The part that reminded me of DDD
was Brooks' separation of software development tasks into two
categories, as follows:

"All software construction involves essential tasks, the fashioning of
the complex conceptual structures that compose the abstract software
entity, and accidental tasks, the representation of these abstract
entities in programming languages and the mapping of these onto
machine languages within space and speed constraints", in "No Silver
Bullet-Essence and Accident in Software Engineering", (included in
"The Mythical Man-Month, 20th Anniversary Edition", p. 180)

He clarifies this quote a bit in his review of that essay:
"Some have been confused, however, by the terms accident and
accidental, which follow an ancient usage going back to Aristotle. By
accidental, I did not mean occurring by chance, nor misfortunate, but
more nearly incidental, or appurtenant", from "No Silver Bullet,
Refired", (also TMMM, 20th aniv. ed., p. 209)

The main assertion of "No Silver Bullet" was that "there is no single
development, in either technology or management technique, which by
itself promises even one order-of-magnitude improvement within a
decade in productivity, in reliability, in simplicity", and that "it
appears that the time has come to address the essential parts of the
software task, those concerned with fashioning abstract conceptual
structures of great complexity." (pp. 181, 180)

As in my understanding of DDD, Brooks too was identifying the domain
as the heart of software, where developers need to focus their work.
He even mentions a need to study human language abilities for use in
developing software (pp. 224-225).

Anyway, I thought the shared concepts between the two was
intertesting, and reinforces their validity.

TimHuske
----

BrooksOnEssentialVsIncidentalComplexity is mentioned on: ThreadView



VeryQuickWiki Version 2.6.3 - HTML Export