The Problems with Specialists on Agile Teams

February 18, 2011

As I noted in my previous post, I prefer to staff Agile teams with generalizing-specialists, using specialists on an as-needed basis by temporarily allocating them to a team or having them consult with a team. This avoids some very real problems that will impact the productivity of an Agile team.

Why? Because the very nature of specialists will create conflict that is counter-productive to Agile development.

Specialization encourages:
  • Building of functional excellence by having each person execute a narrow set of tasks with great efficiency.
  • An identification of work through a narrow lens of a job title or job description.
Agile Teams of Generalists encourages:
  • People to play multiple roles and work together interchangeably.
  • Identification with the output of the team’s work.
A specialist will not be motivated to work on an Agile team where interchangeable roles are expected of team members, their motivation is quite the opposite: They are strongly motivated to work in their area of specialty. After all, a specialist has invested a lot of time and effort in developing his or her expertise, and the last thing that a specialist wants to do is to erode his or her skill set.

A focus on specialization will drive teams to task out work to accommodate each person’s specialty, leading to productivity problems.

Specialization tends to drive a pre-assignment of tasks, tasks that will be worked in isolation by specialists. This will reduce –if not eliminate – the strong collaboration that Agile teams find advantageous. Specialization and pre-assignment of tasks can create bottlenecks in cases where there is a lot of work is waiting on the specialist. In other cases where there really isn’t enough work for the specialist to perform, specialists have a strong preference and tendency to reach deeper into backlogs for work that meets their specialty instead of helping the team complete its current work.

Agile development is all about embracing change, and there is a very real possibility that some items in the backlog (and not yet been taken on by a team) will not actually see the light of day. Reaching into the backlog can create waste because priorities can and will change.

Specialists also introduce more hand-offs between members of the team, reducing efficiency because more time is occupied in the act of “knowledge transfers.” This can drive teams towards more formalized, documented mechanisms for passing the work through multiple people, leading to less conversation and more time creating documentation whose only purpose in life is to “facilitate” the hand-off.

Specialists should be leveraged by teams of generalists. Good, generalizing-specialists on Agile teams increase their productivity through a real-time sharing of their understanding and knowledge along with full collaboration in the performance of the work itself. The collective intelligence applied to the work (and limiting the amount of work in process at any one time) reduces the time is takes to complete any one User Story while increasing the quality of the final product in terms of design and quality, providing significant long-term productivity gains.