Search this site
Embedded Files
Scrum Pattern Group
  • Scrum PLoP
    • Scrum Tulip PLoP 2021 - Enkhuizen Netherlands
    • Scrum PLoP 2019
    • Scrum PLoP 2018, Quinta da Pacheca, Portugal
    • ScrumPLoP 2017, Quinta da Pacheca, Portugal
    • ScrumPLoP 2016, Porto, Portugal
    • ScrumPLoP 2015, Porto, Portugal
    • ScrumPLoP 2014, Helsingør, Denmark
    • ScrumPLoP 2013, Helsingør, Denmark
    • ScrumPLoP 2012, Helsingør, Denmark
    • ScrumPLoP 2011, Helsingør, Denmark
    • ScrumPLoP 2010, Stora Nyteboda, Sweden
  • Original Org Patterns Site
    • Organizational Patterns of Agile Software Development
      • Book Outline
        • Preface
        • History and Introduction
          • An Overview of Patterns and Organizational Patterns
          • What Are Patterns?
          • What Are Pattern Languages?
          • Organizational Pattern Languages
          • How the Patterns Came to Us
          • Gathering Organizational Data
          • Creating Sequences
          • History and Related Work
          • Introspection and Analysis of Organizations
          • Shortcomings of State of the Art
          • Analyzing Roles and Relationships
          • How to Use this Book
          • Reading the Patterns
          • Applying the Patterns
          • Updating the Patterns
          • Who Should Use This Book?
          • Size the Organization
          • The CRC-Card Methodology
        • The Pattern Languages
        • Organizational Design Patterns
          • Project Management Pattern Language
          • Community of Trust
          • Size the Schedule
          • Get On With It
          • Named Stable Bases
          • Incremental Integration
          • Private World
          • Build Prototypes
          • Take No Small Slips
          • Completion Headroom
          • Work Split
          • Recommitment Meeting
          • Work Queue
          • Informal Labor Plan
          • Development Episode
          • Implied Requirements
          • Developer Controls Process
          • Work Flows Inward
          • Programming Episode
          • Someone Always Makes Progress
          • Team per Task
          • Sacrifice One Person
          • Day Care
          • Mercenary Analyst
          • Interrupts Unjam Blocking
          • Don't Interrupt an Interrupt'
          • Piecemeal Growth Pattern Language
          • Size the Organization
          • Phasing It In
          • Apprenticeship
          • Solo Virtuoso
          • Engage Customers
          • Surrogate Customer
          • Scenarios Define Problem
          • Firewalls
          • Gatekeeper
          • Self-Selecting Team
          • Unity of Purpose
          • Team Pride
          • Skunkworks
          • Patron Role
          • Diverse Groups
          • Public Character
          • Matron Role
          • Holistic Diversity
          • Legend Role
          • Wise Fool
          • Domain Expertise in Roles
          • Subsystem by Skill
          • Moderate Truck Number
          • Compensate Success
          • Failed Project Wake
          • Developing in Pairs
          • Developing in Pairs
          • Engage Quality Assurance
          • Application Design is Bounded by Test Design
          • Group Validation
        • Organization Construction Patterns
          • Organizational Style Pattern Language
          • Few Roles
          • Producer Roles
          • Producers in the Middle
          • Stable Roles
          • Divide and Conquer
          • Conway's Law
          • Organization Follows Location
          • Organization Follows Market
          • Face-to-Face Before Working Remotely
          • Form Follows Function
          • Shaping Circulation Realms
          • Distribute Work Evenly
          • Responsibilities Engage
          • Hallway Chatter
          • Decouple Stages
          • Hub Spoke and Rim
          • Move Responsibilities
          • Upside-Down Matrix Management
          • The Water Cooler
          • Three to Seven Helpers per Role
          • Coupling Decreases Latency
          • People and Code Pattern Language
          • Architect Controls Product
          • Architecture Team
          • Lock 'Em Up Together
          • Smoke Filled Room
          • Stand Up Meeting
          • Deploy Along the Grain
          • Architect Also Implements
          • Generics and Specifics
          • Standards Linking Locations
          • Code Ownership
          • Feature Assignment
          • Variation Behind Interface
          • Private Versioning
          • Loose Interfaces
          • Subclass Per Team
          • Hierarchy of Factories
          • Parser Builder
        • Foundations and History
          • Organizational Principles
          • Priming the Organization for Change
          • Dissonance Precedes Resolution
          • Team Burnout
          • Stability and Crisis Management
          • The Open-Closed Principle of Teams
          • Team Building
          • Building on the Solid Core
          • Piecemeal Growth
          • Some General Rules
          • Make Love Not War
          • Organizational Patterns are Inspiration Rather Than Prescription
          • It Depends on Your Role in Your Organization
          • It Depends on the Context of the Organization
          • Organizational Patterns are Used by Groups Rather Than Individuals
          • People are Less Predictable than Code
          • The Role of Management
          • Anthropological Foundations
          • Patterns in Anthropology
          • Beyond Process to Structure and Values
          • Roles and Communication
          • Social Network Analysis
          • Distilling the Patterns
          • CRC Cards and Roles
          • Social Network Theory Foundations
          • Scatterplots and Patterns
        • Case Studies
          • Borland QuattroPro for Windows
          • A Hyperproductive Telecommunications Development Team
      • Appendices
        • Summary Patlets
        • Organization Book Patlets
        • Bibliography
        • Photo Credits
      • Mysteriously Missing
      • Supporting Pages
        • Common Pattern Language
        • Organizational Patterns
        • Diversity of Membership
  • Original Scrum Patterns Site Archive
    • Scrum as Organizational Patterns
    • Scrum Patterns Summary
    • Software Scrum Patterns
    • First-Level Scrum Patterns
  • The ScrumPLoP Mission
  • What is a PLoP?
