Getty Images/iStockphoto
What's the value in an Agile release train?
When multiple development teams work on code, integration and deployment become more complicated. ART could be a useful tool to smooth out these wrinkles.
To help be sure they deliver a high-quality and on-time product, software organizations sometimes employ an Agile release train. Going the ART route is an extra step, and it is not always clear when it is worth the effort.
ART is an overarching process team within the Scaled Agile Framework (SAFe) model that aims to smooth out work being done across multiple development teams. An Agile release train is designed to ensure that teams don't alter or break integrated or dependent code. When implemented successfully, ART delvers all code as a single, functioning product.
Essentially, ART is a method of managing large numbers of development teams. The more teams involved in development, the more likely it is that one team alters the codebase in ways that create defects and misalignments. Those flaws must then be fixed during product deployment or else you accumulate extensive amounts of technical debt.
A functioning ART delivers an aligned development approach based on collaboration and process transparency. It keeps projects on track through deployment and in step with business goals.
Let's examine the principles of ART, the roles within the team and how the ART team affects other team members and the development process.
What is an Agile release train?
ART team members plan, review and monitor work coming in from multiple development teams to ensure continuity and consistency. They make sure business goals and customer deployments happen on time and with a high degree of quality.
The roles on a typical ART team include the following:
- Scrum master. This person supports the SAFe principles and trains, teaches and monitors the development process to keep the project on track.
- Product owners. These are the stakeholders responsible for the business outcome of a product and the resulting customer experience (CX).
- Product manager. This person owns the product vision and business strategy, prioritizes features and defect identification, and aligns projects with the organization's product vision.
- Release train engineer (RTE). The RTE oversees task execution, with a focus on alignment of different development teams on processes, removal of work blockers and management of known risks or dependencies.
- System architect. This person manages monitors, reviews, assesses and controls the implementation of the product architecture.
RTEs fit into the Agile team as empowered and authoritative guides. RTEs exist to keep teams on track, integrated and producing high-quality work on a regular and rapid cadence. They are part of the team but at the level of a manager or team lead.
ART teams address a common trouble spot for Agile teams: where the code fails to fully integrate at the point of deployment to customers. Each Agile team iterates, but the full codebase does not. ART teams synchronize team development so the product remains fully functional and is released as a wholly functioning product.
The key principles of ART
The key purpose of ART is to provide structure, guidance and alignment to ensure effective collaboration between development teams. To make this happen, ART incorporates the following elements:
Fixed schedules. Project deliverables are determined by the program implement schedule.
- Two-week cadence. Instead of Agile sprints or iterations, ART teams work in two-week increments.
- Defined velocity. Planned work uses the team's historical velocity data.
- Synchronized development cadence. Increment schedules are set, but releases to customers depend on project completion.
- Ability to release at any time or on demand. If customer demand is high, a functional release can be deployed. This requires the code to be continuously integrated and tested.
- Program increment (PI) planning. A team meeting determines the strategic objectives for the next PI.
- Practice innovation and planning (IP) post-project completion. This planning meeting for the next PI addresses any infrastructure work or necessary training.
- Inspect and adapt meetings. Held after each PI, these sessions evaluate project progress and identify areas of improvement.
The principles of ART within the SAFe method are meant to achieve and sustain team collaboration and alignment. It's one thing to keep individuals working toward the same goal, but it's another thing to achieve it.
The RTE role is the differentiator. An RTE's role is to keep the project goals aligned across teams and monitor the project tasks, as well as the collaboration. An RTE's success in keeping the team and tasks on time, on point and aligned depends on effective and constant communication. From the start of a PI through code deployment are scheduled meetings and opportunities to gauge team alignment and get back on track as needed.
Is an ART even necessary?
What makes an ART team different from a regular Agile team? Perhaps the roles of the team members or the team member numbers? Or is it simply the same thing with more meetings, different role names and more formal touchpoints to gauge project status?
An Agile development organization doesn't need an ART if it does not experience integration problems or encounter missing code or defects caused by one team changing shared code. Beef up the role of the Scrum master to resemble an RTE and you have the managing oversight necessary to keep the team's work organized and not adversely impacting product delivery, regardless of how many Agile teams are in the organization.
It's the value in the RTE role that provides someone to keep the team organized and integrating code regularly. Continuous testing and deployment can be made part of an Agile or DevOps team's process, but the added advantage of an ART is simply the RTE role. An effective RTE can make the difference between meeting the release date or fixing integration defects during deployment and experiencing a growing technical team debt.
An ART has value within the SAFe development methodology. The RTE role has value across any type of Agile development methodology. Whether an organization goes all out on an ART or simply adds an effective RTE depends on the business product and CX. If integration defects are a constant problem during deployment or the quality of the application release is consistently low, then, at minimum, creating an RTE role may help improve CX with higher-quality releases and less persistent technical debt.
Amy Reichert is a 20-plus-year professional QA tester and a QA lead, specializing in test development, execution and management techniques. Her experience comes from a variety of sources, including ERP systems, architectural design, e-commerce and healthcare software.