Thursday, April 24, 2014

The Apostle of Conceptual Integrity

Conceptual Integrity Part 2

[note: Click here to read Conceptual Integrity Part 1]

TheHackerCIO bit off more than he intended.

After yesterdays post about Conceptual Integrity, he rummaged around the library to dig out The Mythical Man Month, that classic Geek tome by Frederick P. Brooks. While I was at it, I realized that I bought, but never finished reading his follow on work, The Design of Design.

I last read the Mythical Man Month on it's 20th anniversary -- 1995. And the Second edition features an essay in which he notes that the Central argument (of the whole book) is Conceptual Integrity! And, indeed, following the index, there are 13 entries. There are 15 more in The Design of Design. And far from repudiating the idea as outdated, he states in that essay that "Today I am more convinced than ever. Conceptual integrity is central to product quality. "

So, the series is going to have to be lengthier than I had initially imagined. This topic is one of the great ones, and it enters into direct opposition to some rather highly touted modern approaches, namely so-called "Patterns" and "Pattern Languages," and certain agile and TDD approaches, which explicitly reject attempts to architect things, and prefer to write something that "works" and slowly refactor it into a final product.

Today, I'll just put forth the minimal essence of his theory. I can simply use his 2nd anniversary chapter "Propositions of the Mythical Man Month: True or False," which he abstracted and condensed to challenge people to examine and test. I count 7:

  • A sharp team is best -- as few minds as possible.
  • A team of two, with one leader, is often the best use of minds.
  • Conceptual integrity is *the* most important consideration in system design.
  • To achieve conceptual integrity, a design must proceed from one mind or a small group of agreeing minds.
  • Separation of architectural effort from implementation is a very powerful way of getting conceptual integration on very large projects [Small ones too].
  • If a system is to have conceptual integrity, someone must control the concepts. That is an aristocracy that needs no apology.
  • A conceptually integrated system is faster to build and to test.

Compare this to the propositions of Paul Graham:
  • Design usually has to be under the control of a single person to be any good. 
  • You can stick instances of good design together, but within each individual project, one person has to be in control. 
  • After the talking is done, the decision about what to do has to rest with one person.
  • A lot of the most famous scientists seem to have worked alone. 
  • Design by committee is a synonym for bad design.
  • Good design requires a dictator
  • Good design has to be all of a piece
  • If a design represents an idea that fits in one person's head, then the idea will fit in the user's head too.
Forthcoming: Part 3

I remain,

TheHackerCIO

No comments:

Post a Comment