Roles and Responsibilities: System Teams

What are System Teams - SAFe blogs - Aman Luthra

The growing complexity of modern software systems can dramatically affect the speed, quality, and flow of delivering value to customers. In this blog, we delve into how System Teams play a pivotal role for a organization and what are their responsibilities. But before we jump in, let’s take a quick look at what exactly is a System Team?

What is a System Team?

The System Team is a specialized Agile team that assists in building and supporting the Agile development environment, including developing and maintaining the Continuous Delivery Pipeline. They may also support the integration of assets, end-to-end solution testing, DevOps mindset and practices, deployment, and release on demand.

The System Team accelerates the ART’s velocity and reduces the cognitive load on development teams by building and maintaining the Agile development environment infrastructure, for example:

  • The creation and maintenance of a Continuous Delivery Pipeline toolchain. This toolchain encompasses continuous integration, automating builds (including verification testing), deployment, and release.
  • Creating platforms and environments for development, user acceptance testing, solution demonstration, deployment, and production
  • Facilitating the technical elements of collaborating with third parties like hosting and data service providers
  • Ensuring the ART has an intentional architecture for the infrastructure and that teams use standard tools and DevOps practices.

Roles and Responsibilities of System Teams

The System Team’s responsibilities can be categorized into the following areas as shown in the figure below, followed by a detail look into each of these areas.

Roles and Responsibilities of System Teams -SAFe blogs - Aman Luthra

First Responsibility: Building Development Infrastructure

A robust technical infrastructure supports high ART velocity, so the System Team may:

This includes automating continuous integration, builds and testing, deployment along with release tools

Creating environments for development, demos and user acceptance in the cloud or on-site premises

System teams should act as the liaison with third parties, such as data, service, suppliers, or hosting providers

Second Responsibility: Supporting the Solution Integration

System teams should also support solution integration in complex solutions by involving in the following:

System teams should determine and help maintain decisions and policies for version control and management

System teams must create and run solution-level build and integration scripts or manually integrate where automation does not yet exist

Most work of System Teams come from Agile Teams, so various events must be attended by them to be in pace with the needs of the train.

Third Responsibility: Assisting with end-to-end Testing

Systems Teams should provide the environments to help teams create automated tests to support new or existing functionality.

System teams should create and maintain re-usable data sets and maintain it under version control.

System teams should organize test cases designed by individual teams into ordered test suites, prioritize time-consuming tests, and improve testing infrastructure.

System team should also assist teams in performing manual testing for complex scenarios

Development teams should also be assisted by System teams in verifying with integration between different systems.

Verification tests to enable developers to verify their builds quickly and independently should be built by System teams.

System teams help create and run tests for NFRs and assist System and Solution Architects identify system shortfalls and bottlenecks.

Fourth Responsibility: Supporting System and Solution Demos

System teams work with Agile Teams to define what they will demo at the end of each iteration, and they also assist in preparing the needed environments and infrastructure.

System teams should also support the integration of assets and artifacts from Agile Teams.

System teams assist Product Managers and Owners and others in running demos predominantly in end-to-end scenarios.

System teams must prepare the technical environments needed to demo the new solution functionality reliably. They might also be required to add extensions to the demo environment, including new interfaces, third-party components, simulation tools, and other environmental assets in each solution increment.

Fifth Responsibility: Facilitating Releases

System teams assist ARTs with planning and managing releases. They also help agile teams ensure they meet regulatory, industry or other relevant standards and compliances.

System teams are responsible for packaging and deploying solutions as part of DevOps and CDP activities. This include using various techniques such as feature toggles to switch features on and off.

They help the trains release the solution to end users all at once, incrementally or to different customer segments.

System teams collaborates with operations to ensure the solution works well from a functional and Nonfunctional Requirements (NFR) perspective.

System helps the train instrument and quantify if the newly released functionality provides the aspired value. They also help collect feedback from different sources and prepare for the next loop through the CDP.

Get details about certified SAFe certifications:

Leave a comment