After a long time, I got the opportunity to read a new book, that I would have loved to read several years back aptly named – The Design Of Design. Several decades back, the onset of a discipline called software engineering started with a big problem of software project getting delayed inside IBM and Fred Brooks at the successful completion of the engagement came out woth a seminal work – The Mythical Man-Month. Over the years I must have advocated reading the book to several hundred friends and colleagues at various points in time. Much like technology icons aka Bill Gates , Steve Jobs, Sergey Brin & Larry Page whom we keep referring to, the software engineering field has such icons – Fred Brooks stands taller than most others in the gallery of all time software engineering greats.
Let’s look back a little – at a time when everyone thought computers were hardware and every decision revolved around this thinking, Fred Brooks created history with the publishing of Mythical Man-Month and started the body of work called software engineering. This is a discipline that millions of engineers around the world have over time embraced, practiced and also advanced the state of the art and in many ways contributing to the growth of process, technology and business. It would be hard to find a well regarded software engineer not knowing or resonating to Brooks laws ‘adding more people to a late project makes it later’. I have heard comparisons between Moore’s Law in hardware engineering and Brook’s Law in software engineering.
Be that as it may , the context here is : Well now, 35 years later, Frederick P. Brooks, Jr. has written another book, aptly titled The Design Of Design this time not about software in general but about design. Lets look at this : Design is at the core of things that influences everyone. If design is to be seen as “planning for execution or a build “, then most of us keep doing this at all the time – some may be more specialized – lets say designing the next generation smartphone to relatively more simpler cases. From designing garage at home to kitchen remodeling to design software, there are multiple patters of learning to distill which can be potentially leveraged across a wide domain of disciplines. Why do we need to focus on design now: Fred explains team designs are becoming complex artifacts and globally distributed teams, sophisticated computer models and most of the designers are divorced from implementation and end use.
The 400+ page book is distilled with wisdoms of design principles – it captures the essence of design learnings of six decades of Fred Broks experience in design across as he brings out in five different media – computer architecture, houses, software, books and organization. It’s a revelation to me to know from the book that Fed Brooks wrote a paper on analytic design of automatic data processing systems in 1956 – much much before even I was born! Brooks says that he has tried to capture the invariants among the mental processes, human interactions, the iterations, the constraints etc. What a rich base of experience and a superlative effort to bring out the golden braid of thinking across time and space!
The case studies section of the book starts with this great quote: ‘In retrospect, most of the case studies have a striking common attribute: the boldest design decisions, whoever made them, have accounted for much of the goodness of the outcome. These bold decisions were due sometimes to vision, sometimes to desperation. They were always gambles, requiring extra investment in hopes of getting a much better result.’ One does not need to look beyond the success story of Apple to appreciate this.
I especially liked the essay called “What Is Wrong With This Process?” This is again popping the classical question – do you take a waterfall model or settle for an iterative design – This is often a question in every program that I get to provide oversight around the world. Passionate arguments on either side makes this a difficult situation to judge and I feel very relieved that Fred Brooks decides in favor of being on the iterative side: he points out that even if the goal were fixed and known … “design would still be iterative, because the constraints keep changing.”
His conclusion : “The waterfall model is wrong and harmful . we must outgrow it” . In an yet another revelation of a very powerful mind, Brooks brings out the the deep rooted support for waterfall model Is hinging on concepts like Herbert Simon’s Rational Model – supporters clamor for frozen design . Brooks comes down heavily on this approach pointing out that effectiveness is far more critical than embracing a simple process of building to frozen design.The section talking about design as a collaborative process is a fascinating read. Different perspectives for thinking about design, visions for designing houses, the role of individual design talent (process can’t replace greatness!), and how great designers can be nurtured. In these, a discerning reader would notice the pearls of wisdom thrown in all around.
By taking a broader view of design, the book makes reading more interesting and the message appeal more wide. Each chapter in the book starts with various interesting quotes, and starts the first chapter with a quote from Francis Bacon:
[New ideas would come about] by a connexion and transferring of the observations of one Arte, to the uses of another, when the experience of several misteries shall fall under consideration of one mans minde.
In the collision of several thoughts and streams originate new ideas and it’s a fascinating journey that Fred Brooks takes us in the field of design with his rich tapestry of experience and a wide variety of annotated case studies. This is a journey of understanding – some may like all the ideas, some may like to disagree with a few but overtime things change but our persectives get more grounded when we begin to base our understanding and learning on wider and far rooted experiences such as brought out by Fred Brooks herein.I imagine most designers who read this book will be software developers and few will be involved in OS design or design of physical structures. Brooks would argue that there are universal ideas that really make design transcend particular design domains, and in that sense the cases studies he provides are certainly useful. Obviously, one needs to extend the ideas here to the context in which they operate. Overall, Brook’s writing style is excellent, entertaining and thoroughly researched. Seen from this perspective, this is a great book for a reading club with computer scientists, architects, system thinkers and such experts across disciplines.