Scrum Pattern Group

Moderate Truck Number

In an insurance company we studied, the project scheduled some of their release dates around the vacation times of a small number of key staff. While this is much better than constraining vacation times to the release schedules, it would have beenbetter if the project had been less dependent on those employees. As should have been predicted, the release date slipped and interfered with the vacation dates, anyhow.

... you have built an organization around specialists whose background and training match the expertise required by the application and market, DomainExpertiseInRoles.

✥ ✥ ✥

A project cannot become overly dependent on any small number of individuals. It's important to have specialization. No amount of general accomplishment can compensate for experience. And this experience is embodied not in any abstract concept of roles, nor is it often found in any supporting document or knowledge base that a plug-compatible-interchangeable-developer could leverage. The expertise is most often embodied in a living human being who can make choices.

Such human beings may make unpleasant choices, such as leaving the organization for another company. Or they may make silly choices, like walking out in front of a truck at a busy intersection, never to return to the project again.

And life may make choices for such individuals, such as giving them prospects for promotion. Sadly enough, there is a high correlation between an individual's perceived expertise and the chances that a company will offer them promotion to optimize the chances for the Peter Principle to have its way. Or another project within the organization may take them away.

It is a risk if there are too many cases where your project depends on such individuals for singular knowledge. You know you're in trouble if your project keeps a list of people and schedules release dates around their vacation times.

Yet it's still important to embody expertise in individuals, since it reduces communication between individuals regarding decisions within a certain business area and ensures that the right experience is brought to bear in such decisions.

And it's important to recognize that everyone brings some expertise to the table; if everyone were the same, there would be useless redundancy in the organization (see DiverseGroups, HolisticDiversity).

Yet not everyone can know everything. Being a true expert in a topic requires all of one's attention, and it is difficult to sustain multiple areas of expertise.

Define the truck number as being the number of people in the organization who have unique critical domain expertise. You don't want the truck number to be large, because that means that the probability is large that the loss of any given team member would mean the loss of critical expertise. The risk would be too high. Yet it's impossible to make the truck number very small (it's almost impossible to make it zero). Even if you could make it small, you probably wouldn't — because if it were one, then everyone but the critical resource is intellectually redundant, and by some rationale, all the other members of the organization could turn into just overpaid worker bees or software assembly line workers.

Therefore:

Keep the truck number low; retain a small number of key experts with unique knowledge. Build a culture of shared knowledge that increases the breadth of knowledge over time, particularly for knowledge that easily can be codified, taught, or otherwise conveyed.

How do you do this? One way is to use DevelopingInPairs. Another is to make sure the experts rub shoulders with the mere mortals. Use ArchitectAlsoImplements. Of course, you retain a non-zero truck number by keeping the architects from becoming mere mortals themselves; see ArchitectControlsProduct.

✥ ✥ ✥

Cross-training can be an effective technique for sharing knowledge. In particular, ApprenticeShip is an effective form of cross-training. However, some of the deepest knowledge and "good guts" — gut feeling — cannot be conveyed from an expert to an apprentice.

A pattern language of the organization's key competencies can provide some relief for experts and can reduce the risk for the organization. Collect patterns from domain experts.

It is not the goal to level the playing field. You still need DomainExpertiseInRoles. It is too expensive (in time and talent) to guard against any possible staff loss by completely replicating talent. You want enough cross-training to control the costs of recovery from losing a person. Trying to spread expertise too broadly will in fact just dilute the overall expertise by detracting from each expert's focus.

Truck Number is a measure of vulnerability of an organization. It's usually pretty easy to calculate it: just ask yourself, "Which people in my project can we absolutely not do without?" It's likely that several names immediately come to mind. These people are the key architects, programmers, or perhaps even testers. And they are critical in part because they know things that others don't. So we try to get them to share that knowledge with the rest of the team.

Note that although we speak of the Truck Number as a number, it has a subjective qualitative aspect to it as well. In other words, not all critical experts are created equal. The loss of some experts may cause serious problems, but the loss of others may be absolutely devastating!

One of the authors once studied a small software company. While the company and its (single) product looked good, one particular employee seemed to be unusually dominant. If he were to leave, the company would be in serious jeopardy. Unfortunately, he did leave, and the company suffered greatly. The moral is to watch closely for such individuals, and make sure they continually share their expertise.

Why doesn't DevelopingInPairs solve the problem completely? It certainly helps, but people are still individuals, and have different skills. You can have a pair in which each member is good at something different; the pair is greater than the sum of the individuals.

As with any risk reduction activity, reducing the Truck Number is an exercise in trade-offs. You may find that duplicating the expertise of certain people just isn't cost — or time — effective. So you live with the risk. Maybe you try to reduce it in other ways, such as creating incentives for those people to stay on the team (see, for example, CompensateSuccess.)

Copyright © 2026 The Scrum Patterns Group
Report abuse
Page details
Page updated
Report abuse