Patterns from our everyday life (in) and software

Mihaela-Roxana Ghidersa
3 min readSep 27, 2021

--

Every time I have a busy period with lots of deadlines I also “happen” to stumble upon some intriguing book, an event that is not going very well with my schedule, but oh well, I work in software development so I’ll be agile or something. Anyway, it happened again, but this time we are talking about two books: A timeless way of building and A Pattern Language by Christopher Alexander.

Christopher Alexander is an architect, builder, and design theorist, whose ideas, about how people should design houses and communities for themselves, have affected fields beyond architecture, including software. He is also known as the father of pattern language movement.

Unirea Hotel, Iasi

“No pattern is an isolated entity. Each pattern can exist in the world only to the extent that is supported by other patterns: the larger patterns in which it is embedded, the patterns of the same size that surround it, and the smaller patterns which are embedded in it. — Christopher Alexander”

What caught my attention is the fact that apparently some ideas of design patterns for architecture presented by Christopher Alexander were adapted to software engineering by Kent Beck and Ward Cunningham in order to create the design patterns we so often go to when we need to decompose complex structures.

“Nowadays, the process of growth and development almost never seems to manage to create this subtle balance between the importance of the individual parts, and the coherence of the environment as a whole. One or the other always dominates. - Christopher Alexander”

Among other areas of software that Alexander’s work touched through his ideas, we have extreme programming(where customer involvement in the development process is essential just as users are in the process of building) and agile software development.

I find very interesting in this author’s work the fact that he brings to discussion a concept called QWAN(quality without a name) that claims that quality is easy to recognize but is hard to clearly define. I resonated with this concept mainly because even in software, while having so many measurement tools at our disposal and with the tech stack developing at such a fast pace is still hard to give quality a generally valid definition.

“To seek the timeless way we must first know the quality without a name. There is a central quality which is the root criterion of life and spirit in a man, a town, a building, or a wilderness. This quality is objective and precise, but it cannot be named. - Christopher Alexander”

Seems that some of Christopher Alexander’s influences are widely known and acknowledged while others are not. Regardless of who influenced who I find interesting this connection between the two disciplines, how software not only is present almost everywhere around us but its processes are inspired by some natural human-oriented processes.

I’m a strong believer that in order to correctly use some tools we need to understand their inner workings and the way they fit in different contexts. Therefore, especially for the ones who seek to understand concepts beyond the limitations of their daily developer job, these are just some ideas that I found interesting and considered worth sharing.

If you want to dig more into the matter, here are some resources:

--

--

No responses yet