Agile People

A generalizing specialist is someone who has deep expertise in one or two areas and working knowledge across many others. T-shaped (or comb-shaped) people.

This is the ideal team member in agile environments. Not a narrow specialist who can only do one thing. Not a shallow generalist who can’t do anything well. Something in between.

Why agile teams need generalizing specialists:

  • Reduced bottlenecks — if only one person can do database work, the team stops when that person is sick. Generalizing specialists can cover for each other.
  • Better collaboration — when you understand what your teammates do (at least at a working level), you communicate better, make better design decisions, and produce more cohesive work.
  • Higher throughput — team members can swarm on whatever the current priority is, rather than waiting for “their” work.
  • Systems thinking — understanding the whole system leads to better local decisions. A frontend developer who understands databases makes different (better) API design choices.

How to become a generalizing specialist:

  • Go deep in your core skill(s) — this is your foundation
  • Then systematically learn adjacent skills to a working level
  • Pair with specialists in other areas
  • Volunteer for tasks outside your comfort zone
  • Read broadly about the entire stack/domain

The anti-pattern is the “hero” who is the only person who can do something critical. That’s a single point of failure, not an asset. The goal is a team where expertise is deep but distributed.

Related: Active Stakeholder Participation, Inclusive Tools & Techniques