The tech team at Capital One uses a dynamic architectural decision-making template to address critical issues at each life cycle stage. The template explores every angle, outlining assumptions and constraints, and anticipates implications, considering influences on requirements, scope, and staff training.
The team's organized approach allows simple grouping like integration, presentation, and data, or more sophisticated architectures like event, calendar, and location. Status updates keep all parties informed, whether pending, decided, or approved. Viable options are also analyzed with arguments, including cost, time to market, and resources.
Experience the power of seamless architectural decision-making and use Capital One's template to drive more thoughtful choices by your team!
Architecture decision description
Describe the architectural design issue you’re addressing, leaving no questions about why you’re addressing this issue now. Following a minimalist approach, address and document only the issues that need addressing at various points in the life cycle.
Clearly state the architecture’s direction—that is, the position you’ve selected.
The decision’s status, such as pending, decided, or approved.
You can use a simple grouping—such as integration, presentation, data, and so on—to help organize the set of decisions. You could also use a more sophisticated architecture ontology, such as John Kyaruzi and Jan van Katwijk’s, which includes more abstract categories such as event, calendar, and location. For example, using this ontology, you’d group decisions that deal with occurrences where the system requires information under event.
Clearly describe the underlying assumptions in the environment in which you’re making the decision—cost, schedule, technology, and so on. Note that environmental constraints (such as accepted technology standards, enterprise architecture, commonly employed patterns, and so on) might limit the alternatives you consider.
Capture any additional constraints to the environment that the chosen alternative (the decision) might pose.
List the positions (viable options or alternatives) you considered. These often require long explanations, sometimes even models and diagrams. This isn’t an exhaustive list. However, you don’t want to hear the question "Did you think about...?" during a final review; this leads to loss of credibility and questioning of other architectural decisions. This section also helps ensure that you heard others’ opinions; explicitly stating other opinions helps enroll their advocates in your decision.
Outline why you selected a position, including items such as implementation cost, total ownership cost, time to market, and required development resources’ availability. This is probably as important as the decision itself.
A decision comes with many implications, as the REMAP metamodel denotes. For example, a decision might introduce a need to make other decisions, create new requirements, or modify existing requirements; pose additional constraints to the environment; require renegotiating scope or schedule with customers; or require additional staff training. Clearly understanding and stating your decision’s implications can be very effective in gaining buy-in and creating a roadmap for architecture execution.
It’s obvious that many decisions are related; you can list them here. However, we’ve found that in practice, a traceability matrix, decision trees, or metamodels are more useful. Metamodels are useful for showing complex relationships diagrammatically (such as Rose models).
Decisions should be business driven. To show accountability, explicitly map your decisions to the objectives or requirements. You can enumerate these related requirements here, but we’ve found it more convenient to reference a traceability matrix. You can assess each architecture decision’s contribution to meeting each requirement, and then assess how well the requirement is met across all decisions. If a decision doesn’t contribute to meeting a requirement, don’t make that decision.
List the related architecture, design, or scope documents that this decision impacts.
If the enterprise has an agreed-upon set of principles, make sure the decision is consistent with one or more of them. This helps ensure alignment along domains or systems.
Because the decision-making process can take weeks, we’ve found it useful to capture notes and issues that the team discusses during the socialization process.
The tech team at Capital One uses a dynamic architectural decision-making template to address critical issues at each life cycle stage. The template explores every angle, outlining assumptions and constraints, and anticipates implications, considering influences on requirements, scope, and staff training.
The team's organized approach allows simple grouping like integration, presentation, and data, or more sophisticated architectures like event, calendar, and location. Status updates keep all parties informed, whether pending, decided, or approved. Viable options are also analyzed with arguments, including cost, time to market, and resources.
Experience the power of seamless architectural decision-making and use Capital One's template to drive more thoughtful choices by your team!