If your like me, you’ve longed for a book about software development that speaks of the essense of our craft. A book reminding you of why you began the tortuous journey and why you keep subjecting yourself to it. You look for words speaking about the beauty you seek to create each time you sit down at your keyboard.

I unexpectedly found this in Richard P. Gabriel’s Patterns of Software: Tales from the Software Community.

As noted in the Preface, “‘Patterns of Software’ explores the work of the architect Christopher Alexander as it relates to the creation of software. Christopher Alexander has spent the bulk of his professional life—from around 1960 through the mid-1990s—trying to find the way that those who build buildings, cities, and towns also create beauty and what Alexander calls the quality without a name.” (emphasis mine)

Sanjiv Gossain, Associate Director of Cambridge Technology Partners, had this to say about Richard’s work:

This is a clear, insightful book that takes an alternative look at some of the broader issues surrounding software development…. The commentary on the work of Christopher Alexander, currently being taken up so fervently by the software architecture community, is particularly appealing.

Insightful indeed. Nearly the 1st half is devoted to describing Alexander’s work. As you’ll find, Richard’s writing style is rather captivating, a pure pleasure to read. I was drawn into the deep study of patterns in buildings, Turkish rugs, and the study of the “quality without a name.”

Quality Without a Name

Early in the book the author mentions Alexander’s “quality without a name.” He actually labors over this phrase for many pages, helping us discover its nuances. As we’re guided to a better understanding of the definition we begin to explore how this quality without a name applies to software. Richard challenges us:

Think about the quality without a name when you look at your software. Do you think your software possesses it? What would you do to make your software have it?

I was hooked.

Coming to software from the world of Industrial Technology where I built real, tangible things, I tend to look at object-oriented software as Legos. I’m still building things. I want my creations to have this quality. I want people who live in my creations to feel at home. I want to fill them with a desire to come back for more.

On page 42 we’re offered a list of things software has when it possesses the quality without a name.

There’s my favorite:

It was not written to an unrealistic deadline.

And this gem (emphasis mine):

…if it is large, it was not designed by one person, but over time in a slow, careful, incremental way.

Other points include being able to see what’s going on at any level, the code is transparently clear, it seems familiar. I can imagine changing it, I’m not afraid of it. “I will remember it.”

I’m constantly striving to create software with this quality without a name. Richard’s Patterns of Software has given me a greater awareness of this quality and its elusive nature.