In some lines of business, such as consulting, the organizational business goals require a certain amount of specialization in order to deliver to clients efficiently and with high quality. These organizations also typically bill by the hour, meaning downtime is a serious cost to the business. This can be difficult in an agile development model as these specialists often create silos of knowledge. Also, these specialists often get pulled in many directions and their availability is not always predictable.
How do you make it work with a typical Scrum-like agile team?
In our example, we will look at a team of three senior developers working on a Scrum-like team with a Product Owner and a Scrum Master. Daniel has a background in design and front-end development. He is the expert on Less and responsive implementations. Roxanne is a .NET web applications developer who is the only person who can setup deployment automations. These two team members may overlap in other areas, but sometimes find too many projects competing for their abilities. The third team member is Mandy who is a web development generalist who can tackle most tasks on her own.
This team works at a consultant services firm where clients often dictate the budget, scope, and timeline. Already, the agile model encounters a challenge. Further, the companies revenues are based on billable hours meaning that any idle time needs to be minimized.
The current sprint is posing some challenges. Daniel is overloaded with stories that require his specialty knowledge. How will the team maintain velocity and keep their crew billing valuable hours?
1. Balancing the team
Mandy’s presence as a generalist on the team is very important. If the team has specialists with no overlap, it becomes more difficult to handle an increase in demand for one of the specialist’s time. Mandy knows enough CSS and Powershell scripting to help out Daniel and Roxanne with some more common tasks if either gets too busy. For this reason, always staff the team with some balance with a cross.functional member.
In this scenario, Mandy will pick up the more common CSS styling tasks and HTML markup creation tasks so that Daniel can focus on the more specialized portions of the stories.
2. Time for some cross-training
If Daniel is busy the development can’t grind to a halt if there is an overload of front-end related tasks. If it looks like Roxanne will have some extra time in a sprint, she should not sit idle. She should grab a story she is less suited for and use their expert, Daniel, as somebody she can ask questions of. Since Daniel is already working on other things (otherwise the story wouldn’t be available to grab) the team is not ‘wasting’ velocity, but are rather increasing the overall team ability and capacity in that specialty (assuming the time for questions does not negate the increase in productivity). This is a great way to use ‘idle’ team members to help the overall team velocity and increase the cross-functional ability of the team.
3. Minimizing idle time
Another option is to use Roxanne to help out Daniel on this front-end heavy sprint with other tasks that don’t require his specialty knowledge. She could write unit tests, write any necessary documentation, help out the Product Owner with any tasks that might need doing, write the demo script, or set up test environments. Remember always that ANY work that needs to be done by the team can always use an extra set of hands to make it happen faster!
4. Staggering specialist requirements
Let us assume that Mandy and Roxanne have found a way to help Daniel through the front-end crunch. During planning for the next sprint, the Product Owner informs the team that Continuous Integration software needs to be installed and configured for deploying to all of the client’s environments. Roxanne is the only one who can do this task, but this story is far too large for one person to do in a sprint.
Instead, Roxanne suggests splitting up the epic into multiple distinct stories which can be done across multiple sprints. This allows the team the ability to be efficient by using Roxanne to do the work, but also frees up more room in each sprint for other functionality that can be more efficiently built by Daniel and Mandy.
The techniques above will help you use specialists on your Scrum team for maximum efficiency and minimize their idle time when the backlog does not contain stories specific to their skill set. Do you use specialists on your team? Are they dedicated members? How are you handling these challenges for their time?