Wednesday, January 2, 2019

What is Architectural Thinking?

In his 2015 book Chess and the Art of Enterprise Architecture, Gerben Wierda makes the case that to be effective, enterprise architecture can't rely on handing off reference architectures and principles to others to read and implement. Rather, EA should promote collaboration and design skills that are widely held, using "our capability of cooperation to create the virtual enterprise architect that can handle ... complexity and unpredictability."

What would it mean for lots of people in an organization to do "architectural thinking"? Many concepts contribute to an architecturally sound design, but what makes thinking architectural? In our team we've been considering what to put in an introductory workshop that encourages architectural thinking by everyone.

As an opener for 2019, here's my personal take on what architectural thinking looks like, in five elements. There's even a mnemonic! (It's my first one, so be kind to it.)

Architectural thinking is:
  • Sustainable
  • Holistic
  • Accountable
  • Realistic
  • Participatory
You can change the terms to suit your organization of course, but here's how I apply them:

Sustainable

"Sustainable (adj): Able to be maintained at a certain rate or level." [1]

Take responsibility for thinking about the long term. Strive for solutions that are sustainable for your organization, such as:
  • A system that is cost effective to implement, operate, expand, and eventually retire
  • An organization structure that can scale to accommodate likely growth
  • A data model that is designed to be extensible
Many detailed principles and guidelines have been written in pursuit of sustainability, but I suggest that the important thing is for each person participating in a project to take ownership of sustainability on behalf of the organization. Pretend you are the CFO or CIO. How would you think about long term value, cost, and risk? Ask yourself whether what you are proposing will be, for example:

Cost-effective ... Easily adoptable
Reusable ... Extensible ... Adaptable
Secure ... Compliant

Thinking sustainably typically leads to decisions about tradeoffs. Building in flexibility and scalability has a cost; will it be worth it? The leading vendor's product is more expensive, do we really need it? These tradeoffs are difficult; digging into them and discussing them openly leads to better design decisions.

Sustainability may seem like a low bar for architectural thinking -- why not strive for amazing, innovative, groundbreaking solutions? Those can certainly be the starting point for open-ended design thinking and may turn out to be the most sustainable because of the very high new value they bring -- or not. Just leave time to consider their total cost of ownership like any other alternative.

Holistic

"Holistic (adj): Characterized by the belief that the parts of something are intimately interconnected and explicable only by reference to the whole." [1]

It is very common for an idea that would greatly improve one part of a system or process to have negative impacts on other parts. Take responsibility for seeing the big picture and the relationship of all the parts. Strive for solutions that increase connectedness across the organization and internally, such as:
  • A system that integrates well in the enterprise and is also modular internally
  • A business process design that considers the full value stream across organizational units
  • A data model designed for reporting across subject matter domains
Thinking holistically usually adds information, complexity, and therefore effort. It requires balancing breadth and depth; it requires balancing the cost of further analysis with the benefit of knowing more about context that is likely to impact the solution. Ask yourself whether enough has been done to ensure that the proposed path will be, for example:

Aligned ... Integrated 
Well-understood ... Coherent ... Intentional
Complete ... Balanced

Holistic thinking typically challenges both the proposed problem and solution. The initial stated problem or goal often turns out not to be the highest priority or the right scope, once more context is considered. Likewise, the initial stated solution often turns out not to be the best available one, once all its impacts on the context are considered.

Working holistically also has a strong people dimension. To get to the right scope, problem, and solution, groups need shared language, concepts, and analytical tools. Architectural methods of all kinds exist to provide this foundation for people to work together on "systems thinking", dealing with complex problems and solutions.

Crucially, thinking holistically requires being willing to learn fearlessly and as a generalist. In any reasonably complex undertaking, no single specialist can provide the big picture that is needed -- but it can be achieved by a team willing to learn just enough from each other to see the relationships of the most important parts.

Accountable

"Accountable (adj): Required or expected to justify actions or decisions; responsible; able to be explained or understood." [1]

Take responsibility for enabling outcomes. Strive for solutions that are accountable to the goals of the organization, such as:
  • A systems roadmap that best supports the long-term strategy of the organization
  • A business process that is highly responsive to the needs of the customer
  • A plan that is based on the best available data and has agreed-on measures of success
We've all seen some version of the "solution in search of a problem." A major challenge for any team is to agree on and stay focused on a set of goals all the way from ideation through the many twists and turns of design and implementation. At each stage, ask yourself whether what is being proposed is still, for example:

Value-driven ... Customer-centric ... Strategic
Measurable ... Testable ... Auditable ... Traceable
Transparent ... Documented

It can be surprisingly difficult to identify goals that are widely agreed on, clearly relevant, and also specific enough to drive design decisions. Lack of stated goals is never an excuse, however. It just means becoming responsible for helping others define or refine goals. This includes working with stakeholders, escalating issues to sponsors, or even identifying stakeholders and sponsors to establish accountability where it is missing.

Realistic

"Realistic (adj): Having or showing a sensible and practical idea of what can be achieved or expected." [1]

Take responsibility for charting a course that your organization can be successful in. Strive for approaches that are realistic for the organization as it works today or can feasibly work in the future, such as:
  • A system that users can adopt and that IT can maintain with available expertise
  • An operating model change that the organization can successfully bridge to
  • A data management plan that builds in continuous improvement of data quality
Organizations progress over time and so do the solutions and changes they can adopt. At the same time, unpredicted changes occur. Think in terms of progressive maturity and iterative work that responds to changing conditions. Compare what has been done elsewhere, and consider past results in the same organization. Ask yourself whether what is being proposed is, for example:

Iterative ... Repeatable
Feasible today -- or achievable as a stretch
Benchmarked ... Researched

Bring realism to the role of architecture as well. In designing for the long term and the big picture, uncertainty about the future is an inherent part of the job, and there are diminishing returns to usefully reducing uncertainty.

Participatory

"Participatory (adj): Allowing people to take part in or become involved in an activity." [2]

Take responsibility for enabling groups to collaborate, gain new shared understanding, and  ultimately make better decisions. Strive to work in ways that help individuals and teams align and buy in to a shared approach, such as:
  • A system developed with the active participation of business stakeholders and end users
  • A business process change identified and prioritized by the participants in the process
  • A data model conceptually validated by its future users 
Involving more people can seem daunting and undoubtedly adds near-term effort. Experience shows that the right level of participation ultimately saves time by generating better ideas, building a coalition that can overcome roadblocks, identifying conflicts that need to be resolved, and increasing adoption. At each stage, ask yourself whether your team's approach is, for example:

Accessible ... Understandable
Collaborative ... Interactive ... Diverse
Visible ... Communicated

This aspect of architectural thinking also brings us back to our starting point: as you practice architectural thinking, try to enable as many people around you as possible to incorporate architectural perspectives in their thinking as well.

Conclusion

In compiling notes for this post I was tickled that the mnemonic "SHARP" spells the last name of my favorite teacher and architect of recent years, Alec Sharp, author of Workflow Modeling. So this first post of 2019 is dedicated to Alec -- Happy New Year, sir!

Endnotes

No comments:

Post a Comment