𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗥𝗢𝗖𝗞𝗦!: We need more architects

Posted by Tracy Bannon on Sunday, July 2, 2023

𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗥𝗢𝗖𝗞𝗦! Those who know me, know that this is squarely where my heart rests. 𝗪𝗲 𝗻𝗲𝗲𝗱 𝗺𝗼𝗿𝗲 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘀 and we need organizations to understand the importance of architecture!

IBM Fellow Grady Booch said “All architecture is design, but not all design is architecture. Architecture represents the set of significant design decisions that shape the form and the function of a system, where significant is measured by cost of change.”

The question I get is “How do you make architectural decisions?” I rely on my experience, my SEI training, and materials shared by my colleagues like Humberto Cervantes and Rick Kazman. In their book, “Designing Software Architectures: A Practical Approach”, they spell out fundamental principles, guidelines, and design concepts .

Where to start?? 𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱 𝘁𝗵𝗲 𝗺𝗶𝘀𝘀𝗶𝗼𝗻, 𝗱𝗼𝗺𝗮𝗶𝗻, 𝗮𝗻𝗱 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝗺𝗲𝗻𝘁𝘀.

𝗣𝗿𝗶𝗼𝗿𝗶𝘁𝗶𝘇𝗲, 𝗽𝗿𝗶𝗼𝗿𝗶𝘁𝗶𝘇𝗲, 𝗽𝗿𝗶𝗼𝗿𝗶𝘁𝗶𝘇𝗲. Work with stakeholders and make sure their priorities are your priorities. Align mission, business, and tech agility.

Evaluate potential 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝘆𝗹𝗲𝘀 𝗮𝗻𝗱 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀… the reusable solutions to common design problems. To be a pattern, the solution must have been implemented multiple times and proven out. This is not fluffy-stuff; styles and patterns are well-structured and experience-based.

Lay out the 𝗤𝘂𝗮𝗹𝗶𝘁𝘆 𝗮𝘁𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝘀 (aka characteristics) that are important to stakeholders such as performance, security, reliability, and maintainability.

Select & experiment with 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝘁𝗮𝗰𝘁𝗶𝗰𝘀… these are proven approaches to address individual quality attributes. There are MANY like caching, load balancing, and fault tolerance. Rick & Humberto include indexes of tactics in their book. (Seriously, read this book, Peeps!)

This is one of many times 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗮𝗹 𝗲𝘃𝗮𝗹𝘂𝗮𝘁𝗶𝗼𝗻 𝗮𝗻𝗱 𝘁𝗿𝗮𝗱𝗲𝗼𝗳𝗳 𝗮𝗻𝗮𝗹𝘆𝘀𝗶𝘀 is needed. Architectural reviews, scenario-based analysis, prototyping and experimentation are all core.

I am frustrated when someone says they are a software architect but they haven’t written any code in decades. Please DON’T be a diagram jockey…please go beyond the “boxes and lines”…experiment, prototype, engage to keep relevant and current

Make sure to communicate the different perspectives of a software ecosystem using 𝗩𝗶𝗲𝘄𝘀 𝗮𝗻𝗱 𝘃𝗶𝗲𝘄𝗽𝗼𝗶𝗻𝘁𝘀. Examples include the logical view, the process view, and the deployment view.

Oh, and make sure you annotate the decisions… yup… architectural decision records (ARDs).

#SomethingToNoodleOn #ContinuousArchitecture #SoftwareArchitecture #TradeoffAnalysis #QualityAttributes