I’ve recently been reading The Machine That Changed The World it tells the story of the move from Mass Production to Lean Production. Lean is a precursor to Agile, which we use in software development today, and it was developed by Toyota in Japan after the Second World War. It completely revolutionised the way cars were built, it did away with mass production and its many inefficiencies and flaws.
Mass production, developed by Henry Ford and General Motors in the first half of the 20th Century, was based around the assembly line. A long line of workers each responsible for a single, simple task in the car assembly process. The car slowly moved along the assembly line and was put together piece by piece. The work was low skilled, monotonous and problems were often pushed down the line to the next worker. No-one ever wanted to stop the line, and this had many negative affects, particularly on quality. Large amounts of time and money were wasted on remedying defects which reached the end of the assembly line.
Lean flipped this on its head. Instead of an assembly line of low skilled workers focused on singular tasks, small squads put a car together from start to finish. The work was highly skilled, more interesting and brought many benefits. One of the most significant was quality as each squad was responsible for the assembly of the car. Squads would debug problems as they went and would record and feedback their learnings so the same problem didn’t occur twice. This dramatically reduced the number of defective cars reaching the end of the assembly process.
In the tech industry, and particularly in software development, we often like to think of ourselves as at the forefront of modernity. But in many ways our thinking lags well behind other industries, and in the case of Lean by decades. We make a big song and dance of ‘Agile’, but very often we don’t really know what it means and the implementation varies dramatically across our industry. This isn’t to say the car industry is perfect, or there has been perfect adoption and implementation of Lean across the car industry. But the Agile Manifesto was written in 2001, over 40 years after Toyota successfully developed and implemented Lean. And 20 years later the adoption and implementation of Agile across the tech industry remains sketchy at best.
In many respects we still hold on to old ideas promoted by people like Henry Ford and Alfred Sloan. One example of this is what can be called Assembly Line Development. And this approach to software / product development can still be seen in many companies today, even those which claim to be thoroughly modern. In Assembly Line Development each stage of product development occurs one after the other. A team or individual works on a stage and passes it on to the next team or individual very much like Henry Ford’s assembly line. This process is known as Horizontal Splitting.
Assembly Line Development experiences many of the same problems as the Mass Production Assembly Line. Problems and bugs are pushed down the line and not remedied until the end, there is a lack of ownership, quality suffers, and cost spirals. This differs dramatically from what Agile ‘should’ look like, small cross functional teams working together to deliver value. Software emerges from the Agile process. It is not planned, designed, built, delivered.
If you are struggling understanding Agile and how to get it working within your organisation I’d advise to look at how other industries solve similar problems. And a good place to start might be reading The Machine That Changed The World.