Testing and the Maker Mindset
What goes into making someone a great innovator? In her TEDxTC talk "Making Makers" at the bottom of the article, Dr. AnnMarie Thomas describes some of the common themes she found in her search for what differentiates people who are profoundly creative problem solvers, inventors, and engineers—people who are, in a word, makers. Two overarching themes emerged: early exposure to real building tools, and being able and encouraged to experiment and learn, even if it might break something.
How does this relate to testing? First, we need to realize that many bugs arise not because of a failure of effort but because of a failure of imagination. Defects occur not because testers and developers didn't try hard enough, but because nobody thought of the combination of events that makes them occur. Nobody foresaw the way that multiple database threads could stomp on each other's operations. Nobody imagined that a user would upload a particular type of garbage input.
To pick up on these bugs, we need to confront an interesting paradox. We need to try to train ourselves to think in ways in which we currently do not think. We need to try to find a way to open our minds to possibilities we currently cannot pick up on.
I think that the two key themes to creating makers are also key to cultivating innovative testers. Having a deep familiarity and comfort with the tools of the trade expands your awareness of what the system consists of, how the different elements of it interact, and how you can dig into it. Being driven to experiment and explore means you'll actually put those things into practice.
The manual of the first computer I owned—a Commodore VIC-20—admonished users early on: "There is absolutely no way you can hurt your VIC by typing at the keyboard (unless, of course, you're an elephant)."
Much of the early innovation in the personal computer industry came from people who were tinkering with stuff in their garages—for instance, the Apple I computer. Tales of "maker" groups like the Homebrew Computer Club are now the stuff of computing legend. This kind of attitude is a far cry from nowadays, where people are often afraid of computers or treat them as opaque black boxes.
To be the best testers we can be, we need to dispense with the notion that any part of the system can't be inspected, and we need to be allowed—and allow ourselves—to experiment and learn.
Does this ring true for you? What are your best tales of having testing ingenuity pay off?