Aristotelian physics, process change, and testing in Agile projects
Here’s a tidbit I got from either Feyerabend or Lakatos, I forget which.
It’s easy to make fun of the Aristotelian theory of motion. It held that each element seeks its natural place. That desire leads to a downward or upward force (depending on where it is). The speed at which an object moves is proportional to its mass.
What a dummy! Why didn’t Aristotle roll some balls down an inclined plane so that he could see that light objects roll at the same speed as heavy ones? Galileo did. Partly as a result, we now have a completely different theory of motion.
The interesting tidbit is that Aristotle’s theory was broader than Galileo’s. Galileo’s could say nothing about why smoke rises or why plants grow upward, questions Aristotle’s theory covered.
Lakatos tells us that, in science, theories often begin by explaining less than the theory they seek to replace. I think that’s probably true in other fields. Consider testing in Agile projects. There were existing theories of testing. Agile came in with its own theory (test-driven design, broadly construed) that, for example, simply ignored an entire class of bug—the fault of omission—that’s extremely important. The result, in many testers’ view, was like Galileo stubbornly refusing to acknowledge the problem of smoke. Outrageous!
But intellectual structures don’t remain stable. In some cases (like plant growth), a question ends up belonging to an entirely different field of study. For others (perhaps smoke), the upstart theory expands its domain enough to once again be relevant. Or the upstart could fade away. And so on.
It’s not clear how testing in Agile projects will shake out. In recent tweets, Michael Bolton has seemed to call for testing and TDD to go their separate ways. Others, like Elisabeth Hendrickson seem to me to be working to weld the two together more tightly.
I like to think that understanding they’re participating in a recurring historical process would make upstarts less overbearing and those facing upstarts less defensive. I like to think lots of things that have zero evidence behind them.
May 15th, 2009 at 4:56 pm
Thomas Kuhn?
http://en.wikipedia.org/wiki/The_Structure_of_Scientific_Revolutions
May 15th, 2009 at 5:09 pm
I think the recurring historical process is an important consideration. Occasionally I note what I refer to as “recurring fashion choices”, such as in-house development, outsourcing, packaged app implementation. Those major software “fashion” choices have been repeating (not stricktly in that order) since I started my career. I call then fashion choices because whole sections of the community follow the trend (hey, it’s fashionable!), not necessarily to good effect. An interesting aspect of that for me is the lack of industry conscious awareness of the history: some individuals remember, but the industry as a whole tends to repeat the same mistakes inherent in those choices. When I note that “we’ve been here before” the reaction is often surprise or disbelief.
May 15th, 2009 at 7:57 pm
No there’s no need to go dragging the “p” phrase into this conversation, especially after I just went a whole week without its invocation!
Here’s a quote from David Hibert that I think is relevant. It’s about math, but I think it applies to software; especially the quest to design against and test for defects:
“The deep significance of certain problems for the advance of mathematical science in general and the important role which they play in the work of the individual investigator are not to be denied. As long as abranch of science offers an abundance of problems, so long as it is alive; a lack of problems foreshadows extinction or the cessation of independent development. Just as every human undertaking pursues certain objects, so also mathematical research requires its problems. It is by the solution of problems that the investigator tests the temper of his steel; he finds new methods and new outlooks, and gains a wider and freer horizon.” –David Hilbert
If we aren’t solving problems we are in trouble. If we aren’t raising questions/problems, our trouble is even greater.
May 18th, 2009 at 8:13 am
Kevin: I’m pretty sure it wasn’t Kuhn, though I’m guessing he probably wouldn’t have disagreed.
Tom: That Hilbert quote fits nicely with Lakatos.