This article has also been published in Architecture and Governance Magazine. You can find the published article here.
One of the most important skills an architect possesses is the ability to manage and make good decisions. Managing decisions and facilitating the decision-making process are key to building healthy and sustainable architectures. Within the architect profession, a key factor in business technology failures is missing the significance of architecture decisions. Sometimes what seemed like a simple decision can later turn out to be more complex than we figured and result in unexpected consequences or side effects. In the worst case, this might mean that the architecture is no longer feasible and in the best case, more effort and time are required for re-work.
The architect is a role providing leadership, and one of the main responsibilities of the architect is to guide stakeholders and help teams with business technology decisions. The architect has a unique perspective, understanding the key aspects of the business and technology. Of course, the architect is not responsible for all business technology decisions, but rather the “significant” decisions, which profoundly affect the architecture, business or stakeholders. Martin Fowlers describes these decisions simply as “the stuff that matters”.
Whether working with products or an enterprise we expect the architect to manage the “significant” decisions. During the development and evolution of an architecture, there may be countless meetings where we often choose paths and alternatives which drive the outcomes of the enterprise and our products, meeting the stakeholder’s needs. We are taking decisions all the time at all levels within an organization, so how do we know when a decision is “significant?
One way to help identify significant decisions early and manage them is to adopt a mindset for quickly analyzing decisions. Kind of like a mental checklist which raises an alarm if certain criteria are met.
The diagram above shows some of the aspects of a decision we can consider to quickly assess its significance. We can use the acronym PRILER to make these aspects easy to remember.
Priority and Value
The significance of a decision may be driven by how highly the stakeholders of the architecture value and prioritize the alternatives. It is important not only to consider the technical aspects of a decision but also to consider if there are political consequences. For example, making decisions based only on the best technical expertise may fail if we later find that there was a lack of political backing from the stakeholders.
From this perspective, we may consider a decision as “significant” if it is of high priority or value to the stakeholders in the architecture.
Reversibility indicates how easy it is to roll back or change a decision after or during the implementation of the change has begun. This is a really important aspect, as decisions which are difficult to reverse are significant. Many architectures may find themselves living with workarounds, add-ons and limitations because it was just too much effort to reverse a decision. Decisions which can be rolled back easily with little consequences are often less significant since little effort is required to reverse the change, however, if a decision can’t be rolled back then the decision is likely to be significant as it represents a “point of no return”.
The impact of a decision indicates the scope of change, in other words, how widely will the ripples of change be felt within an organization. For example, a decision which affects a single component in a product may have a low impact, alternatively, a decision which affects a whole enterprise will have a high impact. The impact can have consequences for the way technology products are developed or the way a business works. It is important to remember that what can seem like low-impact technical decisions sometimes can have a high impact on users, the way of working, or the business as a whole. The same is true of business decisions which may appear low-impact, but have a high technical impact. Decisions with high impact raise the significance of the decision.
Limitations and Constraints
Many decisions are trade-offs, opening one door may mean that certain other doors close. For each decision we need to consider which constraints will be placed on the architecture, perhaps limiting future options or increasing effort on other aspects of the architecture. We want to keep as many options available as long as possible to ensure that the architecture is sustainable. Decisions which incur serious limitations or constraints on the architecture are likely to be significant.
Effort represents the work, resources, time and costs associated with the decision. If the resources and financial backing are not available, or feasible then it is unlikely the chosen alternative will succeed. Even if the chosen alternative is the best in terms of the architecture, it will be worthless if the means to execute it are not available. It is important to remember that even a decision to maintain the status quo can incur significant effort, so even a decision to change nothing costs effort.
Risk is the possible exposure to negative effects resulting from the decision. Most decisions involve some level of risk. We can consider if a decision entails many risks, the seriousness of those risks and if there are any ways we can mitigate the risks. If a decision depends on external factors, these can represent risks that are out of our control and difficult to mitigate. A decision which incurs a high level of risk is likely to be significant.
Adopting the PRILER mindset to architecture decision-making may be the first step to identifying significant decisions. What happens next is likely a more detailed analysis of the alternatives where the architect will consult a broader field of stakeholders. It may be the case that the consequences of a decision are so significant that the decision is escalated to other stakeholders in the business. In conclusion, every decision is unique and there is no “one size fits all”, but approaching architecture decision-making with the right mindset can help quickly identify “the stuff that matters”, and this contributes to avoiding serious pitfalls, helping to keep our architectures healthy and sustainable.