Jerry Weinberg’s Last Worry

Jerry Weinberg has died. Jerry was my teacher more than any other single person. As I have told my students and clients for years: my work is an elaboration and improvisation on his work.

In November of 1999, I was a newly independent consultant, having rage-quit my previous job. I had already made a name for myself as a trouble-maker in software testing– and a few colleagues and I had only that month declared the Context-Driven school of software testing– but I had not yet crystallized the Rapid Software Testing methodology which would become the focus of my business. I was working on a book that had become a quagmire. My life was very stressful right at that moment.

In the midst of that, Jerry invited me to hang out with him in Albuquerque for a week to talk about life the universe and everything. I don’t know why he did that. I don’t remember him giving a plausible explanation. But the result was that I spent dozens of hours talking to Jerry, just me and him. We spoke about writing, testing, industry activism, collegiality, general systems thinking. We gave each other homework. He told me about the “fieldstone” approach to writing, which he later turned into a book.

At the time it was great fun. But now I know: that was the week I became who I am, professionally.

Who I am is in no sense a copy of Jerry. I vehemently disagree with him on certain issues of style and substance. I don’t seem to get along with most of his followers.

But none of that matters. What I took from Jerry was not his specific solutions or political preferences, for the most part. What Jerry showed me is how to be authentic without being cruel; how to have integrity in a world of mendacity; how to live confidently with uncertainty; how to debate your teacher while learning from him; how to transition from student to colleague; how to achieve your own agency without seeking anyone’s consent to do so.

None of those things are specific judgments or techniques. They are ways of being. Jerry taught partly by example, partly by story, partly by argument, but mostly through the little experiences and challenges he took his students through. “Authentic teaching” he called it.

Three Worries

Before I knew Jerry I suffered from periodic physical breakdowns related to work stress. Jerry taught me to arrange my professional life to minimize stress. The key is to discover what you are happy doing and what you don’t want to do, then systematically stop doing all those things that weigh you down and stress you out. Learn to listen to that inner voice that is telling you “enough!” Learn to say no without rancor. Let go of other people’s reactions.

While lecturing me on this he challenged me to write down my three biggest professional worries on a napkin. He did the same. On my napkin I wrote about two client reports that were past due, and the need to market my new business.

On his napkin he wrote only this: “I must get my hair cut once in a while.”

I laminated that napkin. It’s in a box somewhere or I would show it to you now.

I have many worries today, but I have a new and easier relationship to them. After that week in ’99, I gave over all control of my finances to my wife, who has managed them ever since. My only job, now, is daydreaming and talking to clients. I did go on to finish my Buccaneer book, with a much relaxed attitude, as well as writing another very fieldstone-ish book called Lessons Learned in Software Testing.

Knowing Jerry helped me come into my own as a thinker. I am determined to pass that gift on.

(Consider reading A Gift of Time, to see how Jerry influenced other people.)

How Michael Bolton and I Collaborate on Articles

(Someone posted a question on Quora asking how Michael and I write articles together. This is the answer I gave, there.)

It begins with time. We take our time. We rarely write on a deadline, except for fun, self-imposed deadlines that we can change if we really want to. For Michael and I, the quality of our writing always dominates over any other consideration.

Next is our commitment to each other. Neither one of us can contemplate releasing an article that the other of us is not proud of and happy with. Each of us gets to “stop ship” at any time, for any reason. We develop a lot of our work through debate, and sometimes the debate gets heated. I have had many colleagues over the years who tired of my need to debate even small issues. Michael understands that. When our debating gets too hot, as it occasionally does, we know how to stop, take a break if necessary, and remember our friendship.

Then comes passion for the subject. We don’t even try to write articles about things we don’t care about. Otherwise, we couldn’t summon the energy for the debate and the study that we put into our work. Michael and I are not journalists. We don’t function like reporters talking about what other people do. You will rarely find us quoting other people in our work. We speak from our own experiences, which gives us a sort of confidence and authority that comes through in our writing.

