๐ง๐ต๐ถ๐ ๐ฟ๐ฒ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฎ๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ ๐ถ๐ ๐ป๐ผ ๐ด๐ผ๐ผ๐ฑ! Itโs missing the list of technology to use and how to knit them together.
๐ ๐ฟ๐ฒ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐ฎ๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ ๐ถ๐ ๐ป๐ผ๐ ๐ฎ ๐ฟ๐ฒ๐ฐ๐ถ๐ฝ๐ฒ ๐ฐ๐ฎ๐ฟ๐ฑ or step by step building instructions.
A reference architecture (RA) offers a shared language, provides a base of proven leading practices, and acts as a tool for sharing knowledge and lessons learned across an organization or domain.
But where are my directions for building? Well, thatโs up to the team!
๐ช๐ต๐ ๐ฏ๐ผ๐๐ต๐ฒ๐ฟ ๐๐ถ๐๐ต ๐ฎ๐ป ๐ฅ๐?
๐ง๐ผ ๐ต๐ฒ๐น๐ฝ ๐ฆ๐๐ฎ๐ป๐ฑ๐ฎ๐ฟ๐ฑ๐ถ๐๐ฎ๐๐ถ๐ผ๐ป! Having a common language and shared understanding minimizes misunderstandings and reduces the risk of misalignment. ๐ง๐ผ ๐ฝ๐ฟ๐ผ๐๐ถ๐ฑ๐ฒ ๐๐๐ถ๐ฑ๐ฎ๐ป๐ฐ๐ฒ! Offering proven design solutions to common tech challenges means avoiding reinventing the wheel! ๐ฃ๐ผ๐น๐ถ๐ฐ๐, ๐ฝ๐ผ๐น๐ถ๐ฐ๐, ๐ฝ๐ผ๐น๐ถ๐ฐ๐! RAs can enforce and codify enterprise policy OR can be used to continuously improve outdated or hardware-centric policies applied to software. ๐ง๐ผ ๐๐ฐ๐ฐ๐ฒ๐น๐ฒ๐ฟ๐ฎ๐๐ฒ ๐๐ฒ๐๐ถ๐ด๐ป ๐๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป๐! If someone has solved a complex problem and thatโs codified in an RA, teams have an efficient jumpstart. ๐ง๐ผ ๐ฑ๐ฟ๐ถ๐๐ฒ ๐ค๐๐ฎ๐น๐ถ๐๐ ๐๐๐๐๐ฟ๐ฎ๐ป๐ฐ๐ฒ!! RAs should provide leading practices for the particular domain including calling out quality attributes like performance and security. Even some suggested architectural tactics may be included. Why not promote high quality from design forward?
An RA must define “what” should be built in the sense that it describes the structure of the software and its key elements. The RA must justify “why” it should be built this way. If an RA is missing the rationale behind the decisions, benefits, and alignment to quality attributes, it might not be an RA!
There are many industry formats for RAsโฆ The olโ TOGAF and its kissing cousin the DoDAF, Zachman Framework, or ISO/IEC/IEEE 42010. You can also roll-your-own as long as you are clear on intent and contents. Remember to include the relevant architectural patterns and call out any known constraints.
RAs need to be living assets; architectural models are a game changer. Imagine if your solution inherits from an RA and you extend and enhance with the details of your specific implementation? YUMMY!
#ReferenceArchitecture #ArchitecturalViews #SoftwareDesign #SomethingToNoodleOn #SoftwareArchitecture
Pix by Ayo Ogunseinde on Unsplash