Do It Right First Time!
Lessons in Software Development
Dr James Womack, the author and a founder of the Lean Enterprise at MIT researched why some car manufactures managed to churn out finished cars faster than others. When he did the research he found some of the manufacturers like Honda, Toyota and Nissan spent, on average, 17 hours building an entire car. At the time they created, on average, 34 defects per 100 vehicles manufactured. In contrast companies at the time, such as BMW and Mercedes-Benz took around 57 hours to make a car and had 78 defects per 100 vehicles created.
That’s a big difference. Why did the European manufacturers have bigger lead times and more defects?
Womack saw that in the Toyota plant, when a problem showed up on the line, every worker had the ability to stop production to stop. On stopping the production line every worker swarms on the problem area to resolve it. Once the issue is resolved production can continue. Toyota realised that fixing defects as soon as they are found is much more productive then if they continue without intervention.
Imagine, finding a defect, leaving it to fix later and then one day or one week later every vehicle that passed through the production line has a fault that needs fixing! Well, that’s what the European companies were doing.
On the other hand the European manufacturers checked for defects at the end of the line when the cars were completely built. It turned out the Europeans were spending as much effort fixing defects that the Japanese manufactures were expending to create a nearly perfect finished product. This is one of the reasons Toyota became the number one car manufacturer in the world.
Bring it back to software
In the book Scrum (Jeff Sutherland), he tells a story about a Californian business making mobile phones. This business automatically tracked how long it took a developers to fix bugs found in the system. This business ran automation tests every day so they knew if there was a defect and they could be fixed pretty soon after being introduced, similar to when the Toyota workers swarm onto the production line as soon as they found a defect. If you work in software you have probably been given bugs to fix that are in code written weeks and months before they were tested.
The mobile phone company conducted research and they found it took 24 time longer to fix a bug a few weeks after it was introduced versus if it was fixed on the same day as it was raised.
It’s best to do things right the first time and it’s better to expend the energy and cost now to do it right than to pick it up in the future.
There are lots of lessons to take from this. The following resonate with me right now:
- Hitting a deadline can be important, but is it right to rush something now when the cost of putting it right will be more expensive in the future.
- Is a feature rich product better than a product with less features and less defects?
As Sutherland writes, it’s better to do things right first. If you don’t you’ll pay the price!