Our review process also helps a lot. Most of the work we do is reviewed by other colleagues. For our articles, we use more reviewers. The reviewers sometimes give us annoying responses, and they generally aren’t as committed to debating as we are. But we listen to each one and do what we can to answer their concerns without sacrificing our own vision. The responses can be annoying when a reviewer reads something into our article that we didn’t put there; some assumption that may make sense according to someone else’s methodology but not for our way of thinking. But after taking some time to cool off, we usually add more to the article to build a better bridge to the reader. This is especially true when more than one reviewer has a similar concern. Ultimately, of course, pleasing people is not our mission. Our mission is to say something true, useful, important, and compassionate (in that order of priority, at least in my case). Note that “amiable” and “easy to understand” or “popular” are not on that short list of highest priorities.

As far as the mechanisms of collaboration go, it depends on who “owns” it. There are three categories of written work: my blog, Michael’s blog, and jointly authored standalone articles. For the latter, we use Google Docs until we have a good first draft. Sometimes we write simultaneously on the same paragraph; more normally we work on different parts of it. If one of us is working on it alone he might decide to re-architect the whole thing, subject, of course, to the approval of the other.

After the first full draft (our recent automation article went through 28 revisions, according to Google Docs, over 14-weeks, before we reached that point), one of us will put it into Word and format it. At some point one of us will become the “article boss” and manage most of the actual editing to get it done, while the other one reviews each draft and comments. One heuristic of reviewing we frequently use is to turn change-tracking off for the first re-read, if there have been many changes.  That way whichever of us is reviewing is less likely to object to a change based purely on attachment to the previous text, rather than having an actual problem with the new text.

For the blogs, usually we have a conversation, then the guy who’s going to publish it on his blog writes a draft and does all the editing while getting comments from the other guy. The publishing party decides when to “ship” but will not do so over the other party’s objections.

I hope that makes it reasonably clear.

(Thanks to Michael Bolton for his review.)

The Man Who Opened the Door

I just heard that Ed Yourdon died.

In ’93 or early ’94, I got a strange email from him. He had heard about me in Mexico and he wanted to meet. I had never been to Mexico and I had never met or spoken to Ed. I was shocked: One of the most famous people in the software development methodology world wanted to talk to me, a test manager in Silicon Valley who had almost no writing and had spoken at only one conference! This was the very first time I realized that I had begun to build a reputation in the industry.

Ed was not the first famous guy I had met. I met Boris Beizer at that conference I mentioned, and that did not go well (we yelled at each other… he told me that I was full of shit… that kind of thing). I thought that might be the end of my ambition to rock the testing industry, if the heavy hitters were going to hate me.

Ed was a heavy hitter. I owned many of his books and I had carefully read his work on structured analysis. He was one of my idols.

So we met. We had a nice dinner at the Hyatt in Burlingame, south of San Francisco. He told me I needed to study systems thinking more deeply. He challenged me to write a book and asked me to write articles for American Programmer (later renamed to the Cutter IT Journal).

The thing that got to me was that Ed treated me with respect. He asked me many questions. He encouraged me to debate him. He pushed me to write articles on the CMM and on Good Enough Software– both subjects that got me a lot of favorable attention.

On the day of our meeting, he was 49– the same age I am now. He set me on a path to become a guy like him– because he showed me (as many others would later do, as well) that the great among us are people who help other people aspire to be great, too. I enjoy helping people, but reflecting on how I was helped reminds me that it is not just fun, it’s a moral imperative. If Ed reached out his hand to me, some stranger, how can I not do the same?

Ed saw something in me. Even now I do not want to disappoint him.

Rest in Peace, man.


Let’s test at Let’s Test

I’ve been telling people that the best conference I know for thinking testers is Let’s Test (followed closely by CAST, which I will also be at, this year, in New York). Let’s Test was created by people who experienced CAST and wanted to be even more dedicated to Context-Driven testing principles.

Now, I’m here in Stockholm once again to be with the most interesting testers in Europe. I’m not done with my presentations, yet. But I still have a couple of days.

(I will presenting a new model of what it means to be an excellent observer, together with one or two observation challenges for participants. And Pradeep Soundararajan and I will be presenting a tutorial on reviewing a specification by testing it.)

