Architecture Principles: Where do they fit in the RAC model?

Eric Wright recently asked, “Is open source a true technical requirement?” A great question that Eric explores well, and after reading his article it felt like we could quest a little further. So please, go read Eric’s article if you haven’t already, then pop on back to keep the conversation going.

Everybody Expects the RAC

If you’ve encountered a few decently documented solutions you’ve no doubt found out that RAC is a lynchpin of good design. RAC or, requirements, assumptions and constraints, capture the goals and limitations, verified or not, of the solution in a way that let’s us measure them. Granted, that measurement may be as simple as “met” or “unmet”, but measured none the less.

They’re so ubiquitous in design that they’ve become muscle memory for many. The metric definition becomes, itself, a metric. “Do you have enough RAC in your design?” Sometimes, when asking ourselves whether something is a requirement, or a constraint, or an assumption, I wonder if we shouldn’t be asking ourselves, does it fit the RAC model at all?

It’s the Principles of the Thing

An ask to use Open Source software reads, to me, more like an architecture principle than an explicit requirement. What’s a principle? According to the Open Group, creators of TOGAF, “principles are general rules and guidelines, intended to be enduring and seldom amended, that inform and support the way in which an organization sets about fulfilling its mission.”

From a principle standpoint these considered guidelines become agreed upon and writ into the corporate rule book, or at least IT’s. I’m inclined then, in any technical design document detailing requirements, to specify “R1 – Must adhere to architecture principles”. Does this skirt the discussion about whether these types of considerations are, themselves, distinctly requirements? Yeah, to a point.

Principles inherently read as considered requirements. Imagine writing a brief business case for each of your requirements. Kind of that. But they’re also specific. “Must use OpenStack” is not a direct technical or business requirement. It reads more like a constraint. So principles straddle that line between requirements and constraints.

They’re also not inviolate. They’re guidelines, after all. So while it may be an exception to allow an exception to a principle, it can still happen. As long as the business is getting value out of the solution and reasonable risk levels are maintained.

Think about our example from the opposite standpoint, where a client strongly prefers off-the-shelf solutions with minimal customization. Would OpenStack contradict their principle? As open source software, yes, it would. But it might be the right thing to do given their particular solution’s goals.

What’s Done is Never Done

This is my take on Eric’s question. I’d love to hear what your answer would be. Would you approach it differently? Do you agree that a carefully worded requirement can adroitly include principles in design? How would you do it differently?

Chime in, keep the conversation going. We’ll all be the richer for it.

Dee Abson

Dee Abson is a technical architect from Alberta, Canada. He's been working in the field of technology for over 20 years and specializes in server and virtualization infrastructure. Working with VMware products since ESX 2, he holds several VMware certifications. He is a 9x VMware vExpert. You can find him on Twitter and Mastodon.

7 Responses

  1. @xinity_bot says:

    Architecture Principles: Where do they fit in the RAC model? #General #Design

  2. @deeabson says:

    ICYMI: Architecture Principles: Where do they fit in the RAC model? #design #vdm30in30

  3. RT @deeabson: ICYMI: Architecture Principles: Where do they fit in the RAC model? #design #vdm30in30 #ICYMI

  4. @deeabson says:

    ICYMI: Architecture Principles: Where do they fit in the RAC model? #design #vdm30in30 #vExpert

  5. RT @SilverPeak: Is Open Source more an architecture principle than an explicit requirement? @deeabson on the differences:…

  6. @deeabson says:

    ICYMI: Architecture Principles: Where do they fit in the RAC model? #design #vdm30in30 #ICYMI #vExpert

  1. November 30, 2016

    […] away, and thought “boy, this could almost be a blog post”. So it’s a blog post. I welcome your thoughts on my […]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.