Blog Archives

Review: Software Design Decoded

66 Ways Experts Think, By Marian Petre, André Van Der Hoek, Yen Quach

A powerful reminder on the behaviours required to succeed in software architecture

This is a delightful little book on the perennial topic of how a software architect should think and behave. While that subject seems to attract shorter books, this one is very concise – the main content is just 66 two-page spreads, with a well-chosen and often thought-provoking illustration on the left, and a couple of paragraphs on the right.  However just as with The Elements of Style, brevity indicates high value: this book provides the prompt, the detail can be elsewhere.

The book should be valuable to many: If you want to be an expert software designer, this book provides an overview of the skills and knowledge you need to develop. If you want to recruit such a person, this provides a set of key indicators and interview prompts. If you are in one of those software development organisations which believes that quality architecture can somehow emerge by magic from the unguided work of undifferentiated coders, this might make you think again.

If you are, or think you are, a software architect, this book should act in the same way as a good sermon: it will remind you of what already know you should be doing, and act as a prompt against which you can measure your own performance and identify areas for improvement. It reminded me that I can sometimes be slow to listen to the views of others, or evidence which may change a design, and slow to engage with new technologies, and I will try to act on those prompts.

This book resolutely promotes the value of modelling in software design. Formal models and analysis have their place, but so do informal models, sketches, and ad-hoc notation. The key point is to externalise ideas so that they can be shared, refined and “tested” in the cheapest and most effective of ways, on paper or a whiteboard. We are reminded that all these are hallmarks of true expert software designers. Code has its place, to prove the solution or explore technicalities, but it is not the design.

The book also promotes the value of richness in these representations. Experts should explore and constantly be aware of alternatives, and model the solution at different levels of abstraction, in terms of both static and dynamic behaviours. Continuous assessment means not only testing, but simulation. If required, the expert should build his or her own tools. While solving simple problems first is a good way to get started, deep, early understanding of the problem space is essential, and experts must understand the whole context and landscape well enough to make and articulate design prioritisations and trade-offs.

I thoroughly recommend this book. It may seem slight, but it delivers a powerful reminder on the process of design, and the necessary, different thought processes to succeed with it.

Categories: Agile & Architecture and Reviews. Content Types: Book, Computing, and Software Architecture.
Posted in Agile & Architecture, Reviews | Leave a comment

Cloud Design Patterns

This is a very useful introduction to key cloud concepts and how common challenges can be met. It’s also a good overview of how Microsoft technologies may fit into these solutions, but avoids becoming so Microsoft-centric that it becomes useless … Continue reading

Saturday, June 13, 2015 in Agile & Architecture, Reviews

Service Design Patterns

One of the most influential architecture books of the early 00s was Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf. That book not only provided far and away the best set of patterns and supporting explanations for designers of … Continue reading

Friday, June 5, 2015 in Agile & Architecture, Reviews

Next Generation SOA

This book sets out to provide a concise overview of the current state of, and best practices for, Service Oriented Architecture. While it may achieve that for some managerial readers, it is simultaneously too general for those with more background, … Continue reading

Thursday, May 28, 2015 in Agile & Architecture, Reviews

Responsive Web Design

There are, broadly speaking, two types of technical book: those which attempt to bring large amounts of knowledge comprehensively covering a subject area under a single cover; and those which concentrate on really communicating the core concepts of a topic. … Continue reading

Tuesday, April 16, 2013 in Reviews

Enterprise Integration Patterms

An excellent book which will become a standard reference Continue reading

Sunday, July 24, 2005 in Reviews

Waltzing with Bears

A good book covering an important and negelected area Continue reading

Friday, June 10, 2005 in Reviews

Real Options

A rather disappointing book for the general reader Continue reading

Monday, May 2, 2005 in Reviews

Modeling XML Applications with UML

An excellent book covering an important niche Continue reading

Saturday, April 3, 2004 in Agile & Architecture, Reviews

Business Modelling with UML

A very good guide to business-level modelling with UML Continue reading

Wednesday, August 13, 2003 in Reviews

The Elements of UML Style

An excellent little “bible” for modellers Continue reading

Sunday, July 13, 2003 in Reviews

Software Architecture Organizational Principles and Patterns

An excellent book on how to make architectural changes work Continue reading

Monday, July 1, 2002 in Reviews