Let’s Test is not for the faint of heart. Events go on day and night. I suffer from terrible jet lag, so I probably won’t be seen after dinner. But for you crazy kids, it’s a great place to try a testing exercise, or present one.

(Note: I’m being paid to teach at Let’s Test. I don’t get a percentage of the gate, though– I get paid the same whether anyone shows up or not.)

Australia Let’s Test

I will also be in Australia for the first Let’s Test happening down there, in September. There are some interesting testers in Oz. I’m sure they will all be there. It will be the first great party of ambitious intellectual testers that I know of in the history of Australian testing.

Anne-Marie Charrett and I will be doing our Coaching Testers tutorial, which is the only time this year we will teach it together.

“Intellectual” testers?

Why do I keep saying that? Because the state of the practice in testing is for testers NOT to read about their craft, NOT to study social science or know anything about the proper use of statistics or the meaning of the word “heuristic”, and NOT to challenge the now 40 year stale ideas about making testing into factory work that lead directly to mass outsourcing of testing to lowest bidder instead of the most able tester.

Intellectual testers are not the most common type of tester.

The ISTQB and similar programs require your stupidity and your fear in order to survive. And their business model is working. They don’t debate us for the same reason that HP made billions of dollars selling bad test tools by pitching them to non-testers who had more money than wisdom. Debating us would spoil their racket.

So, don’t be like that. Be smart.

I’ll see you at Let’s Test.

Free Testing Lessons Over Skype

One of the things I like to do is give testing lessons over Skype. I never charge for them, but there are conditions:

  • I don’t schedule them in advance. I do it as time is available.
  • I coach normally in text form, not by Skype voice, although I sometimes make exceptions.
  • You agree that I may publish all or part of the coaching transcript in an book, article, or blog post, as long as I remove personally identifying details (unless you want to be identified).

Here’s how it works:

1. You contact me over Skype. (ID: SATISFICE)

Contact me and say “I would like to have a coaching session. I have 90 minutes free right now. I have read your coaching policy and it’s okay with me.” Then, if I have time, I do a coaching session with you, right then and there.

2. My Motivation: I am motivated by people who entertain me with their passion for learning. Besides that, I want learn how to coach better. Finally, I’m developing material for another book.

3. The process is Socratic dialog: That means I ask you questions and pose problems, then you develop your answers. I also instruct directly as needed. My goal is to help you develop into a tester worthy of respect according to the standards of the Context-Driven School of Testing.

4. We work on things that matter to you: If you have a goal to learn a specific kind of thing, we work on that. Otherwise, I’m happy to walk you through my own syllabus of testing.

5. I may require you to do homework as a condition of further coaching. I may ask for permission to publish your homework as a training example.

6. I may want to watch you test over Skype screen sharing.

7. You are free to tell others that you are working with me.

8. If you ask me a specific question, I will probably ask you to tell me your answer, first. I will expect you to have googled around and thought about it some before we talk.

You should bear in mind that I’m a demanding tutor. I want to spread clarity and excellence in software testing. Don’t approach me unless you have an ambition to be excellent in your craft.

My offer is open to anyone in the world, as long as I believe I can help you.

(Thank you to Adrian Dinca for informing me how confusing my earlier version of this post was!)

Have Internet, Will Test

Matt Heusser wrote an interesting post about “boutique testers.” I like the idea of boutique testers (boutique intellectuals of all kinds, actually, which is why I wrote my new book.) And I am an example of one. The testing I’ve done in recent years has been mostly on court cases or part of coaching testers, though. I want to do more ordinary testing. I need that in order to keep up my practice.

I live on an island, making travel expensive and annoying. But I have a great Internet connection.

There are important challenges to being a remote tester, though. The main technical problem, in my experience, is acquiring and configuring the product to test. Getting up to speed fast benefits from being onsite. The main social problem is trust. Hiring a remote tester, especially one who’s supposed to be high powered, is a little like hiring a therapist. In my experience, developers feel more sensitive about a well-paid, high status outsider poking at their work, than they do about an internal tester who probably will disappear in a few weeks.

