"Agile Adjustments" Posted at the AYE Website

I have an article posted to the AYE website. Check out “Agile Adjustments.

Yes, this means that I will be at AYE this year. It’s November 4 – 7 in Phoenix, AZ. And I’m absolutely delighted that they’ve invited me to be a guest presenter. AYE is a different kind of conference. No PowerPoint, no talking heads. Sessions last a half a day (instead of 45 minutes) and typically involve lots of exercises, simulations, or other experiential activities. There’s also lots of conferring. That’s what conferences should be about: conferring. And AYE fosters conferring exceptionally well.

Last I heard AYE is still accepting registrations, but since participation is limited to 99 people, whatever few places remain are likely to go quickly.

Hope to see you there!

Call for Participation: the Agile Alliance Functional Testing Tools Visioning Workshop

Some time ago, I wrote about how Jennitta Andrea (among others) fired my imagination about what could be possible with advances in functional test automation tools.

I’m delighted to announce that Jennitta is heading up the Agile Alliance Functional Testing Tools program. With her boundless energy and contagious enthusiasm Jennitta recruited Ron Jeffries and me to serve on the committee and obtained funding from the Agile Alliance for the program.

The project we’re working on first is a visioning workshop where we hope to bring together folks who have been working on advancing the state of the art of functional testing tools to pool ideas, share experiences, imagine the future, and build community.

Here’s the official call for participation:

Agile Alliance Functional Testing Tools Visioning Workshop
Call for Participation

Dates: October 11 – 12, 2007
Times: 8 AM – 5 PM
Location: Portland, Oregon
Venue: Kennedy School

The primary purpose of this workshop is to discuss cutting-edge advancements in and envision possibilities for the future of automated functional testing tools.

This is a small, peer-driven, invitation-only conference in the tradition of LAWST, AWTA, and the like. The content comes from the participants, and we expect all participants to take an active role. We’re seeking participants who have interest and experience in creating and/or using automated functional testing tools/frameworks on Agile projects.

This workshop is sponsored by the Agile Alliance Functional Testing Tools Program. The mission of this program is to advance the state of the art of automated functional testing tools used by Agile teams to automate customer-facing tests.

There is no cost to participate. Participants will be responsible for their own travel expenses. (However, we do have limited grant money available to be used at the discretion of the organizers to subsidize travel expenses. If you would like to be considered for a travel grant, please include your request, including amount needed, in your Request for Invitation.)

Requesting an Invitation
If you’re interested in being invited to participate in this workshop, please send an email to ” testtoolworkshop@agilealliance.org” answering the following questions:

  1. What is your experience using functional tests as a way to specify functional requirements?
  2. What is your experience with automated functional testing tools on Agile projects?
  3. What do you hope to contribute to the workshop? Do you have any code or examples that you’d like to share? (Please note that you should not share anything covered by a non-disclosure agreement.)
  4. What do you hope to get out of the workshop?

Invitations will be issued by September 1, 2007 so that we can confirm hotel room requirements. Please send in your request as soon as possible, before the workshop fills up.

Pass This Along
If you know of someone that would be a candidate for this workshop, please forward this call for participation on to them.

Additional Background
Automated functional testing is an integral and essential part of Agile development. Many Agile teams use functional tests to codify the system requirements. Some also practice Acceptance Test Driven Development.

Agile teams have particular needs for automated tools that are not well served by traditional record-and-playback GUI drivers. As requirements specifications, functional tests must be readable: clear, succinct, and expressed in the language of the business domain. As an automated safety net, the tests must be maintainable: built with reusable domain specific testing language components, easy to change as the requirements change.

The good news is that tool support for automated functional tests has grown significantly in recent years. There is a large variety of commercial and open source testing tools/frameworks available that support Agile development practices. The FIT framework was a significant boost to the state of the art of automated functional testing, both in terms of the syntax of the specification (tables), the detailed test execution feedback (cell by cell), and the development/execution environment (desktop tools rather than development or specialized tools).

