Statistical process control after W. Edwards Deming (2020)
2uo.de
2uo.de
One of the fascinating things about Deming's work is that Japan's automobiles went from being referred to pejoratively as "Jap Crap" to symbols of quality (Toyota, Honda, Subaru, Nissan, Mazda, etc.) within a short few decades--quite a feat for a nation struggling to regain its industrial footing after WWII.
It gives me pause, mainly because I've seen it abused, ironically, often in contrast to some of Deming's core ideas.
YMMV
It's unfortunate that Deming (and many others) never really got the attention that their methods deserved.
My goal is to work more of Deming into knowledge work (software) to develop meaningful improvement into the process and product while leveraging Drucker for better effectiveness of the individual.
In our software group, we were constantly battling with management that wanted to start to look at software development as a factory-like process, and to apply factory QA processes.
If you can relate inputs to the outputs of a process and you can get reliable data on the inputs, then you can use SPC in most areas. The costs to do so many not be worth it, however.
Which managerial processes do you think this doesn’t apply to?
Now I wonder if Machine Learning might pass up SPC as the primary method by which people identify and control key process variables.
The statistical technique I think that's better able to displace A/B testing is design of experiments (DOE). This approach also does not require that much data to implement. There was an excellent youtube series on it where the presenter used popping popcorn for his experiments. I can't seem to find it now.
I use the things I learned for marketing, product, and engineering systems.
Want to improve a system? Before doing anything, collect data and measure. A system must be stable, else you cannot improve it. Marketing campaigns. Funnel optimizations. Performance improvement.
Most "stability" is achieved by simple things like squashing bugs (campaign bugs, performance bugs, or UX bugs).
Once you achieve stability of output (i.e. low standard deviation), then improve the system.
Simple, uh?
I worked in a factory where one of the biggest, and hardest, improvements we made was coaching the managers and engineers to leave the technicians alone when they were doing maintenance.
We collected data on how often they were interrupted, how much time it cost, and how interruptions could lead to RIT changes in procedures that affected quality.
Previously the engineers and managers saw the checking as helping because they could se ethe status of things and observe and answer questions, many would even lend a hand. Oversight and engagement was seem as a path to improved quality. To let go of that was a huge transformation. It started with data - a lot of data - that allowed us to identify that weekend and night maintenance generally went faster and better.
Stable in this case just means you are clear what the system is and can keep operating it if you want to.
That is a prerequisite to evaluating the system in order to determine whether it is what you want.
Yep. This applies double to software. Putting software under load and trending health measures to look for two standard deviations variance is very similar to how Deming instrumented production lines. The neat thing that software enables for both automobile manufacturing and software products themselves is that those exact same health measures can be trended and analyzed after they get into the hands of consumers.
If your quality apparatus is purely inspection based, you will live your life one escalation to the next.
A more user friendly way would be to have a scaled down replica of production setup with simulators that mimic user behavior. Assuming the development team actually believes in and tends this environment, they will find the lion's share of bugs that commonly slip through peer review.
Software is completely different, it is hardly ever a repeatable process to create software. Making the same software over and over is nonsensical, but making a billion identical contact lenses is exactly what you want.
There are forms of software "inspection," like pair programming, that amount to what Deming says you should not do in manufacturing: Inspect everything. But pair programming is pretty rare. Other practices like code review have been called into question. So it may still be true that you can't inspect your way to quality in software, but not for the same reasons that it is a bad idea in many cases in manufacturing.
One way to look at how Deming/Shewart's work applies to software is to consider what happens when you apply their statistical analysis techniques to running software.
I've heard it said like this: Creating a software is like developing a recipe for a cake. Baking thousands of cakes (a "manufacturing process") is what you do once you have the recipe. The two activities are very different.
This seems to be rarely done in most discussions on processes for software development. The lack of information regarding this means that everyone gets to be right and angry at everyone else.
Are you making novel systems? Then it's like developing a recipe for a cake. Are you making bog standard CRUD web apps? Then you're baking thousands of cakes.
A lot of software development sits somewhere in between these two extremes. It has repeatable, well-established portions that can be executed almost mechanically, and portions that require you to sit down and collaborate or really think about what you're doing. How these balance out on a project determines what approaches are appropriate to even consider.
Then there's software maintenance (an unfortunately neglected aspect of software in many parts of this industry). Here the same consideration applies. Are you writing new software that's really just generating new kinds of custom reports? That's rather mechanical, you may even be able to automate yourself out of a job. Or are you adding truly novel features, extending your document editor to support real-time networked collaboration?
Software runs the full gamut so no statement about what software is will ever be correct. We can only discuss the utility or applicability of processes once we specify which kinds of software activities we're involved in.
One particularly interesting thing is that, at least once upon a time, Canon didn't even bother inspecting their copiers and printers, because the variance was so low it was a waste of time[4].
[1] https://en.wikipedia.org/wiki/Homer_Sarasohn
[2] https://honoringhomer.net/
[3] https://apnews.com/article/e2908339e16a48dc8efe37d77a905daa
Thanks for all the links; can you recommend some introductory books on the subject?
It seems Japan's resurgence after WWII owes a lot to the enlightened policies of a "few" Americans and their willingness to actually follow through with concrete actions. I wonder how many Japanese really know about their own history and what they really owe the US.
I've a vague memory of doing this as a first year undergraduate, but that was a long time ago. And stupidly, I didn't think I'd ever need them...
Douglas Montgomery has a textbook called Statistical Process Control that covers control charts and many other statistical techniques.
It always makes cocktail party conversation complicated.
https://curiouscat.com/management/deming/online