Then there’s communication. Despite all the tools for modern communication, we haven’t yet developed a culture of remote interaction that lets us use those tools effectively. Even though I’m always on Skype, and people can see I’m on Skype, they still ask permission to call me on Skype! And I also feel nervous about calling other people on Skype. They might be annoyed with me. I do use GoToMeeting, and that helps a lot. Michael Bolton and I have been collaboratively writing, recently, using it. We like it.

Finally, there is one big logistical problem: availability. You can call me up and have me test for you. But, being a fully independent consultant, my time is chopped up. I have a week here and a few days there, usually. This is the main reason I go in for short-term consulting and coaching. Unless a rich client comes along and induces me to clear my schedule, I can’t afford to have only that one client.

Still, with the price of travel so high, I think this is the direction we need to go: each of us developing ourselves into unique thinkers with strong brands, and then remotely connecting (interesting oxymoron, eh?) with our clients.

Phone: 360-440-1435
Skype: satisfice

This Blog is Like…

…a radio call-in show. It is not an open public forum.

Sometimes I get complaints about how I handle comments. I received a quite thoughtful and persuasive complaint just a few hours ago. There is a teeny-tiny link on the front page of my blog that goes to my policy on comments, but I suspect few people read it.

Look folks, you are participating in my little show, here. I’m the editorial director. If you make comments, I control whether they go on air. I reject about one in fifteen comments (not counting outright spam) because they violate my guidelines. Think about it like a radio show in text form, and my policy should make sense.

As long as it is not abusive and adds something to the conversation, I want you to have your say. But I WILL argue with you. That’s what I do. And I do that by interpolating my replies into each comment. If you think that’s not fun to see your comments festooned with my replies to you, you are free to do it differently on your own damn blog.

Remember, if you want to unpublish a comment, email me and I’m happy to remove it. If you feel I’m being a bad bad man who abuses people, then I urge you to email me privately and we’ll hash it out. I can’t promise to satisfy you, but I promise to reply to you in good faith.

Those of you with whom I have a working relationship or friendship, feel free to use that to exert influence over my editorial behavior. I am susceptible to charm as long as I feel I’m not being asked to tell lies or muzzle my own ideas.

Online Test Coaching and Collaboration

I’ve been watching television commercials about the amazing new world of technology since about 1997. You know the ones: people accessing the web on their phones, doctors diagnosing patients from 10,000 miles away, or people attending universities online, or meeting via video screens. The thing is, mostly this technology hasn’t worked. Mostly it has been hype.

Two years ago, I noticed that begin to change. The key moment for me was when my father had to ditch his seaplane on a remote beach, and I used my Treo 600 to access tide tables over the web to find out how soon we had to fix it before waves came up and battered the thing to pieces. Wow. I accessed the web from my phone and it actually helped me solve a practical problem.

These days I have a Blackberry, and it makes a great phone and a decent web browser. It also has great battery life, though still a little too slow on downloads and not quite compatible with every kind of website.

Video conferencing and general online collaboration remained impractical. But recently, I have experienced a collaborative revolution:

  • My son persuaded me to install Skype.
  • I upgraded to MSN Live Messenger.
  • I got a webcam.
  • I subscribed to GoToMeeting and GoToWebinar.
  • I started using Google Calendar and Google Docs.

Though still not fully realizing the promise of all those advertisements about how technology makes the world work better together, these tools definitely go a long way.

Michael Bolton and I video conference on a regular basis, now. It’s reliable and fast. It really seems to bring us closer as we develop our training materials. David Gilbert demoed his latest version of TestExplorer while we shared screens with GoToMeeting. I’m giving a webinar to a class at Calgary University, this coming Saturday, from my home in Virginia. I’ll be using Skype for the voice feed.

Just in the last six months, I have begun coaching testers online and collaborating with colleagues with unprecedented clarity. I feel almost like I’m in a cubicle cluster with my best buddies. (To me, this is a good thing. I like being interrupted.)

The capper was a few weeks ago, when Pradeep Soundararajan, in India, tested a product on my computer in Virginia, while Grig Melnick, in Calgary, looked on. We Skyped to the GoToMeeting conference bridge (not free, but not expensive by U.S. standards) and shared my screen. Apparently, we could have added another 8 people to that process with no degradation of performance.

