The architect is responsible for defining and maintaining the structure of the solution, and ensuring that it will meet the requirements. An agile architect must also help the team to work together in an agile fashion, to jointly own the solution, and to interface well with other parts of the organisation.
There are five main parts to this:
- Understanding the requirements – identifying the stakeholders, helping to analyse the requirements and extracting those of architectural significance
- Formulating the design – creating a solution structure which will meet the various requirements, balancing the goals and constraints on the solution,
- Communicating the architecture – making sure that everyone understands the architecture. Different people have different viewpoints, so the architect has to present various views of the system appropriate to different audiences,
- Supporting the developers – making sure that the developers are able to realise the architecture, by a combination of mentoring and direct involvement,
- Verifying the implementation – ensuring the delivered system is consistent with the agreed architecture, and will meet the requirements.
The architect defines the structure and organisation of the system. The architecture describes the system’s components, their responsibilities and interactions. A complex system is more than the sum of its parts. It must have a unifying, coherent structure. Therefore the architect must also define and describe:
- Metaphors, design principles and patterns on which the architecture is based,
- The technology, tools and standards which will be used,
- Key mechanisms, such as data access and error handling,
- Specifications and interfaces of components to be bought or built.
If somebody wants to be an architect, i feel that one has to improve on the all the items discussed in this article.
- Software Architect Bootcamp
- The Software Architects Profession: An Introduction
- J2EE Architects Handbook