Architecture Team
- Architecture Team
- any team that produces the various kinds of
architecture work products
As illustrated in the preceding figure, the Architecture Team method component
is part of the following inheritance hierarchy:
- Type: Concrete
- Superclass: Engineering Team
- Subclasses:
The typical team-specific responsibilities of an Architecture Team are to:
- Produce the system architecture including the:
- Produce a formally documented consensus among the project
stakeholders (e.g., customer, management, developers)
concerning the architectures of the next version [incremental iteration] of the application.
- Provide input (e.g., number, size, and complexity of system components):
- To the project cost and schedule estimation task.
- For the scheduling of the project phases and milestones.
- Maximize the quality of the architectures:
- Correctness, completeness, consistency, and understandability.
- To meet architecturally significant:
- Operational requirements
- Quality requirements (e.g., extensibility, scalability, performance, operational availability, and security)
- Design constraints (e.g., use of existing databases)
The architecture team typically inherits the
general team responsibilities from the
team method component.
An Architecture Team typically consists of persons one or more of the following roles:
- System Architect, who:
- Leads the architecture team.
- Architects the system, contact center, and data center.
- Database Architect,
who architects the persistence mechanisms.
- Hardware Architect,
who architects the hardware architecture.
- Information Architect,
who architects the information architecture.
- Security Architect,
who architects the security mechanisms.
- Security Engineer,
who implements security mechanisms in the software architecture prototype.
- Software Architect, who:
- Architects the software architecture.
- Ensures that the system architectural structure is
consistent with the software design approach so that design
entities (e.g., classes, agents, functions) are easily allocatable to major system components.
- Software Designer,
who designs the software architecture prototype.
- Programmer,
who programs and debugs the software architecture prototype.
- Integration Engineer,
who integrates the software architecture prototype.
- Technical Writer,
who produces and maintains the architecture document work products.
An Architecture Team typically performs the following
team-specific tasks in an iterative, incremental, parallel, and time-boxed manner:
An architecture team typically inherits the common team tasks
from the team method component.
An Architecture Team typically produces all or part of the following work products:
- An Architecture Team typically performs tasks as part of the following
architecting subactivities:
- This team should not be made up of the leaders of the other teams.
Architecting is a full time job and requires a dedicated membership.
- Architecture requires more expertise and experience than design.
- There may be some overlap between this team and the environments team.
- The database architecture is documented in the system architecture document,
software architecture document, and database design document.
- The security architecture is primarily documented in the software design document.
- The same person often plays multiple architect roles.
- The architecture team should work closely with specialty engineering teams that may influence the architecture
to ensure that engineering tradeoffs are made between support for the various quality factors:
- The safety team may want to spread data around the system to support recovery, which will lesson security.
- The security team may want to create protection layers and security controls that will decrease performance.
- The performance team may want to create a tightly-coupled architecture
that will lower extensibility, safety, and security.