Member-only story
Why Don’t They Build Cars in Sprints?
If continuous flow assembly is the preferred way to make cars, then why not software?

Have you ever seen a car assembly plant that produces cars in discrete Sprints that begin and end? As in, at the start of a two week period, the team commences to build a new batch of cars, and completes only those cars by the end of the Sprint? No new cars are commenced late in the Sprint, as all personnel are purely focused on completing the cars that they commenced at the Sprint’s outset? All the equipment used for the earlier stages of assembly lays idle whilst a batch of cars is finished and delivered at the end of the Sprint. Me neither; it would make no sense to work this way. And it wouldn’t make sense to clear the assembly line of all cars by the end of each Sprint — that would slow down throughput of the plant dramatically.
Instead, modern assembly plants use a pipeline or continuous flow system. Work flows through all stages of the process continuously. There is no Sprint “start” and no Sprint “end” for work commencement or completion; both happen all the time. If you want to deliver work in batches that’s fine — the cars are exported or sent to a dealer that way. But the work of turning raw metal into working cars happens all the time, without start and end cycles.
My view of the Sprint approach is that it represents a naive view of work. It mistakes the finished product for the process that produced it. On the surface, it seems logical to think of a package of functionality that is neatly tied together with a bow by the end of a Sprint, and then we start again for the next Sprint. But actually that package represents the finished product — it represents a single car rolling off the assembly line, not the assembly line itself. While each car rolls off the assembly line, other cars are still under construction.
But in Sprint-based software development, we confuse the finished product with the process that made it. The process to produce a new feature from start to finish (including discovery, design, build, and deploy) will likely take longer than a Sprint. So in an Agile team, why can’t designers commence work on a new feature at the same time that engineers or testers are finishing an older one? Usually they do, by breaking off…