Architecture Clarity: Unlocking Software Architecture for other teams

Ryan Zielke
4 min readAug 15, 2023

--

When it comes to contemplating architecture, I have a particular architecture metamodel that resonates with me. I’ve utilized this metamodel in two distinct ways, both of which offer valuable insights. The first method involves clarify the thought process behind architecture to others, while the second, and perhaps more crucially, revolves around enabling various departments to comprehend how architecture aligns with their objectives.

Inspiration

My metamodel drew its inspiration from a whitepaper that delved into the interplay between patterns and tactics. This whitepaper, combined with insights from Software Architecture in Practice book, illuminated the adaptability of tactics within architectural patterns to accommodate non-functional requirements and constraints. As I have been reading a lot on Enterprise Architecture I found the need to break things down in a simple manner to what is the important pieces for a solution. Most architects I seen were getting trapped in a process cycle and refining requirements instead of thinking in terms of patterns, all concerns, and system design. As I embarked on constructing the model, it evolved into a tool that could effectively convey to non-architects, particularly those in my realm of Solution and Enterprise Architecture, how collaboration between disparate departments could be enhanced.

Understanding the Metamodel

The term “architecture” carries diverse connotations across contexts. My intention here is to offer a high-level overview of the integral components constituting architectural solutions. The metamodel clarifies the interconnectedness of architecture implementation, concerns, and infrastructure within the realm of architecture’s definition.

The architecture implementation encompasses patterns which are made up of different design decisions and tactics. Patterns are often described in generic terms. This metamodel shows that through our design choices there are various tactics that can be changed and used to incorporate a better pattern.

Architecture concerns encapsulate requirements. Concerns encompass more than just business needs. They should also encompass non-functional requirements and constraints. Non-functional requirements and the delicate balance of trade-offs are paramount. Management-imposed constraints also wield considerable influence, guiding the selection of solutions and tactics.

Once patterns and concerns are comprehended, a natural progression leads to an understanding of hardware requisites. This involves deciphering infrastructure prerequisites and deployment necessities. Factors such as the roles fulfilled by Continuous Integration/Continuous Deployment (CICD) pipelines, System Design, the cloud-versus-SaaS dichotomy, and on-premise data center considerations come into play.

Departmental Views using Metamodel

My interaction with departments such as software reliability engineering, legal, and security revealed their distinct expertise and, consequently, unique metamodels. Utilizing this model, I’ve successfully depicted areas of alignment and synergy among these departments.

Consider the scenario of a Software Reliability Engineering (SRE) team. Observability, affecting aspects like monitoring, logging, and tracing, interfaces with infrastructure and the environment. Furthermore, SRE teams bear the responsibility of addressing non-functional requirements. Instances abound where SRE teams contribute their expertise to implementing certain tactics, such as logging and circuit breakers. Conversely, enterprise architecture teams sometimes undertake these tasks.

Similarly, a security team can be viewed through a generic example. Security teams might advocate for specific libraries and tools to complement security tactics. Validation patterns, approved methods for OAuth, and security verification protocols could all be part of their purview. Security itself constitutes a non-functional requirement. Lastly, security teams might engage in active monitoring of production environments and development tools to mitigate security incidents.

Collaboration

With departments gaining a clearer view of their roles, collaboration takes center stage. When an Enterprise Architecture team shares design patterns, the Security or SRE team can actively engage in refining the designs. This involves establishing standardized patterns, utilizing approved libraries, and aligning with architectural concerns. As we contemplate solutions and navigate architectural considerations, a shared strategy emerges that aids in comprehending and fulfilling non-functional requirements. Moreover, when we assess infrastructure, a consensus on monitoring tools emerges, impacting the definition of requirements and constraints.

In essence, the primary message to convey is the convergence of processes and the potential for synergistic connections. Collaboration and a shared strategy are the linchpins ensuring the realization of the overarching IT strategy.

Conclusion

As we delve into the realm of software architecture, the metamodel bridges the divide between intricate architectural design and diverse departments, breathing clarity and collaboration into the process.

The metamodel fosters unity. It enables teams like Software Reliability Engineering and Security to collaborate seamlessly, addressing complex challenges together. By sharing patterns, aligning concerns, and co-creating strategies, we pave the way for a unified IT strategy.

As you reflect on these insights, seize the metamodel’s potential within your organization. Embrace its principles, engage cross-functional teams, and witness the evolution of architecture clarity.

--

--