The System Team is a specialized Agile Team that assists in building and supporting the Agile development environment, typically including the development and maintenance of the toolchain that supports the Continuous Delivery Pipeline. The System Team may also support the integration of assets from Agile teams, perform end-to-end Solution testing where necessary, and assists with deployment and Release on Demand.
In SAFe, Agile teams are not stand-alone units. Instead, they are part of the Agile Release Train (ART), responsible collectively for delivering larger system and Solution value. Built-in Quality practices typically require additional infrastructure work to build, integrate, deploy, and release solution assets more frequently and continuously across multiple stages of the pipeline. To support this, one or more specialized System Teams are often formed. As an ‘enabling’ type of Agile Team, they help build the environments and assist with system and solution integration. They accelerate team velocities by performing some of the slower, end-to-end and Non-functional Requirements (NFR) tests. And they help demo the solution as it evolves.
Over time, System Teams are sometimes eliminated from an ART as the Agile teams take on these responsibilities. In larger solutions, it’s more likely that speciality expertise remains with one or more System Teams, where centralizing certain people, skills, and technical assets deliver the best economic value.
The System Team assists one or more ARTs in building and using the Agile development environment infrastructure—including the Continuous Delivery Pipeline toolchain—as well as integrating assets from Agile teams and performing end-to-end solution testing. They often participate in the System Demo at the end of each Iteration and the Solution Demo at the end of each Program Increment (PI), or more frequently as the case may be. The demos support the teams and other stakeholders by providing quick feedback concerning the fitness for use and integrity of the evolving end-to-end solution. System Teams may also assist with releasing and with Coordination of Solution Trains for large Development Value Streams.
However, the System Team and Agile teams share this responsibility. Otherwise, the System Team can become a bottleneck, and the Agile teams will not be fully capable of—or accountable for—full end-to-end value delivery.
The System Team in Solution Trains
For large, multi-ART development value streams that need the constructs of the Solution Train, System Teams are particularly useful for supporting the larger-scale integration challenges. Depending on the scope and complexity of the development value stream there are three main patterns for structuring the System Team:
The decision regarding which pattern to use depends on the specific context. Factors include the ART structure within the development value stream (built around features or components), the solution’s architecture, branching and integration policies across the ARTs, system testability, and development infrastructure.
The System Team’s primary responsibilities are building development infrastructure, solution integration, end-to-end testing, system and solution demos, and release. These responsibilities are described in the following sections.
Building Development Infrastructure
The good infrastructure supports high ART velocity, so the System Team may:
The System Team may also perform some necessary testing duties that support the Agile teams:
System and Solution Demos
At the appropriate time during every iteration, the ART demonstrates the current, whole system to stakeholders in the system demos. Likewise, the Solution Train must integrate and show progress at the solution demo. The System Team typically helps prepare the technical environments to reliably demo the new solution functionality.
The System Team often has unique skills and experience related to the evolving solution. It may include QA and operations personnel and members of the System Architect/Engineering team may serve as a member of this team. They have a broad, end-to-end solution experience, which means they understand what it is and what it does. With this perspective, the System Team can support the ART or Solution Train to prepare, package, and deploy a solution as part of DevOps and the Continuous Delivery Pipeline activities.
Balancing Solution Integration and Testing Effort
The System Team, however, can never be the entire solution to the pipeline tooling and integration challenges. They must collaborate with Agile teams on a shared vision to implement DevOps and the continuous delivery pipeline. Efficient solution development requires sharing best practices. For example, if the System Team executes end-to-end performance testing but individual teams don’t perform even lightweight performance testing, performance problems may be revealed late causing delays and rework. The inverse is also true. Requiring teams to perform extensive performance tests for every Story slows their velocity. Maximizing ART velocity requires a sense of balance between Agile teams and System Teams, as Figure 1 illustrates. With maturity and automation, the optimum point for integration responsibility moves to the left.
System Team Leader
Responsibility is to ensure that all technical processes of the program are up and running.
The System Team performs a critical task in the agile setup, as its purpose is to support the entire Continuous Delivery Pipeline (CI/CD). Consequently, the team’s role is a prerequisite for the entire Agile Release Train, enabling it and the various agile teams. It is a specialized agile team that services the entire agile development environment through development and maintenance.
They help build agile environments and assist with system and solution integration, thereby paving the way for the agile teams, so they can be effective.
Delivery from start to finish
Since the primary function of the System Team largely relates to the technical setup, the biggest work pressure for the System Team is, therefore, found in the early stages of the transition, highlighting the need for a technically skilled System Team Leader.
In addition, you often see the System Team is scaled down as programs progress.
This calls for a person, who is able to finish the project appropriately, one who can ensure quality in both documentation and in the handover to the teams that will drive things going forward. An efficient executor and skilled communicator – one who is able to get started quickly and deliver consistently throughout the entire process and until the end, where important information related to the work of the System Team must become anchored in the organization.
The key to success is technical prowess as well as strong communication skills
The role of System Team Leader is extremely technical by nature and therefore requires a sharp technical profile that is used to the many different aspects of the role. Today’s large-scale digitization projects and agile transformations greatly change the way we think and work, which is why the skilled System Team Leader also can fill the role of the agile coach if the need arises:
Good communication skills are essential to succeed in the role of System Team Leader, as an important part of the work is to support and serve all the agile teams. It requires a person who can put himself/herself in the place of others and understand where they are coming from and understand their problem, while at the same time making people feel understood:
A System Team Leader with good social and communication skills, as well as a comprehensive understanding of all the moving parts of a SAFe setup paves the way.