Architect
The architect has overall responsibility for defining and describing the architecture, as well as driving major technical decisions.
Description
Architects play a crucial role in identifying and documenting the architecturally significant aspects of a system, including its requirements, design, implementation, and deployment views. They are involved in defining higher-level functional and non-functional requirements, validating technology assumptions, and analyzing alternative technical systems and trade-offs.
Additionally, architects provide the rationale for their decisions, balancing the concerns of various stakeholders such as customers, product management, suppliers, and manufacturing. They evaluate alternative systems, reduce technical risks, and ensure that decisions are effectively communicated, validated, and adhered to.
In supporting system development, architects provide, communicate, and evolve larger technological and architectural views of the system. This includes decomposing the system into subsystems and components and defining the interfaces between subsystems and external APIs. The architecture should also support an agile-lean mindset, allowing for the platform functionality to increase iteratively and incrementally as needed. In environments with many teams, the architecture decomposition must enable different teams to work efficiently and visualize technical dependencies.
Architects can work at the system or stream level. System architects focus on the overall system architecture, ensuring products and lifecycle components from system streams (e.g., 800xa, S+, Freelance, AV) can be reused and work together as expected. Stream architects concentrate on optimizing the architecture for products within a development stream (e.g., operations, control, IIoT).
Responsibilities
- Work with customers, stakeholders, and suppliers to gather knowledge about the high-level system intent and help establish the system intent information models and documentation requirements.
- Participate in the planning, definition, and high-level design of the system, and explore system alternatives. Validate the economic impact of alternative systems and different design decisions.
- Establish critical non-functional requirements and participate in the definition of functional requirements together with product management and product owners.
- Document and maintain architecture. Define subsystems and their interfaces, and allocate responsibilities to subsystems. Understand system deployment.
- Plan and develop the architectural runway by identifying enablers (infrastructure or architecture activities) in support of upcoming business features/capabilities.
- Work with product owners to determine capacity allocation for enablement work.
- Collaborate with team members to analyze, split, prioritize, and realize the implementation of enablers in the architecture runway.
- Communicate architectural aspects in increment planning events, participate in pre-planning, demos, and inspect-and-adapt meetings (retrospectives).
- Provide information to integration and test teams about the system to facilitate test development.
- Supervise and foster “built-in quality” in the teams.
- Analyze and coordinate lifecycle aspects of third-party software updates (e.g., operating systems).
- Conduct final checks of hardware to minimize risks, such as using obsolete components, non-RoHS components, and components without a second source.
- Ensure cyber security activities, like establishing security context and security architecture, and managing risk analysis methods (e.g., threat modeling, criticality analysis, and attack surface analysis) are properly managed together with relevant roles such as software development and cyber security teams.