However, we believe that it’s time for another significant boost to the state of the art.

  • We are lacking integrated development environments that facilitate things like: refactoring test elements, command completion, incremental syntax validation (based on the domain specific test language), keyboard navigation into the supporting framework code, debugging, etc.
  • We need more expressive test specification languages, possibly integrating executable: text, tables, shapes, and colors together into a single test.
  • We need specification languages that can describe user interaction in a readable and maintainable fashion.
  • We need to be able to view/navigate the tests in multiple different ways in order to see how the pieces of the puzzle contribute to
    the bigger picture of the domain/feature: organize tests based on their domain context; search for tests based on user-defined keywords (cross cutting concerns).
  • … and things that we haven’t even thought of that will take us out of the current box, and into a new level of effectiveness ….

The Agile Alliance Functional Testing Tools Program seeks to advance the state of the art by creating opportunities for people who are in a position to advance the state of the art to share information and ideas, and explore possibilities.

Agile Everywhere – Even Starbucks

I’m on the road this week. At the moment, I’m in a Starbucks. Those of you who know my travel habits know that this is where you’ll usually find me at 7AM when I’m on the road. (Mmmmm…coffee. Must. Have. Coffee.)

Once the caffeine hit my nervous system and my brain commenced something approximating normal activity, I noticed that the “The Way I See It” quote on the back of my Venti cup was particularly relevant for those of us doing Agile development:

“If we really want to understand innovation and collaboration, we have to explore shared space. Consider Watson & Crick: How many experiments did they do to confirm DNA’s double helix? Zero. Not one. They built models based on other people’s data. These models were their shared space. Their collaboration in that shared space powered their Nobel prize-winning breakthrough. If you don’t have a shared space, you’re not collaborating.”
— Michael Schrage, MIT design researcher and author of Serious Play.

I’m now enjoying my Venti drip even more than usual…

Mac Converversions – Unison-ing Mail, and Contact Management

HUGE thanks to MattJ for recommending Unison. I ditched svn for Mail syncing and went with Unison instead. Way cool. (Of course I’ll still use svn for content/code where I actually do need to keep track of versions.)

Next request: contact management.

My needs are simple, but more than the basic Address Book can handle. I need the basics most small businesses need: to be able to associate contacts with organizations, track the usual contact info, to add notes and bits of information, and to send personalized individual emails based on templates. (No, I do not spam my clients. But I do send out newsletters/announcements a couple times a year.) It also needs to keep my contact information locally so I can work effectively offline.

It does not have to sync between multiple users. Quality Tree Software, Inc. is a really small company, and for the foreseeable future I’ll be the only one with access to the contact database.

I don’t want a do-everything Personal Information Manager that will try to take over my life. iCal (with subscribing to Google calendars) handles my calendaring needs. I use paper (gasp, yes, paper) for my to do lists. And I don’t need or want a sales management tool. My contacts are people I want to keep in touch with, not “Opportunities” in a sales funnel.

By eliminating packages that tried to do too much, I made my short list really short:

I’m evaluating Contactizer now. It’s been a trifle glitchy, but so far immensely better than the PC product I use.

Anybody have any opinions on Contact Management apps I should be looking at (or staying away from)?

Mac Conversions – Subverting Email

I went with the MacBook. White, 2Gb memory, 120Gb disk. Remembered the mini-DVI to VGA converter too. I’m writing on it as we, er, speak.

I timed the acquisition I can take my new toy with me on the road next week when I do a class where I’m driving instead of flying. (That way I can take both my old and new laptops easily. It’s always risky when presenting from a new machine – but even more risky when that new machine represents a whole new OS. Having the old Windows machine there as a backup for the first time out mitigates the risk.)

I’m really pleased with how smooth the transition is going so far.

I use subversion for my course materials and slide decks. So I just did a “check out,” and *pouf!*, the new laptop had my most important presentation materials. Same thing for code, of course.

So…speaking of subversion…and about email synching – I’ve been thinking and tinkering.

I checked out the folder structure Mac Mail uses and discovered that emails are stored in flat files, one file per email, with file system folders as mailboxes. Not only does that seem much more sensible than Microsoft Outlook’s gigantic pst files, it also opens up the possibility of using subversion to synchronize my email in the same way I use it to synchronize my content and code.

So I started experimenting. Early trials are promising. I can check in my Library/Mail directory contents on one machine, svn up, and see the results on the other. But it’s not seamless. First I discovered that I had to set up accounts manually on both machines. Then I realized that every deleted email results in an svn client “! – item is missing.”

If I seriously want to make this work, I’ll probably need to write a little Ruby script to do the synch the way I want it.

But this is certainly more promising than anything I tried on a PC. Gotta love UNIX.