Those of us who’ve adopted (and adapted) Lean software techniques owe a debt to Eiji Toyoda, and especially to Taiichi Ohno, who developed the Toyota Production System (TPS) and forever changed the way manufacturing – and eventually much of software development – works. According to Wikipedia:
TPS is grounded on two main conceptual pillars:
- Just-in-time – meaning “Making only what is needed, only when it is needed, and only in the amount that is needed”
- Jidoka – meaning “Automation with a human touch”
Core to jidoka is the concept of “stopping the line,” which means that when someone at Toyota identifies a problem, they’re required to stop production and resolve the issue. This ensures problems are addressed immediately, when they’re easier, less expensive, and less frustrating to fix.
Our eCommerce team has embraced this way of thinking. Our agile product teams are familiar with the Toyota story, and they understand the importance of identifying problems early. They sit together at tables, which makes collaboration easy, and they have daily stand-up meetings to make sure everyone’s on the same page. Best of all, they’re aligned around common goals, so they have the same motivation to improve the customer experience and their KPIs.
So why won’t they stop the line when they see an issue?
Stopping the line is really, really hard
Recently, my team released a couple of new features that weren’t up to our usual standard – experiences that were a little bit clunky. In both cases, after the projects were complete and the new functionality was deployed into production, we removed the new functionality from our site, sending the teams back to the drawing board. Weeks later, we’re still in the process of rebuilding these features, and we’re going through the work in great detail as a team to make sure we get it right.
Every single member of the team knew – weeks before launch – that the experience was less-than-perfect. And every single member of the team had been coached multiple times to stop the line. Even further, if you asked any member of my team if they understood the importance of stopping the line – if they agreed with it conceptually – every one of them would have said yes. And yet, nobody did it.
I asked three people why, and they all said some version of this:
Our team is working on becoming a well-oiled machine, and I don’t feel comfortable slowing things down.
The machine
Earlier this week I attended DevJam’s excellent Product Conference, and I was glad to hear its founder David Hussman discuss how product and agile are evolving. “We’ve gotten really good at building the wrong thing faster,” he said, and I couldn’t agree more.
My team was built for speed, and although I kept telling them to stop the line, I also told them a lot of other things:
- “This new functionality is going to add a lot of revenue for our business.”
- “You’ve got a long backlog.”
- “If we get this done pre-holiday, it’ll be great for the bottom line.”
- “Our Marketing team really, really wants this now.”
- “It’d be great to get both of these projects done next quarter.”
By now you get the idea, and hopefully you see the problem. And it wasn’t just me. My team supports a lot of brands, and the brand owners, marketers, merchandisers, technology teams, senior executives – everyone, really, was in some way or other telling our product team to do more, faster.
In response, we became a machine built for speed. We got good at getting a lot of projects done, and we found a way to set and meet the goals we had before us. We implemented Test Driven Development (TDD), built automated tests, and found ways to get closer and closer to continuous delivery. And I’m convinced that every one of these things was – and is – the right thing to do.
The problem is that we did them at the expense of building great things.
In my next post, Encouraging people to stop the line with both carrots and sticks, I’ll describe what we’re doing about it.