In my professional career, I have attempted at times to go back to school and take a course here or there to learn new skills or reinforce practical knowledge. So far none of those attempts has gone all that well. Instead, I end up finding books to bolster those areas I want to know more about. One such book is The Design of Design: Essays from a Computer Scientist by Frederick P. Brooks, Jr.
Back in 1975, Brooks published a groundbreaking book about software project management called The Mythical Man-Month: Essays on Software Engineering which changed how many managers began to think about how to best use their human resources on software projects. The key idea was that more people added to a project does not make it go faster, and in fact will make the project fall even further behind. Though the idea of "more people = faster" still exists in some companies, most modern project managers understand Brooks' message.
The Design of Design takes a similar approach to explaining what design is and how we can achieve better, more effective designs. This book should be mandatory reading for any and all individuals involved in software projects. Through a practical approach, Brooks applies layer after layer to show what works, what doesn't work, and why. Then he provides case studies that go across different disciplines such as architecture, remodeling, computer system architecture, and operating system design.
He starts by defining design, taking the definition from the Oxford English Dictionary: "To form a plan or scheme of, to arrange or conceive in the mind... for later execution." He then breaks it into the recursive phases of Idea, Implementation, and Interaction. As he says, "Implementation creates a space in which another cycle of design must be done. Thus Mozart Implemented his opera Idea with pen on paper. The conductor, Interacting with Mozart's creation, conceived an Idea of an interpretation, Implemented it with orchestra and singers, and the Interaction with the audience completed the process." Far too often I think we consider these steps in isolation, which simply isn't the way the world works.
He goes on to describes the Design Concept as providing the two main benefits of conceptual integrity and aiding in communication. Without using conceptual terms such as "elegant," "clean," and "beautiful" when describing items such as buildings, music, or the iPhone, how would we know what to strive for? And those concepts help us when we try to communicate our designs to others with common language.









Article comments
1 - Mark Saleski
... most modern project managers understand Brooks' message
yes, but folks in the management chain above the pm do not.
2 - Fitz
@Mark Saleski - I have to agree to some extent. I've worked largely in big corporations and sometimes I've been lucky with upper management getting it and other times not. As with everything in life, there's a balance between progress and congress. :)
3 - Mark Saleski
yes, well...we know why it happens. it looks like something important is going to be late and pressure is applied to "do something". sadly, that "something" could have been dealt with early on in the project with better analysis of requirements and more conservative (read: realistic) schedule estimates.