The Softwarific Method
Or, “Should I wear a lab coat?”
In this blog post, I will attempt to share some of my current thoughts and related ideas on “The Scientific Method, the Shewhart Cycle, and software creation”.
I like analogies and metaphors. If I’m struggling to understand a concept in one context, I sometimes try to think of the concept in other contexts to see if it helps me better understand it. One analogy that I’ve found useful is comparing the Scientific Method and the Shewhart Cycle to software creation.
Very (very!) roughly, the Scientific Method might be summed up in 3 steps: Hypothesize, Experiment, Evaluate.
First, you consider and create a Hypothesis.
Next, you conduct an Experiment based on the Hypothesis.
Finally, you compare and Evaluate the results of the Experiment against the original Hypothesis.
The Scientific Method was the basis for the Shewhart Cycle (by W. Edwards Deming), which is: Plan, Do, Check.
First, you consider and create a Plan.
Next, you Do some work based on the Plan.
Finally, you compare and Check (Study, Analyze) the work that was Done against the original Plan.
Restating the Shewhart Cycle with terminology used in software creation might be: Design, Develop, Test.
First, you consider and create a Design.
Next, you Develop some software based on the Design.
Finally, you compare and Test the software that was Developed against the original Design.
While there are many models and approaches to software creation, each with variations on who does what things, and how and when those things are done, every model and approach includes, in some way, shape or form, the same, 3 basic steps: Design, Develop, and Test.
I see other similarities between the Scientific Method, the Shewhart Cycle, and software creation, as well. For example, with each of these models, a fundamental principle is iteration – repetition of the cycle to extend knowledge and promote improvement. However, as with any model or analogy, there are also flaws and limitations. For example, you don’t need an experiment, work, or software in order to evaluate, check, or test - you can also evaluate, check, or test a hypothesis, plan, or design, directly.
But, as with any model or analogy, the important question is: is the model useful for some purpose? In this case, the purpose is: to help me better understand software creation. And in this purpose, this model is useful.
Creating software is like a lot of things. But, In My Experience, considering how software creation is like the Scientific Method and the Shewhart Cycle helps me better understand it.
I examine and explore “ The Scientific Method, the Shewhart Cycle, and software creation ” in my talk "Science, Software, and Scissors”.