“When you have specialized skills in a team that are not needed 100% of the time, how do you include them in the Agile team?“
First, we need to understand that there is a difference between generic Agile Teams, and Scrum Teams. Every time we say the word ‘agile’, we are referring to a generic type of Agile team or a generic Agile process that the team uses. When we say ‘Scrum team’, that’s specifically a Scrum team where we have a Product Owner, a Scrum Master, and several Developers.
The thing is, we really don’t want Scrum Team Developers to only have one skill that they are helping a team with, or one skill that they’re using on the team. We actually want Developers to have multiple skills that they can help the team with.
For example, we might have a Developer with deep database skills. Well, if we don’t always have a need for database work, maybe we get them to focus a little bit on learning front-end work (or look and feel / user interface work). That would give them enough exposure to what we’re doing here as a software engineering team, so that both of these skills would help them be engaged with the team’s work 100% of the time.
Their database skills, that they have a depth of experience and interest in, may not give them that exposure. But that secondary skill, that they have at least a little bit of broad knowledge in, would help the team cover more ground.
How do we do this on a Scrum team? Well, we take someone with only one skill that they use all the time, and we have them cross-train with another team member. So they can get greater exposure to that other skill that is used 100% of the time.
This doesn’t have to just be Developers. This could be the Product Owner or the Scrum Master learning more skills too. This gives us greater exposure to other things that they might be able to use in the future. Maybe we can’t do certain types of work right now because we don’t have that coverage, but we will in the near future if we cross-train. Cross-training allows us to possibly take on a broader scope of work in the future, because the Developers can do many different types of work.
So, don’t be satisfied with Developers just having one great skill that they offer to the team. We want to increase the coverage of the team.
Is any of this mandatory? No, there’s actually nothing in the Scrum Guide that currently says that Developers have to have more than one skill. But, it’s a good thing for any team that’s being considered cross-functional.
If you haven’t guessed yet, all of this actually has a lot to do with cross-functionality. Scrum Teams, by definition, are supposed to be cross-functional teams. Cross-functional, meaning that all the developers on the team, and all of the skills that they have, they should be able to develop our entire product without any outside help.
So cross-functionality is not the same as cross-trained. But the two concepts are closely related.
We could actually have a cross-functional team that is not cross-trained at all – every single Developer on the team with only a single valuable skill. More than likely, the product that you are building (using Scrum) is going to require more skills than we have people. So that means people are going to have to have multiple skills that they can provide to the team.