A fractal is a structure in which, when you look closer, you will discover self-similarity at different scales. (wikipedia).
Zoom In and Out Scrum
Fix The Empirical Process Control
In Picture A, you can find a typical representation of a Sprint in Scrum, which is, perhaps, a misunderstanding of both iterative development and empirical process. After a sprint, the organization should have an updated direction, embodied by an updated product backlog, as shown in Picture B.
Rotate and Zoom In 1
Let’s rotate Picture B inward and zoom in to reveal some details in a successful Scrum team. Within a Sprint, you can find multiple iterations, and each adds a done increment to the product, gets full-cycle feedback, and delivers customer value. The team will limit the Work-In-Progress by finishing one item before moving on to the next one, as shown in picture C. Scrum is iterative doesn’t mean a Sprint is one iteration.
Zoom In 2
If you zoom in again, you can find a successful Scrum team’s way of working repeats the above pattern. For the one item they are focusing on, they break it down into many small iterations, and each of them is a steady stepping stone towards their goal and seeks to have full-cycle feedback. As shown in picture D, a team will use practices like ATDD, TDD, trunk-based development, continuous delivery, etc.
Zoom In 3
Let’s look even closer. A successful team with many members does not work in a single thread (some do, using mob programming). They may split an item into smaller tasks and work in parallel. But as we saw before, all these tasks belong to the same item, and everyone is continuously coordinating and integrating. It will look like picture E. It might look intimidating for many, but not for a team practice collective code ownership, continuous integration, communication through code, and self-managing coordination, in addition to their individual practices like TDD. Unfortunately, decision-makers usually do not have visibility at this level, and Scrum Teams typically are not equipped with the technical practices that enable them to experience this.
Now, let’s zoom out. How do you scale Scrum? A LeSS Sprint should look like picture F. The entire development organization focuses on the same direction. Teams may focus on different user-centric items, but these items belong to a limited number of larger topics. They integrate and coordinate by themselves all the time. At the end of the Sprint, the organization has an updated direction, reflected in their single, updated Product Backlog.
The Wrong Fractals
All models are wrong, but some are useful. Like many people in the LeSS community, I’ve had this mental model for many years, which helped me organize my thoughts on software development at different scales. I kept it to myself because I thought the problems and constraints differed at each level, and my mental model could be an oversimplification. On the one hand, now I feel there’s enough similarity to call it a fractal structure. On the other hand, I see the danger of it. I found there are a couple of things worth noticing.
- The Sprint itself is not part of the fractal. A Sprint has unique qualities. For example, it has an arbitrary timebox, which is the cadence of the organization.
- A misunderstanding of Scrum is that the work should be pre-planned to remove dependencies, typically by the management. The integration and coordination are also led by management, usually when the individual tasks are done. As shown in the picture, this model is too wrong to be useful.