When working on a complicated product it can be tempting to focus on individual components rather than on end-user functionality. For example, a team might decide to build out an authentication component first before adding a user interface (UI).
The disadvantages of this approach include:
- It is a while before stakeholders get to see working user functionality
- Integration of components can get pushed back to later in a release (or project)
- It is difficult to measure true progress
The alternative is to try and generate end-user functionality at the earliest possible opportunity. With complicated products this can be a challenge as lots of components may need to work together for the product to function.
What is a thin slice?
A thin slice is a rapid progression to end-user functionality by doing just enough of the components involved to allow things to work. It may even include mocking or stubs for components that are not yet completed.
Why use a thin slice approach?
A while back I was working as a Scrum Master for a team where the developers were each focused on different tiers and components of a product. With the end of sprint approaching I asked the team for a demonstration of what had been completed so far. They said fine, but first a bit of integration was needed. Three days later the team was still working on integration and the deadline for the showcase loomed large.
This incident highlighted to me the risks of late integration. It is notoriously difficult to predict how long integration will take and pushing integration to the back of a sprints (or releases) is a dangerous approach.
Using thin slices can force an early integration of components, even before the components are completed. This can be painful, but at least the pain is happening during the early stage of the work and not at the end.
The biggest disadvantage of the thin slice approach is that it can give stakeholders a false sense of the completeness of functionality. If stubs or mocks are used these need to be carefully explained to stakeholders so that they know there is still work to be done.