Exploring software architecture
This year has been a year of reading for me and one of the best books I have read this year is Eben Hewitt's Technology Strategy Pattern. In my opinion, it's a must read for staff or principal engineers who are tasked with defining road maps and exploring technical solutions for business needs. It equips you with many fundamentals of creating a strategy and communicating that strategy to make things happen and deliver impact.
The book starts with defining the principles of architecture. Many authors across various books and blogs have attempted to codify the principles of architecture. Eben derives his from Vitruvius, who worked as a civil engineer in Rome in the first century BC. Vitruvius is the author of de Architectura, known today as Ten Books on Architecture and he writes that there are three requirements that any architecture must demonstrate: Firmitas, Utilitas and Venustas
Firmitas means that it must be solid or firm. This requirement speaks directly to reliability and maintainability of a software architecture. Solid here maybe mistaken to mean inflexible but in fact it should be read as resilient or flexible. The architecture should be adaptable to any changes.
Utilitas means that it must be useful or have utility. In other words, fit to purpose and this directly means that it should address all the requirements.
Venustas means that it must be beautiful or delightful. This one doesn't refer to the beauty of your code but rightsize for the given task.
In short an architecture should be solid, useful and delightful
This resonates with me and makes me wonder what are some examples of architecture as well as how new paradigms, for instance designing agentic AI workflows, address these requirements.
In the upcoming posts, I will do exactly that. I will explore evolving ideas and requirements for systems, map them to these requirements and derive learning lessons from them