An Architecture Evaluation Team typically consists of persons playing the following roles:
Technical Leader,
who facilitates the evaluation meeting and evaluates the architectures for technical quality
and conformance to the architecturally significant requirements.
Domain Expert,
who evaluates the architectures for correctness.
Requirements Engineer,
who evaluates the architecture work products for conformance to
the architecturally significant requirements.
Security Analyst,
who evaluates for the system architecture for
conformance to the security requirements and the quality of
the security mechanisms in the software architecture.
Security Engineer,
who evaluates for the implementability of the security
mechanisms in the software architecture.
Software Designer,
who evaluates the architectures for technical quality
and to understand what must be designed.
Programmer,
who evaluates for the architectures’ implementability.
Hardware Engineer,
who evaluates for the system architecture’s
implementability and the software architecture’s deployability.
Evaluations should not devolve into walkthroughs that require the work products’ developers
to explain them to the evaluators. The work products should stand on their own.
To the extent practical, the developers of a work product should:
Not be the only evaluators of it.
Also informally inspect it prior to the evaluation.
A single person may play multiple roles on an evaluation team if
he or she has the necessary expertise to fulfill multiple roles.
This is especially true on small endeavors.
An architecture evaluation team typically inherits the
common team guidelines from the
team method component.