T-shirt sizing is a method in agile software development to estimate a group of initiatives relative to each effort’s complexity.
T-shirt sizing uses the following scale:
- XS (extra small)
- S (small)
- M (medium)
- L (large)
- XL (extra large)
Typically, the purpose of t-shirt sizing is to give product and business decision-makers adequate information about the relative cost certain projects will incur.
This exercise helps them to make more informed trade-off decisions. It can also help surface dependencies that the product team may not have been aware of. It’s not a perfect solution but it can positively influence how the roadmap is impacted.
T-shirt sizing has some similarities with, but has a different role than story point sizing.
Each method is used as a way to estimate the relative sizes of a group of efforts. What makes it different is that when estimating using t-shirt sizes, the estimates are typically being applied on epic or project-level initiative.
Story points are typically applied to user stories which are smaller and more clearly defined.
When estimating the relative sizes of a group of initiatives a small team will come together to discuss the initiatives. The process is as follows:
- A Product Manager explains each initiative at a high level
- A lead developer asks sufficient questions to understand each project but tries not to get lost in the details
- After understanding each of the initiatives, the development team assigns t-shirt sizes to each project
A common starting point is to identify the smallest effort project and assign it an XS. Following this, other projects can be sized relatively to it. Multiple projects can have the same t-shirt size.
T-shirt sizes should be rough. A common understanding should exist between everyone involved in the process that the sizes will not be held against anyone if sizes end up being different than anticipated.
The trust should go both ways. The business stakeholders should be given the flexibility to change the direction and requirements of a project as more information becomes available.
Likewise, the development team should be given flexibility when the unknown complexities of certain projects cause their effort to be larger than initially anticipated.
Without this flexibility, the trust necessary to complete this exercise will be gone and what should take a single short meeting will end up being multiple, drawn out, unproductive arguments. Several ways that trust can be broken throughout this process include:
- Business stakeholders pressuring development teams to connect time increments to t-shirt sizes
- Business stakeholders assigning t-shirt sizes themselves without development buy-in
- Development teams being consistently off with their estimates
Sometimes, under the pressure of executives, teams are tempted to assign time frames to t-shirt sizes, but since the amount of effort won’t be clear until designs, architecture and user stories are completed, these estimates will almost always be off.
Since t-shirt sizes represent estimates for a project with a minimal amount of information, these estimates start out as rough, low-confidence guesses.
As the clarity of a project takes shape in the form of user stories, estimates become higher-confidence via story point values.