There is sometimes a voice quality problem when I use Skype at the same time as GoToMeeting. Otherwise, I’m happy. The thing I still don’t have is a viable persistent secure online collaboration zone where I can share files and co-edit documents. Google does some of that. MSN Live Messenger almost does it, but its file sharing is still pretty much a joke. Wikis make my skin crawl.

What Difference Does it Make?

For one thing, I’m developing new testing exercises much more quickly, now. I’m doing more of them as chat sessions, too, which means I can save the results for posterity. Whenever I have an idea I can bug one of my friends to try it with me online.

I’m adapting my class for teaching online. This is not easy, because some of my exercises are very interactive and involve physical props, but I’m getting serious about it.

I’m strongly considering offering tester coaching as a new service. The way it would work is a company would pay a small monthly subscription fee for its testers to have me (and eventually a team of other coaches I call the Students Of The Craft) available via instant message, Skype, and GoToMeeting. That way, I can actually hover over their virtual shoulders as they show me their products and their test documents. I’ve done this already with a few testers. It seems to work pretty well. It may also be a way to run an economically viable tester certification service that’s based on observing skilled testers at work, over time.

Imagine being a small company, yet able to call upon a coterie of technical specialists (such as rapid testers, performance analysts, etc.) to solve specific problems as needed. We have to figure out how to make it economical, but I think it’s within reach, now that the technology is routinely able to support it.

You may see me on one of those “ain’t technology great” advertisements, before long.

How to Ask (and Not Ask) for Free Consulting

Strangers contact me on a regular basis, asking questions about testing. I don’t mind answering questions. In fact, until the day I get paid for answering questions, it will remain one of my favorite excuses for not working. But once in a while, someone will ask the wrong question in the wrong way. Watch how this guy (I’ll call him “Mr. W.”) asks for free consulting. These aren’t instant messages, mind you, but full emails:

Mr. W.:
It would be a great help if u can explain me how to perform testing of
a datawarehouse along with a test plan for same.

I could tell you, but would you understand the answer? Do you have any training or experience as a tester?

Mr. W.:
James, I am a mercury certified tester so I think I can understand.

You are a Mercury Certified tester? I don’t know what that is. Does that cover general testing skills, or just how to run Mercury tools?

Mr. W.:
Mercury is a brand name in testing providing various tools like winrunner, test director etc.Talking of general testing skills I am proficient in Module, integration ,system and UAT.

I know what Mercury is. I didn’t know Mercury certified testers.

If you are a skilled tester, then you know that a question like “Can you explain to me how to perform testing of a datawarehouse and also provide me with a test plan?” cannot be answered. It’s as if you asked me “What is the mathematical equation that solves the problem I am thinking of that has something to do with data warehousing?” Nobody can answer that.

I could tell you about issues related to testing data warehouses, but I have no confidence that you would understand what I’m talking about or be able to act reasonably on that information. I’m not going to hand you a “test plan” and anyone who tries to give you a test plan is irresponsible.

Man, I think you need to learn how to test. Then you won’t feel the need to ask silly questions. I don’t know what kind of test Mercury gave you to certify you but it could not have been very hard to pass.

Mr. W.:
I think ur waste of time, just show-off of greatness , and empty vessel who makes lots of noise, I regreat I contacted u, ur a waste.

What is Going on Here?

One thing going on is that someone with an inflated sense of entitlement is offended that I won’t be his personal homework slave. But, let me itemize the problems:

  • Mr. W did not respond in a lucid and straightforward way to my questions. (There is, for instance, no such thing as a Mercury Certified Software Tester.)
  • Mr. W seems to be more concerned about me wasting his time than him wasting mine.
  • Mr. W seems to expect multi-page hand-crafted answers to single-line emails.
  • Mr. W seems to expect specific answers to vague questions.
  • Mr. W writes so poorly that I don’t think it can be chalked up to merely English-as-a-second-language syndrome. No English class on Earth is going to teach writing “u” instead of “you”. The only people who can be excused for writing “u” are teenagers texting each other, or teenagers writing in a chat window while simultaneously fighting level 55 scorpids in World of Warcraft.
  • Mr. W approached me with an enormously inflated notion of his own skills. I don’t believe anyone who is actually proficient in any test technique or approach would ask such a broad question as he asked, except as a joke. For one thing, it’s a question that would require a very long answer. For another thing, if he’s as proficient a tester as he claims, he would already know that answer.
  • Mr. W’s insults lack wit and specificity. I bet he tells all the writers he pisses off that they “just show-off of greatness”. Why, I haven’t even tried to show him my greatness, yet. I’m intentionally not showing greatness. Or maybe he considers it an act of show-off greatness to spell reasonably well, and make use of conventional grammar.

