
If someone came to me this second and asked me what the two most important books to read are in creating new software services, I would easily and emphatically state two books by Fred Brooks.
Our professor in undergraduate senior design class, Elliot Soloway, made us read “The Mythical Man Month,” and the “Cathedral and the Bazaar” despite the fact that the MMM was already over a decade old at the time… yet still hyper relevant (and still is today).
Now, Fred Brooks gives us another super practical book in The Design of Design
. This is one of the most useful books for developer/designers to read… I have no idea why I waited so long to check it out. I admit I didn’t read cover to cover, but did skim its entirety and read certain chapters which intrigued me and thought would help me the most. As many virtual sticky notes as another favorite of mine, “Founders at Work“.
Channeling my Jon Stewart, here are the “zen” moments:
The typical dynamics of two-person design collaboration seem different from those of multi-person design and solo design. Two people will interchange ideas rapidly and informally, with neither a protocol as to who has the floor nor domination by one partner. Each holds the floor for short bursts. The process switches rapidly among micro-sessions of proposal, review and critique, counterproposal, synthesis, and resolution. There is typically a single thread of idea development, without the maintenance of separate individual threads of thought as in multi-person discussions.
Two pencils may move over the same paper with neither collision nor contradiction. “As iron sharpens iron,” each stimulates the other to more active thought than might occur in solo design. Perhaps the very need to articulate one’s thinking—to state why as well as what— causes quicker perception of one’s own fallacies and quicker recognition of other viable design alternatives
…In retrospect, many of the case studies have a striking common attribute: the boldest design decisions, whoever made them, have accounted for a high fraction of the goodness of the outcome. These bold decisions were made due sometimes to vision, sometimes to desperation. They were always gambles, requiring extra investment in hopes of getting a much better result.
This one is particularly appropriate to people working on startups in the software world:
Even if the goal were fixed and known, all the desiderata enumerated, the design tree known precisely, and the goodness function precisely defined, design would still be iterative, because the constraints keep changing.
Moreover, clean interfaces enhance the joy of the work. Designing is fun; ironing out misunderstandings with peers is usually not. When designing, one feels progress happening; when resolving interface misunderstandings, one feels slippage. Clean interfaces give multiple designers each the joy of ownership, of the privilege of signing a piece of work. They also facilitate sequential ownership, as small components flow together into recognizable larger subsystems.
I enjoy how the book seems to resolve Descartes’ view of the world (Rationalist) vs Locke’s (Empiricist) — There’s a lot here that’s being established in the canons of “lean startup” methodology over the past 2 years that could benefit from an understanding between the two schools of thought.
I realize the value in what Turner Whitted calls “progressive truthfulness”.
One of the things that I love the most about this book is the quotes at the beginning of every chapter. There are some really well curated ones in here. This one is my favorite… for obvious reasons:
Every man who rises above the common level has received two educations: the first, from his teachers; the second, more personal and important, from himself.
EDWARD GIBBON [1789], MEMOIRS OF MY LIFE AND WRITINGS