August 25, 2003

Against Best Practices

Ward Cunningham presented a keynote at the XP Agile Universe conference two weeks ago in New Orleans. He had many kind words for context-driven testing, and explained how it had influenced him to purge the phrase "best practices" from his vocabulary. He encouraged others to do this as well.

Indeed, his keynote was a description of the contexts in which XP wouldn't be appropriate. In particular, he cited each of the core values of XP (communication, simplicity, feedback, courage) and described reasonable situations where those values would not be important to an organization.

Some organizations value secrecy over communication. Some value growth over simplicity. Some value non-commitment over feedback. And some value scapegoating over courage.

Posted by bret at 04:58 PM | Comments (0)

August 22, 2003

Test Automation and XP Agile conferences

I'm writing from the Test Automation Conference in Boston. I taught my test automation survey class, and was the best class yet by far. I did several things differently. I finally diagrammed all the patterns for the class. It took me three days to get a satisfactory pattern layout. Armed with the pattern layout (which i'll publish shortly), i found a new way to teach. I'd already ripped out a lot of my older preparatory material, that was no longer fresh. I dived into the core patterns and then half-way into the morning, i told the class to choose the next pattern, connected to what we had already covered. The class clearly sent me in a more aggressive direction than i would have chosen. We ended the pattern review lecture soon after lunch and then students presented case studies to the class, which questioned their situation and suggested possible automation approaches. The result was a cross between a lecture and lawstian workshop. I also handed out CD's containing PDF's of all the lecture material as well as three-hundred pages of supporting papers.

A special moment for me in the class was in the afternoon when i was asked about the use of a particular tool. I apparently was being less than candid regarding my opinion, and my student called me on it. "I hear you are the independent one who will tell us the truth about the tools. This is why i came to this tutorial. You need to tell us."

Last March, i wrote about the lack of code and technical detail at this conference. It seems to be a bit better this time, but to no avail. Turn out was a record low and people are doubting whether we'll see this conference in Boston next year.

Last year, the Gartner Group reported that Mercury was the leading test tool company in their "Magic Square." I'm curious to see what they will say when the new one comes out next month. One thing i can say, no one can explain Mercury's mysterious absence. In March, they demanded a big honking tower. Now they dropped out of the vendor show entirely -- even though they were a platinum sponsor for the event. Mercury has tons of cash. No one had an explanation for their behavior. Anyhow, there competors weren't complaining about the extra traffic at their booths.

I also gave a well-received talk on Home-Brew Test Automation. Rex Black even closed my talk with a report that Ward Cunningham had recently been written up in Information Week with a discussion of his work with the Fit testing framework. Apparently Brian Marick also got a mention. Fit is one of the home-brew tools that i discussed in my talk. Fit is nearing version 1.0, which will promise backwards compatability henceforth. The key challenge is making

I was very excited about last week's XP Agile Universe conference in New Orleans. I had nearly constant interaction with developers interested in learning more about testing. XP may be a religion, but its adherents are genuinely interested in testing.

Posted by bret at 03:23 AM | Comments (2)

August 17, 2003

Extension Languages

"The language that you build your extensions on shouldn't be thought of as a programming language in afterthought; it should be designed as a programming language. In fact, we discovered that the best programming language for that purpose was Lisp. It was Bernie Greenberg, who discovered that it was. He wrote a version of Emacs in Multics MacLisp, and he wrote his commands in MacLisp in a straightforward fashion. The editor itself was written entirely in Lisp. Multics Emacs proved to be a great success -- programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program." -- Richard Stallman

This is the basically the strategy that Brian Marick and i are using in our Scripting 101 class. We are using a real programming language -- Ruby -- but we are teaching testers useful things to do with it instead of teaching them "programming."

Posted by bret at 06:58 PM | Comments (4)

August 04, 2003

Book Review: Murach's JCL. A great way to learn about mainframe systems

Several years ago, i had to deal with a mainframe system. My attitude then was to minimize my exposure as much as possible, as if it were a disease. I figured that mainframes were obsolete and any time i spent learning about them would be time wasted. Well, they are still around, and i recently found myself having to advise some mainframe testers. It was time for me to learn more about them.

I picked up Murach's OS/390 and z/OS JCL, and it does an excellent job of describing the architecture and nomenclature of mainframe systems. It presumes that you nothing about mainframe systems. To get started, you should know that MVS, OS/390 and z/OS are all basically interchangeable terms for the mainframe operating system (quibbling over these terms would be like quibbling over whether Linux were a Unix operating system). JCL is "job control language" and is the original front end for mainframe systems when punch cards were their primary external interface. There are now a number of easier interfaces that allow you submit JCL to a mainframe.

Anyhow, this book has been a very valuable guide to me for understanding the basics of mainframe systems and giving me the information i need in order to see analogies between it and other systems that i know better. For example, i now know that a data set is kind of like a file, a directory, or a filesystem, depending on how you look at it. And i have some sense of what CICS and VSAM are.

I was also surprised to see such a modern book format on a topic that i'm prone to consider dated. It's a large format with the text running on the left hand pages and examples, diagrams and summaries on the right. The main ideas of each spread are covered three times: in the narrative on the left, and in the examples and summary ("description") on the right. On many pages, i found myself not turning the page until i understood the material before me. It's a great format, and on the strength of it alone, i've already picked up Murach's book on Java for my technical library.

Posted by bret at 04:49 PM | Comments (0)