How to Ask Questions

Don’t be like Mr. W. If you want free consulting from a writer in the field, here’s how to get it:

  • Do not present yourself as if you are so lazy you can’t even summon the ambition to spell words and complete sentences.
  • Do reasonable homework before you approach a stranger to ask for answers. Learn to use Google. Poke around the many websites available.
  • Find out the basics of what that stranger does and believes. For instance, I am well known to be skeptical of certification programs. Citing that you are certified would just put me on edge.
  • For most strangers you approach, you probably should first ask permission to ask a technical question. For me, I grant you permission. For me, here’s what you need to do: Introduce yourself, state your situation, state your problem in detail, state what you have already done to solve your problem, and ask a specific question. Also, it doesn’t hurt to say something about how you know that I’m probably busy and how you would understand if I don’t have a lot of time for out-of-the-blue questions.
  • Be ready for the stranger to ask you to do some work to solve your own problem first, or to suggest that you are not yet ready to receive an answer. A good response to this is to do some more work and come back. You may also ask for more details about the kind of work they think you need to do.
  • Never blast your question to many consultants at once. It will get you instantly blackballed.
  • It never hurts to offer a favor of some kind in return for help.
  • In my case, if I don’t reply to you, try me again. Keep trying until I reply. The reason I don’t reply is usually because I’m really busy that moment. But squeaky wheels eventually get a response. Pradeep Soundararajan once sent me 18 reminders over a three month period until I finally answered his question. He has since received a great deal of my time, at no charge, just because I feel that he respects and values my help.

I will give time to four kinds of people: hard-working self-possessed people, warm and charming people, people who teach me something important, and people who pay me money so I can support my family. If you aren’t the fourth kind, and you want something from me, try to be one of the first three.

My Commenting Policy

Here is my policy for accepting comments that you make on this blog:

1. I moderate all comments. I accept comments for one or more of the following reasons:

– I value a dialectic approach to learning. So I appreciate critical comments, and I will respond to them. If I don’t write a specific response, that means my response is “Hmm. Interesting point.”

– I value an incisive mind. I get excited when someone is not merely critical, but engages an argument I make and skillfully picks it apart. I definitely respond to those comments.

– I consider comments to be a great way to help me communicate better. In other words, by commenting on my blog, you help me see my own message more clearly. Sometimes I accept a comment just because it gives me an invitation to riff or rant on something that I care about.

– A non-critical, supportive comment is cool, too. I prefer comments that add some new evidence or analysis to the discussion.

– It is okay to challenge my competence or ethics, unless you offer no evidence or argument to back up your challenge.

2. I will probably not approve a comment that merely insults me or dismisses my arguments without engaging them. I may make an exception if I feel like ridiculing you, but on my better days I feel that publicly humiliating a crazy person isn’t the best strategy for making the world a better place.

3. If I don’t publish your comment, feel free to ask me why. I promise to explain.

4. I will not edit or redact a comment that you submit unless I have your permission, with the possible exception of fixing an obvious typo. I may interpolate my replies, however. If you don’t like that, you can email me privately to complain, or you can post your comments about my stuff on your own blog, and then you’ll have total control.

5. If you want to comment on a reply I made to one of your comments, consider replying to me privately, so we can have the whole conversation. Then when you are ready to make your follow-up comment, I’m more likely to approve it.

6. By publishing your comment, I am implicitly endorsing it as potentially useful to the audience of this blog.

7. If you want me to remove or modify an earlier comment of yours, I will do so.

8. You retain copyright over your comments.