Task: Outline the Architecture
Outline the architecture through analysis of the architecturally significant requirements and identification of architectural constraints, decisions and objectives.
Purpose
To provide sufficient guidance and direction for the team to begin or continue evolving the architecture.
Relationships
RolesPrimary: Additional: Assisting:
InputsMandatory: Optional: External:
  • None
Outputs
Main Description

This task focuses on identifying the architectural goals for an iteration that will guide development and testing. It relies on gathering experience gained in similar systems or problem domains to constrain and focus the architecture so that effort is not wasted in re-inventing architecture.

Steps
Identify architectural goals

Work with the team, especially the Stakeholder and Analyst, to describe the remaining goals for the architecture and identify which ones are appropriate to address for this iteration. Examine the product Vision and requirements. These goals will prioritize and guide the approach to important technical decisions.

It will be important to regularly review the status of these goals throughout the project to make sure that they are still valid and that the system is on track to deliver them.

Identify constraints on the architecture

List any constraints on the architecture and any trade-offs between competing requirements and resources. Decide how the architecture will meet these issues. Justify each of the decisions made and capture this information. Regularly review the list of constraints to make sure that they are still valid and that no new ones have appeared.

Survey, assess and select available assets

Identify assets from other areas that may be reused in the current architecture. These could include:

  • Architectural frameworks
  • Architectural mechanisms
  • Architectural decisions
  • Constraints
  • Applications
  • Components
  • COTS software 
Capture architectural decisions

Capture important decisions about the architecture for future reference. Consider using the templates provided for the Architecture Notebook. Developers in particular should clearly understand the current state of the architecture each iteration before developing the architecture.

Properties
Multiple Occurrences
Event Driven
Ongoing
Optional
Planned
Repeatable
Key Considerations

This task is most beneficial when developing new and unprecedented systems. In systems where there is already a well-defined architecture, this task might be omitted, or performed quickly as a review of the existing architecture.

It is critical that this task is performed collaboratively with active involvement of other team members and project stakeholders so that consensus and common understanding is reached. It is particularly vital for the architect to involve the developer(s) throughout this task. The architecture effort is about providing leadership and coordination of the technical work rather than putting in a solo performance.

More Information