Cross-functional teams
Cross-functional teams arenāt a new idea. And yet, somehow, we still donāt seem to have got the memo.
I was listening to the excellent Scott Hanselmanās podcast āHanselminutesā last week, he had Angie Jones on to talk about automation. Among all the great advice around ensuring that automation is a first-class citizen in your development process one thing stood out for me
you need to get your automation engineers into your scrum team
I donāt know why, but it surprised me. Are there really companies out there up to speed enough to be doing test automation; yet so behind the times with agile that they think itās a good idea to have a dedicated team of automation engineers, removed from the rest of the dev team?
Cross-functional teams are a pretty central idea to agile ā breaking down silos and ensuring that everyone that is required to produce an increment of working software is aligned and working together. Itās certainly not a new idea, but itās clearly an idea that weāre still struggling to absorb.
But then, looking back, I remember working for a certain large company that decided they needed to ādo more test automationā. So they hired a room full of automation engineers, who sat two floors away from the dev team, in a room hidden away (we honestly didnāt know they were even there for weeks, maybe even months). This team were responsible for creating an automated test pack for the application (rather than use the one the test automation engineers in the scrum teams had been working on for the last few years). But⦠they werenāt even talking to the scrum teams. So they were constantly chasing to keep up. As you can imagine, hilarity ensued. I say hilarity. Arguments, really. Then anger. Eventually laughter as we realised all this effort was wasted because the scrum teams wouldnāt ā in factĀ couldnātĀ ā support this new automation code.
Clearly not getting the idea of cross-functional teams is an age old problem. Compare this to a more recent client of mine ā one that had a genuinely more cross-functional team. Not only did the scrum team have its own automation engineer, the developers (actual developers, not re-branded testers) were encouraged to work on the test automation tools ā to everyoneās benefit. Test tooling written to the same standards as production code, with the insight and experience of the test automation specialist. This is moving beyond cross-functional teams into cross-skilled teams. Not only is every skill set you need within the same scrum team, but each individual can have multiple skills, taking on multiple roles.
Sure, you still need specialists. But with generalizing specialists you get the best of both worlds: the experience of specialists in their area, with the flexibility and breadth of ideas that come from the whole team being able to work on whatever is required. When the entire team can swarm on any area you have a very flexible team, if we need a big push for test automation the entire team can focus on it. Similarly with plenty of pairing and rotation everyone on the team will see every area and every role, allowing everyoneās unique perspective to improve the product and the process.
But then, a counter-example, the same client suffered from another age-old silo: operations. I thought devops had killed this silo, but it seems not. If the scrum team canāt release an increment of software to actual users then it isnāt a fully self-contained, self-sufficient, cross-functional team. A scrum team working with a separate test automation team seems like a crazy idea; and yet, somehow, a scrum team working with a separate operations team is much more normal, much more accepted. But itās the exact same problem: if you donāt have everyone you need in the same scrum team then youāre going to get bottlenecks. Youāre going to get communication problems. Youāre going to get a āthem-vs-usā attitude.
Every time Iāve come up against this the typical argument against operations staff being embedded within scrum teams is that theyāre not working on āyour stuffā all the time, so the rest of the time theyād be busy doing other stuff, unrelated to āyour teamā or theyād be bored. Well, maybe if we freed up that extra capacity we could release more often? Maybe they could be working on making it quicker, easier, safer to release more often? Maybe they could be more deeply involved with development when weāre making decisions which affect what theyāre going to release and how itās going to wake them up in the middle of the night. Maybe they could even help with other, non-production environments? The neglected, little siblings of production that every company seems to struggle to pay enough attention to.
Maybe, even, over time the team evolves from having the operations specialist to having team members cross skilled into operations. Under the watchful eye of the specialist could we, shock horror, let testers touch production? Could the BA manage a release? In some industries this is completely impossible for regulatory reasons, but in all the others its āimpossibleā for merely arbitrary reasons.
Breaking down silos is never easy ā but I think itās an interesting reflection of how far weāve come that some silos seem frankly ridiculous now, while others just seem old-fashioned. I still hold out for the distant dream of genuinely cross-functional teams. Whenever Iāve seen this actually happen the lack of bottlenecks and mis-communication makes everything so much faster, so much easier. In the end a cross-functional team is better than silos. But a cross skilled team is better still, if you can manage it.
| Reference: | Cross-functional teams from our JCG partner David Green at the Actively Lazy blog. |

