September 18, 2006
Five Questions With Gerald M. Weinberg
When I was casting about to decide who to interview first, Gerald M. Weinberg (Jerry to everyone who knows him) seemed the obvious choice. Jerry hasn't been around forever, exactly, but he has been part of the computer world for a good many years. He worked for IBM as a computer - that is, a person paid to compute equations and such by hand. He has learned a lot about computers - and people - in the ensuing years, and much of what he has learned he has shared with the rest of us through a plethora of books (see the full list at the his website). He also shares his knowledge and wisdom via his Secrets of Consulting and Weinberg On Writing blogs, SHAPE forum, and a variety of conferences and workshops. Here's what he has to say:
DDJ: What was your first introduction to testing? What did that leave you thinking about the act and/or concept of testing?
GW: I'm an old, old timer. Back in 1956, we barely tested our programs. Instead, we made sure they were right the first time by careful analysis and technical reviews. (Our computer was 3,000 miles away by propeller plane, so mistakes were costly.) 90% of the time, our programs ran correctly the first time they touched the machine (not "a" machine, but "the" machine, because it was the only one of its kind in the world).
Our programs were pretty simple by today's standards (one of them was the world's first operating system), but in 1957, when I delivered a program with 3 wrong answers out of 20,000 results (as a result of a rare overflow condition), I started to be aware of the need for more careful examination of results, if not of explicit testing.
Then, in 1958, when we built the operating system that ran the space tracking network for Project Mercury, I became acutely aware for the need for testing because someone's life depended on our not delivering mistakes. Before that time, there were no "testers"--in fact, we weren't even called programmers yet. Everyone did their own testing within our team, and we did test-first development, though we didn't call it that. We established an explicit testing group--a bunch of "programmers" who were given the specific job of beating the system in any way possible, primarily by building simulation test drivers. We didn't kill any astronauts, so I guess we were successful, and the tradition continued through all subsequent space missions as well as in the newly created IBM Federal Systems Division, though there were still some holdouts that believed you wouldn't need testing if you were careful enough in doing your development. (I supposed that's still true--but who is ever careful enough?)
DDJ: What has most surprised you as you have learned about testing/in your experiences with testing?
GW: The biggest surprise is how many people still believe you can test quality into a program.
DDJ: What is the most interesting bug you have seen?
GW: Oh, that would be hard to say. I guess the one I'm currently faced with is always the most interesting. I've written somewhere about a bug in that Mercury Project that was very difficult to find, and would have killed people if we hadn't persisted in tracking it down--in spite of management trying to write it off as a random coincident machine failure (which had about one chance in 10**100000000000 of being true).
DDJ: How would you describe your testing philosophy?
GW: I don't have one. It's not about philosophy. (Or even less, methodology.) Philosophy is the love of knowledge. Methodology is the study of method. We've corrupted the words.
DDJ: What do you think is the most important thing for a tester to know? To do? For developers to know and do about testing?
GW: To know: That they're not perfect, just like everybody else.
To do: Be humble.
For developers:
To know: That they're not perfect, just like everybody else.
To do: Be humble.
DDJ: Is there something which is typically emphasized as important regarding testing that you think can be ignored, is unimportant?
GW: Pounding mindlessly on keyboards.
DDJ: What do you see as the biggest challenge for testers/the test discipline for the next five years?
GW: To get management to understand what testing can and cannot do.
DDJ: Going meta (to steal your favorite technique), what else should I ask you? What would you answer?
GW: Q: "How can I learn to think better?"
A: (of course) Read my books, subscribe to my SHAPE Forum, and participate in the AYE Conference.
[See my Table Of Contents post for more details about this interview series.]
Posted by The Braidy Tester at 07:30 AM Permalink
|