0

Imagine having an ART (Agile Release Team in SAFe) with people with following skill groups:

  • backend developers,
  • mobile developers,
  • BI developers.

Having, as a product, a mobile app like Uber Eats, imagine that we want to deliver value to the users via new features like adding a screen with map showing a location of the food deliverer.

The question is: how to form the teams? Either (a) strictly cross-functional, or (b) around skills?

With (a) we group people with different skills in one team, so we can deliver full feature (from backend, through mobile app screen, till the analytics & reports). On the other hand, it might be possible some skills would be underutilized (e.g. too less work for single BI developer).

As opposed, with (b) we rather group people around skills and move coordination from team-level, to ART-level. However, is then possible to have a feature that brings value, but does not span across different teams in the ART? I guess SAFe expects to have rather one team "doing" a feature, not sharing whole feature with different teams.

2
  • 7
    jeeze i need to get my management speak bingo card out before i read more about SAFe
    – Ewan
    Sep 12, 2022 at 23:06
  • Specialists teams have massive inertia and only vertically scalable. All-rounder teams are more nimble and are horizontally scalable.
    – S.D.
    Sep 13, 2022 at 4:27

3 Answers 3

1

SAFe pretty clearly recommends cross-functional teams. The hope is that each member of the team would have many skills, so that the BI expert (as per your example) can productively contribute even when her BI skills aren't needed.

I've found the best way to help folks improve the skills they are less familiar with (increasing their versatility) is through social programming methods such as pair programming or mob programming. This allows them to learn by doing while also being able to contribute diverse points of view and reducing errors. It's an approach that can be win-win-win all around.

From https://www.scaledagileframework.com/agile-teams/:

Agile teams span functions and are composed of 5-11 members from across the organization who are dedicated to their team full-time. This eliminates the hand-off and delays that pushing value through silos causes. Each Agile team has all the skills necessary to develop increments of value in a short timebox (Figure 1). They can:

  • Define – Independently elaborate and design features and stories to accomplish their mission
  • Build – Contain all skills necessary to create the artifacts to meet their mission
  • Test – Ensure an artifact’s quality and performance
  • Deploy – Where applicable, deploy increments of value

© Scaled Agile, Inc. Include this copyright notice with the copied content.

2
  • 1
    Not only SAFe. Most Agile frameworks specifically autonomous teams with different skills but able to provide some functionality by themselves without the need to coordination
    – Borjab
    Nov 17, 2022 at 9:14
  • @Borjab - Indeed. The question mentioned SAFe, so I figured it was the best reference for the answer. But all the approaches based on Scrum or XP favor teams of generalists over specialists. Nov 18, 2022 at 13:32
0

This comes up a lot and the "answer" often depends on who you ask. There are competing views within the agile and SAFe communities on this. From what I've seen in the wild:

  1. For the people in question, consider assigning them to the team they will spend the majority of their time with. Then, let the other team "borrow" them for an appropriate percentage. Sharing this way IS suboptimal but usually more palatable than "we need to hire another dev so Bob can spend 8 hours/week on ___."

  2. Observe and adjust as needed. Many orgs new to SAFe spend too much time trying to get org details like this "right" the first time (unironically). Consider, "we're going to give this a try and see how it goes" as walking the agile talk.

There are no great answers to the "team member rounding" problem in practice, only least bad ones. And the ones that work for you and your org. Good luck!

0

There's no one right way to organize your teams. Even within an organization, you may have several types of teams. Consider Team Topologies and the unFIX model. Depending on your product and organizational context, you can consider several ways of organizing the team.

The ART - Agile Release Train - is a group of teams that have some level of dependencies between them that need to be identified and either eliminated or managed. Defining platforms, value streams, complicated subsystems, and other aspects of your system and value delivery model may show you different ways to organize your teams.

If you were to go through these exercises of looking at your value streams and system architecture, I would be careful when defining features. Specifically, combining analytics and reporting with user-facing functionality could put you in a tough spot. It may be better to define value streams to different stakeholders and treat the analytics as a separate value stream or as a complicated subsystem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.