Sadly, a few days ago, seminal architect and design theorist Christopher Alexander passed away.
It is this term we as software engineers – oftentimes quite casually – refer to when we’re talking about design patterns.
In 1996, Christopher Alexander gave this compelling talk at the 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA):
In this talk, Alexander addresses the connection between architecture and software development as he perceives it and covers more general aspects of patterns and pattern languages such as
- patterns as a tool for communicating intent and exchanging ideas
- patterns as a means for reasoning about what’s morally good in architecture
- How patterns can help with creating sustainable, nurturing environments and living structures for people to live and work in.
Interestingly, some of the problems he mentions for his field are not unlike those in software engineering:
- Architects don’t really know how to consistently create such sustainable and nurturing environments.
- There often are no best practices and tried-and-true approaches.
Does that sound familiar? At times, software engineers lament their field being so much less standardised, codified, or formalised than architecture, structural engineering, or civil engineering.
However, even these fields seemingly struggling with the same problems can serve as a useful reality check.
Maybe, we as an industry – and as software engineers individually – aren’t doing so bad after all. We just have to carry on honing our skill, practices, and patterns and put in our best effort. Then, maybe, through continuous improvement we’ll some day arrive at the standard we are – and have been – striving for.
Anyway, watching Christopher Alexander’s talk is very much worth it, even if it’s just for understanding the origin of one the most commonly used terms in our industry.