Interview: Michael Bolton
   
News | Interviews | Workshops | Contact Us | Collaborative Book Writing


 

Michael Bolton

Michael Bolton is an independent test consultant. He provides testing related training and mentoring, frequently contributes to discussions on various mailing lists, writes a newsletter on testing and plays mandolin. WhatIsTesting interviewed him recently to discuss various testing topics under the sun including testing education, testing certification, CMM  and  things that he is currently working on. You can visit his site http://www.developsense.com.

If you want to ask him more questions or you want to send any feedback on this interview, please send it to webmaster @ whatistesting.com.

1. Michael, please tell us something about your self, the path your career has taken and things that you do in your spare time. 
Testing and computer stuff in general are my second career, actually.  In high school, I was on a math-and-science track, but in my last couple of years I had a couple of great English teachers and one math teacher that really didn't inspire me at all, so I switched focus.  At University of Toronto, I worked on English major and a Theatre (that's the way we spell it here in Canada) minor. After the kind of post-post-secondary jobs that you'd expect from a liberal arts major--washing dishes at a comedy club was one--I became a theatre stage manager, specializing in touring shows for kids.  You wouldn't believe how that prepares one for dealing with software projects.

I worked for Quarterdeck from 1990 to 1998, the first four years in Toronto and the latter four as a program manager in Los Angeles.  (I was born in New York City to Canadian parents, so I'm a citizen of both countries and relocating was easier for me than it would be for most people.)  Quarterdeck made DESQview, a multitasker for DOS, and QEMM, a memory manager.  Those products were pretty successful, and since they were technically excellent and interacted with so many other products, Quarterdeck was a fantastically educational place to work.  As a friend said, if you didn't learn five really interesting new things, it was a slow day.  On top of DESQview and QEMM, in the early 90s we had DESQview/X, the only complete X Window implementation for DOS, where we turned DOS and Windows into X Clients. Most people didn't understand the advantages of that sort of thing then (and the rest have forgotten about them now), and it took a lot of horsepower to run effectively--you needed 64MB of RAM and one of those newfangled Pentium chips.  So DESQview/X didn't do well commercially, but it was brilliant technically, and it did lead Quarterdeck into the Web very early on. That was seen to be a Good Thing, because as Windows got memory management, QEMM's market niche eroded.  Quarterdeck was the first company to licence Mosaic for commercial release.  Our developers rewrote it into a wonderful product, but we released it too late to make a difference in the Netscape/Explorer space.  We released a bunch of other Internet tools soon after that, but things were pretty noisy in the marketplace by then. I was managing QEMM and CleanSweep and some other utility software at the time, but Quarterdeck was a small enough company that we could all get exposed to everything--the strengths, which were mostly technical and the weaknesses, which were mostly business problems.  Quarterdeck grew far too quickly by buying other companies with Internet-based paper, which led to the company's demise.  I point out with some pride that Quarterdeck, as an Internet company, flamed out in 1998, fully three years before it became fashionable to do that.  Quarterdeck was always ahead of its time. (laughs)

One of the best things about Quarterdeck, for me, was that it introduced me to Cem Kaner.  Program managers at Quarterdeck were essentially the chief quality advocates for each product. I was promoted from testing to be the second program manager there, and everyone after that came out of the testing group too.  Cem came to teach his Black Box Testing course after I had moved on from the testing department, but I was lucky enough to be able to sit in on the course.  He was able to take all of the things that I had been thinking about in terms of testing and quality and put them into contexts that made sense to me.  Cem was--and still is--extraordinarily generous with advice and mentorship, and he also pointed me towards Jerry Weinberg and James Bach, who are also huge influences on my work and my thinking.

So now I'm an independent consultant, and have been for six years.  I test software, and I teach other people how to test software, and I write about doing both.  Most of my writing eventually makes it to my Web site, www.developsense.com.

That was the career path part.  For fun, I play mandolin at Irish sessions around Toronto (and in other cities when I visit), I work on trying to keep up with repairs and reconstruction of our family home, Pandora's House, and I like bicycling--Toronto's a wonderful city for that.  I enjoy cooking, and reading about food and cooking--those things have taught me a lot about testing, too.  But the most fun and the most educational thing in my life these days is my first daughter Ariel, three weeks old today.

2.You publish a testing newsletter. Can you please tell us something about it, why did you start it and what are your plans regarding its future?
I started writing the newsletter mostly because I wanted to spread around some ideas about testing and about the world in general that I think are important.  Although I do get the occasional flash of insight myself, most of the ideas I'd like to spread are from other people--so I'm really trying to be a curator of things that I've found to be interesting or useful. Other people write blogs for the same purpose.  I wanted to do something a little more formal than that; a schedule drives me to write in a more regular way than a blog would.  It's also a way of marketing my services, and, I hope, adding to my credibility.  I'll keep doing it as long as I get positive feedback, and as long as I keep learning things as part of the exercise.  If you want to learn about something, in fact, I recommend writing about it.
3. To which school of testing such as Process oriented, exploratory testing etc. do you belong? Or are you unhappy with this classification?
I'm perfectly happy--and proud--to be a member of the Context-Driven School of Software Testing; our manifesto is at www.context-driven-testing.com. The principal tenet is that there are no practises or techniques that can be called "best"; there are things that might be more or less useful or appropriate depending on the context in which they're used.  The whole idea is to do things that serve the testing mission and that serve the project. We testers already have plenty to do; we don't have time for practises that /don't/ serve the project.

I'm a reformed process-oholic.  Quarterdeck was pretty typical of hot, publicly-held technology companies in the mid-to-late nineties; product release schedules driven by the need for quarterly results, lots of mergers and acquisitions, lots of rapid expansion and catastrophic layoffs.  A bunch of us hoped that formal processes would help to foster a bit of coherence. Some processes did help us in the development department to get organized to some degree, which wasn't a bad thing.  But general systems thinking will tell you what came next: the processes helped us to deal with an increasingly absurd number of products and projects to the point where, as soon as we were able to cope, the business piled even more projects on.

So we tried to get the business people to follow processes too.  We wanted them to follow /our/ processes.  Robert Heinlein, I think, said "Never try to teach a pig to sing; it wastes your time and annoys the pig."  No, I'm not calling the business people pigs--far from it--but I am saying that some of them had a set of priorities and imperatives that baffled and frustrated a lot of the technologists, and vice versa.  To the extent that we could get good work done--and we did do some very good work, under heavy pressure and tight deadlines--it always came down to negotiation and collaboration between people on both sides with skills, understanding, and good will. Rules or guidelines that got in the way would get pitched if we could collaborate to make the project happen.  The big lessons there were that people, not processes, saved projects on a regular basis; that processes might be great or terrible, depending on the context in which we chose to use them; that processes and documentation have to serve the needs of project and the business; and that neither people nor processes can save a company that's too deeply in the mire.  In order to get something done, you need motivated people.  If you need to dig your way out of a hole, your processes won't ever pick up the shovel.
 4. What is your take on quality certifications such as ISO and CMM? How do you see them being used or abused, especially in relation to testing? I mostly see them as being abused, again mostly because some believe that processes, rather than people, are most important to the success of an organization. I recently worked on a project that incorporated software from a company that claimed CMM Level 5.  I suspect that at one stage, one project or one department managed to garner that assessment from somebody, and now the whole company claims it.  The software was terrible, just rotten.  Fixes were shoddy in all kinds of ways; half or more of them failed.

In the early days, the ISO 9000 series of standards were designed for manufacturing contexts--repeated production of large volumes of tangible stuff--and I think they're more appropriate there.  Software development is not that orderly; it's a creative, intellectual process, not a deterministic, manufacturing process.  As for the CMM, its original context was for defense-related development projects, where human lives are at stake, and where time, money, and manpower are all available in quantity.

Are CMM practises appropriate for every software development context? Certainly not; no way.  No single process model can fit every organization, and it's inappropriate to think so, in my view.  To the extent that the CMM is ever appropriate, it's tailored for patient, affluent kinds of environments; I think CMM processes would ruin most companies that had to respond quickly to conditions in the commercial software market or the Web world.  The trouble is that, to some influential people who are working in a chaotic circumstance, the CMM can have a seductive appeal.  Those people will try to impose processes on their organizations--they'll teach many pigs to sing--but what if you need a critter to help you dig up truffles?  The singing would be interesting, but it wouldn't help to find more truffles.

Jerry Weinberg defines quality as "value to some person", and he goes on to note that the next question is "who is that person"?  The next step from there is to note that decisions about quality are political decisions.  The CMM clearly has value to some people.  So some questions, if you're interested in the CMM for your organization:  Would it bring value to your organization?  At what cost?  Do you have the political power to see it through?

Let me give a thought experiment:  there's a restaurant in Toronto called Susur.  The chef, Susur Lee, is a brilliant, creative artist, a world-famous chef.  The meals are very expensive, but they're exquisite and innovative. Pretty much the menu changes every night, so the cooks have to be well-trained, knowledgeable, and flexible.  There's a much smaller and less expensive restaurant a few doors down--not as exciting, but still really nice and a lot cheaper.  They have a standard menu and some specials every night.  Just down the street from there, there's a McDonald's.  Where are you going to eat?  What factors go into your decision?  Now ask:  of the three, which restaurant uses processes that are closest to the CMM style?

5. What is your opinion on various tester certification schemes and examinations?


Do any of the certification schemes or examinations involve sitting a tester in front of a piece of software, watching while she actively investigates it, and making assessments about her thought processes?  Or do the exams ask you to fill in the blanks or check boxes, using terms that appear in someone's Body of Knowledge?  That is, do the certifications test your ability to think and to perform well as a tester, or do they merely test your memory?  I have a very good memory, so I can assure you that having a good memory can make you appear to be much more clever than you really are.

I've spoken to a bunch of certified testers who tell me things like, "Well, I sat the test, and it was mostly multiple choice; I knew the answers that they wanted, so I put those down even when I didn't agree with them."  That kind of conversation led me to describe certification recently:  You go to a room in a hotel, you pay a couple hundred dollars to someone you've never met, you stay with them for a couple of hours, you say a bunch of things you don't mean, and at the end they tell you "Thanks--you were great."  That a business model with a long pedigree, don't you think?

As a hiring manager, I would want to certify my employees by my own criteria--resumes, letters of reference, interviews, auditions--and not by criteria set down by someone else.  On the other hand, if you're applying for a job, some certification or another might be important to the hiring manager.  If the manager wanted a certification that I didn't find credible, I don't think I'd want to work for that kind of manager anyway.
6. Can you please suggest how testers should educate themselves in all matters pertaining to testing?
I'd say that the first thing is to educate yourself in all matters that interest you, whether they pertain to testing or not.  I don't think that testing is a body of knowledge so much as a point of view, or a way of thinking:  that is, thinking critically.  I should point out that I mean thinking as a literary critic would, trying to comprehend something, rather than merely dissing it.  A tester at some point should learn to think scientifically, too.  I have some video of Richard Feynman summing it up: "When we want to discover a new law of nature, we form a hypothesis or a /guess/.  Then we make a prediction and perform an experiment.  If the hypothesis doesn't fit with the results of the experiment, then the hypothesis is /wrong/--it doesn't matter how beautiful it is, or how elegant, or who wrote it up:  if it doesn't fit with observation, then the hypothesis is wrong."  If you're tester, people will regularly approach you with a piece of software, and a theory that it works correctly in all circumstances.  If you're a tester, a huge part of the job is to come up with experiments that challenge that theory, and to use observations to drive new theories.

I mentioned that I was interested in cooking.  Testers who like to cook would do well to read Cook's Illustrated Magazine, which takes a very scientific, testing-oriented approach to cooking.  In each article, the authors tell you what they were striving for in terms of taste and texture and presentation, and if they say that they table cream is better than the whipping cream in a given recipe, it's because they tested it.

I think testing and humour something important in common.  Jonathan Miller (a British fellow who has been a comedian and doctor and TV presenter and stage director) once gave a lecture that I saw, in which he said that humour allows us to change our perspective on things, "to alter our categories", as he put it.  Comedians are iconoclasts, they rely on jarring conventional views of things, and they also listen closely to the way people express themselves.  Those are important skills for testers.  When we see or hear things in a new light, we laugh, and I think we can learn from that new perspective.  A lot of the people I admire are funny.  George Carlin, the American standup comedian, is a great example of someone who observes things and relates them to us in new ways.  The Europeans would love him; it's a shame he's not better known outside North America.  (You can find out more about him at http://www.georgecarlin.com; I should give a strong caution to those who don't like strong language, though.)  Richard Feynman, one of the great physicists of the 20th century, was a very funny guy.  On the other hand, Newton was famously humourless, so you never know.

Similarly, testing is all about looking at things from as many perspectives as you can.  That's a perfect place for me to pass on some advice from Jerry Weinberg, which is to think of at least three possible explanations for something that you've observed.  If you can do that reliably, you're on your way to becoming a first-class tester.

Talk a lot with colleagues and peers.  Swap stories, exchange techniques. Sign up for my newsletter (send mail to addme@developsense.com).  Go to conferences and local testing groups; start one if you can't find one.  For reading--read Kaner, Bach, and especially Jerry Weinberg.  Oh, and Feynman.

9. What's your favourite testing joke?
Someone once posted a sign on a laser at CalTech that said, "Please do not look directly into laser with remaining eye."
7. Have you evevr been involved with testing in the XP world? Would you like to share your experiences with us?
I haven't been involved with much testing in the XP world--except that at Quarterdeck, our best developers were doing many XP-like things a full decade before Kent Beck codified XP.  I loved that environment.  I sometimes see some religiosity in the XP mailing lists, which worries me. But XP's values--collaboration, communication, courage, refactoring, simplicity, rapid and continuous feedback--those things are great.  I seek them out, whether they're called XP or not.
8. What are the things you are currently working on?
Heh, heh.  Marketing.  For me, marketing is much harder than testing.  I need people to introduce me to people and organizations that find testing harder than marketing.  I think there are more of them than there are of us.
(laughs)  That means writing the newsletter, working on the Web site, and so forth.  Doing interviews for whatistesting.com. (laughs)

I'm preparing and offering presentations to the testing and development trade shows.  I'm working with James Bach on a couple of workshops for Jerry Weinberg's Amplifying Your Effectiveness (AYE) conference (which is a fantastic and unusual conferences; check it out at http://www.ayeconference.com), and I'm trying to contribute to James' Rapid Software Testing course.  Continuing to develop really good exercises seems to be the biggest challenge there.  I'm also in the process of qualifying to teach Elisabeth Hendrickson's Creative Software Testing course.

I try to write at least a little every day, mostly on testing and quality issues.  Since software is so pervasive, I think we need a wider awareness of testing's role, so I'd like to publish articles in places that don't usually talk about such issues.

And then there's that aforementioned daughter.

 10. Any big ideas?
Some things seem to be percolating these days.  One is that we're trying to automate large parts of our world, particularly the business world, with the goal of making things more efficient (note that efficient is usually just a code word for "cheaper" in modern-day business parlance).  We're trying to replace expensive people with cheap machines, or with cheaper people aided by cheap machines.  Most customers have needs that are "exceptional" to some degree; customers are individuals, and they have individual needs and preferences and circumstances.  However, computers are pretty stupid and have no imagination, and processes are rarely designed to respond well to exceptional circumstances.  When we force humans to follow business processes that are being modelled and controlled by poorly-designed, buggy software, will that really serve the customers?  Are customers going to enjoy the experience?

The testing world contains an instance of that trend.  There's a drive to push automated testing, but I'm not sure that the people behind that push really understand testing OR automation.  As I said earlier, testing isn't an activity as much as it's a way of thinking.  A human can observe all kinds of problems that a machine cannot.  A human can change her behaviour based on observation and judgement; a machine cannot.  Machines can do repetitive, deterministic tasks really quickly and accurately; so let's make sure we put automation to those tasks and those tasks only.  XP and Agile Processes emphasize automation for unit testing, and that seems to be a good thing, as long as we continue to refine and develop the tests to reflect what the software has to do.  But I think that automation shows its limits as it gets closer to modelling the end-user's task--for one thing, people rarely choose to automate the kinds of mistakes that people can quite reasonably be expected to make from time to time.  So let's automate the low-level and high-volume stuff, but let's emphasize the value of the human capacity for thinking and inventing and observing and reporting things that matter.

That may be tough, because I frankly don't think businesses are very good at measuring or even considering cost and value if  there's not a direct cash figure that can be calculated easily.  Outsourcing is a great example: outsourcing is usually less expensive if you look only at the cost of labour.  However, many companies today have no assets to speak of, other than intellectual ones--the real assets are in the minds and experience of their staff.   Economics suggests that we can't put an accurate value on intellectual capital; there aren't good ways to measure its worth.  That's not the same thing as intellectual capital having /no/ value, but without a yardstick, nobody bothers measuring, and the value implicitly gets set to zero.  And yet it seems pretty clear to me that software companies that don't place value on knowledge, or that don't treat their people well are vulnerable losing their most valuable assets.  Companies that work hard to retain their employees, to keep their minds engaged, to keep their skills sharp, and to keep knowledge in-house will do correspondingly better.

That's why, although I offer testing services, I prefer to provide training or mentorship.  I can do expert testing for an organization, but in that case, a lot of what the organization /could/ learn leaves with me.  If I train people, the knowledge stays with the organization, and what the people learn from their own subsequent testing stays with them and with the organization.  Quarterdeck in its best days used and valued the intellects of its employees, and I can assure you that there's nothing more stimulating than that in the workplace.  I hope I can pass on ways for other people to have that experience.
www.WhatIsTesting.com - A Tester's Paradise.© 2002 All rights reserved

webmaster@whatistesting.com
Best Viewed in 800X600 Resolution