I’ll be traveling and training this fall. Take note of where I’ll be, because if I come near where you are and want some relatively free consulting, all you have to do is take me to dinner.
I’ll do almost anything for free food.
September
October
(The event in Cluj-Napoca is a one-day public seminar that introduces my Rapid Testing methodology through a series of puzzle challenges and lecture. I will also take any and all questions about testing. Click here to sign up for that.)
November
December
(I have one class to teach in England. I’m interested in doing something more, if there is any interest. Email me.)
My full schedule is published here.
Most of the testing world is managed around artifacts: test cases, test documents, bug reports. If you look at any “test management” tool, you’ll see that the artifact-based approach permeates it. “Test” for many people is a noun.
For me test is a verb. Testing is something that I do, not so much something that I create. Testing is the act of exploration of an unknown territory. It is casting questions, like Molotov cocktails, into the darkness, where they splatter and burst into bright revealing fire.
How to Manage Such a Process?
My brother Jon and I created a way to control highly exploratory testing 10 years ago, called session-based test management (SBTM). I recently returned from an intense testing project in Israel, where I used SBTM. But I also experimented with a new idea: thread-based test management (TTM).
Like many of my new ideas, it’s not really new. It’s the christening (with words) and sharpening (with analysis) of something many of us already do. The idea is this: organize management around threads of activity rather than test sessions or artifacts.
Thread-based testing is a generalized form of session-based testing, in that sessions are a form of thread, but a thread is not necessarily a session. In SBTM, you test in uninterrupted blocks of time that each have a charter. A charter is a mission for that session; a light sort of commitment, or contract. A thread, on the other hand, may be interrupted, it may go on and on indefinitely, and does not imply a commitment. Session-based testing can be seen as an extension of thread-based testing for especially high accountability and more orderly situations.
I define a thread as a set of one or more activities intended to solve a problem or achieve an objective. You could think of a thread as a very small project within a project.
Why Thread-Based Test Management?
Because it can work under even the most chaotic and difficult conditions. The only formalism required for TBTM is a list of threads. I use this form of test management when I am dropped into a project with as little a day or two to get it done.
What Does Thread-Based Test Management Looks Like?
It’s simple. Thread-based test management looks like a todo list, except that we organize the todo items into an outline that matches the structure of the testing process. Here’s a mocked-up example:
Test Facilities
Test Strategy
Test Management
This outline describes the high level threads that comprise the test project. I typically use a mind-mapping program like MindManager to organize and present them.
So, you should be thinking, “Is that it? Todo lists?” right about now. Well, no. That’s not it. But that’s one face of it.
What Else Does Thread-Based Test Management Look Like?
It looks like testers gathered around a todo list, talking about what they are going to work on that afternoon. Then they split up and go to work. Several times day they might come together like that. If the team is not co-located, then this meeting is done over instant messaging, email, or perhaps through a wiki.
Is That All it Looks Like?
Well, there is also the status report. Whether written or spoken, the thread-based test management version of a status report lists the threads, who is working on the threads, and the outlook for each thread. It typically also includes an issues list.
Other documentation may be produced, of course. TBTM doesn’t tell you what documents to create. It simply tells you that threads are the organizing principle we use for managing the project.
Where Do Threads Come From?
Threads are first spawned from our model of the testing problem. The Satisfice Heuristic Test Strategy Model is an example of such a model. By working through those lists, we get an idea of the kinds of testing we might want to do: those are the first of the threads. After that, threads might be created in many ways, including splitting off of existing threads as we gain a deeper understanding of what testing needs to be done. Of course, in an Agile environment, each user story kicks off a new testing thread.
Which Threads Do We Work On?
Think priority and progress. We might frequently drop threads, switch threads, and pick them up again. In general, we work on the highest priority threads, but we also work on lower priority threads many times, when we see the possibility for quick and inexpensive progress. If I’m trying to finish a sanity check on the new build, I might interrupt that to discuss the status of a particular known bug if the developer happens to wander by.
Major ongoing threads often become attached to specific people. For instance “client testing” or “performance testing” often become full-time jobs. Testing itself, after all, can be thought of as a thread so challenging to do well, and so different from programming, that most companies have seen fit to hire dedicated testers.
How Do Threads End?
A thread ends either in a cut or knot. Cutting a thread means to cancel that task. A knot, however, is a milestone; an achievement of some kind. This is exactly the meaning of the phrase “tying up the loose ends” and marks either the end of the thread (or group of threads) or a good place to drop it for a while.
How Do We Estimate Work?
In thread-based test management, there is no special provision or method for estimating work, except that this is done on a thread-by-thread basis. Session-based test management may be overlaid onto TBTM in order to estimate work in terms of sessions.
How Do We Evaluate Progress?
In thread-based test management, there is no special provision or method for evaluating progress, either, except that this is done on a thread-by-thread basis, and status reports may be provided frequently, perhaps at the end of each day. Session-based test management is also helpful for that.
So What?
This form of management is actually quite common. But, to my knowledge, no one has yet named and codified it. Without a convenient way to talk about it, we have a hard time explaining and justifying it. Then when the “process improvement” freaks come along, they act like there’s no management happening at all. This form of management has been “illegible” up to now (meaning that it’s there but no one notices it) and my brother and I are going to push to make it fully legible and respectable in the testing arena.
From now on, when asked about my approach to test management, I can say “I practice Rapid Testing methodology, which I track in either a thread-based or session-based manner, depending on the stage of the project, and in a risk-based manner at all times.”
How is TBTM Any Different From Using a TO-DO List?
Michel Kraaij questions the substance of TBTM by wondering how it’s different from the age-old idea of a “to-do” list? See his post here.
This is a good question. Yes, TBTM is different than just using a to-do list, but even so, I don’t think I’ve ever read an article about to-do list based test management (TDBTM?). Most textbooks focus on artifacts, not the activity of testing. Thread-based test management is trying to capture the essence of managing with to-do lists, plus some other things in addition to that.
The main additional element, beyond just making a to-do list, is that a traditional to-do list contains items that can be “done”, whereas many threads might not ever be “done.” They might be cut (abandoned) or knotted (temporarily parked at some level of completion). Some threads maybe tied up with a bow and “done” like a normal task, but not the main ones that I’m thinking of. As I practice testing, for instance, I’m rarely “done” with test strategy. I tinker with the test strategy all the way through the project. That’s why it makes sense to call it a thread.
Another thing to recognize is that the main concern of TBTM is how to know what to put on your thread list. The answer to that invokes the entire framework of Rapid Software testing. So, yeah, it’s more than having an outline of threads, which does look very much like a to-do list– it’s the activity (and skills) of making the list and managing it. If you want to talk about to-do list based test management, then you would have to invent that lore as well. You couldn’t just say “make a to-do list” and claim to have communicated the methodology.
[You can find Jonathan's take on TBTM here.]
[I credit Sagi Krupetski, the test lead on my recent project, for helping me get this idea. His clockwork status reporting and regular morning question "Where are we on the project and what do you think you need to work on today?" caused me to see the thread structure of our project clearly for the first time. He's back on the market now (Chicago area), in case you need a great tester or test manager.]
In his book “Succeeding with Agile”, Mike Cohn present nine questions that you should ask for a current or proposed team. Questions should be asked iteratively… until you answer “yes” to each. Here are the questions:
* Does the structure accentuate the strengths, shore up the weaknesses, and support the motivations of the team members?
* Does the structure minimize the number of people required to be on two teams (and avoid having anyone on three)?
* Does the structure maximize the amount of time that teams will remain together?
* Are component teams used only in limited and easily justifiable cases?
* Will you be able to feed most teams with two pizzas?
* Does the structure minimize the number of communication paths between teams?
* Does the structure encourage teams to communicate who wouldn’t otherwise do so?
* Does the design support a clear understanding of accountability?
* Did team members have input into the design of the team?
Besides the cultural bias (in Italy, one pizza will usually feed one person but it might be different in the USA…), you could use these questions for every project that you are currently running or plan to run.
Reference: “Succeeding with Agile”, Mike Cohn, Addison-Wesley, 262 pages, IBSN 978-0-321-57936-2
Get more details on this book or buy it on amazon.com
Get more details on this book or buy it on amazon.co.uk
Here is a list of software development related conferences and events that will take place in September and that have media partnerships with Methods & Tools:
* Mobile Application Stores, September 7 2010, Zurich, Switerland
* iqnite 2010 Schweiz, September 21 2010, Zurich, Switzerland
* Lean & Kanban 2010 Europe, September 23-24 2010, Antwerp, Belgium
* Software Testing Analysis & Review Conference, September 26—October 1 2010, San Diego, USA
* iPhone/iPad DevCon, September 27-29 2010, San Diego, USA
* iqnite Nordic, September 29-30 2010, Stockholm, Sweden
* iqnite United Kingdom, October 4 2010, London, UK
* Agile Eastern Europe, October 8-9, Kyiv, Ukraine
Find more software development conferences
Our software development tools directory has now categorized more than 2000 tools. From project management and unit testing tools to NoSQL databases, you can find tools used in every software development activity, as the 10′000 monthly visitors do, searching by programming language, running platforms or another of our classification criteria.
If you are the committer of an open source project or the marketing manager of a commercial tool, do not hesitate to add your tool. It is free and you will be able to post press releases to communicate about new versions.
Blog: Categorizing the Cloud …
Blog: Patterns and Practices for Improving Personal Productivity, Time Management, and Effectiveness
Blog: Earned Value v. Earned Schedule
Blog: A List of Coding Standard Websites
Humour: My husband is a programmer; I have no idea what that means.
Article: jQuery Test-Driven Development
Article: Are We Headed to Abilene?
Tool: Flerry is a Flex-Java bridge for Adobe AIR 2.0
Tool: Coverlipse is an Eclipse plugin that visualizes the code coverage of JUnit Tests
Video: How to Cope with Communication Problems in an Agile Project?
Video: Continuous Integration, Pipelines and Deployment
Find more interesting links on the software development links directory, the software development tools directory, the software development articles directory, the software development blogs aggregator or the software development videos directory.
An exploratory DOCTOR is known as… a “doctor.”
An exploratory WELDER is known as… a “welder.”
An exploratory PILOT is known as… a “pilot.”
An exploratory WRITER is known as… a “writer.”
An exploratory SCIENTIST is known as… a “scientist.”
An exploratory TRUCK DRIVER is known as… a “truck driver.”
A non-exploratory doctor is known as… “irresponsible.”
A non-exploratory welder is known as… “irresponsible.”
A non-exploratory pilot is known as… “killed in a plane crash.”
A non-exploratory writer known as… “a plagiarist.”
A non-exploratory scientist is known as… “a tobacco company scientist.” (also “Creationist”)
A non-exploratory truck driver is known as… “lost.”
Can you spot the pattern here?
There is no such thing as an “exploratory tester” except inasmuch as a good tester obviously can and will do exploration as a basic part of his work.
This book is composed of papers previously written by Watts Humphrey. The people and management aspects of software development are often neglected in books and this one is a good source to start thinking about them… and improving our practice. The book is structured in four parts: managing your projects, managing your teams, managing your boss and managing yourself. In each part, it presents both general principles and real life examples or stories taken from Watts Humphrey career. This makes the book very easy to read as we can connect the theory to situations that we have met in our professional life.
Read the complete review on Sofware Development Books
Reference: “Reflections on Management – How to Manage Your Software Projects, Your Teams, Your Boss, and Yourself”, Watts S. Humphrey and William R. Thomas Addison-Wesley, 260 pages, IBSN 978-0-321-71153-3
Get more details on this book or buy it on amazon.com
Get more details on this book or buy it on amazon.co.uk
We invite you to propose a session for this leading software development conference. We have a long tradition of high quality sessions covering many aspects of software development, from programming languages (e.g., Java, C#, Python, Erlang, Haskell, Ruby, Groovy, C, C++, etc.), and technologies (libraries, frameworks, databases, etc.) to subjects about the wider development environment such as testing, architecture and design, development process, analysis, patterns, project management, and softer aspects such as team building, communication and leadership.
Sessions may be either tutorial-based, presentations of case studies, or take the form of interactive workshops. We are always open to novel formats, so please contact us with your idea. The standard length of a session is 90 minutes, with some exceptions. In order to allow less experienced speakers to speak at the conference without the pressure of filling a full 90 minutes, we reserve a number of shorter 45 minute sessions.
Google has recently bought Instantiations, the editor of Java, GWT, Struts and Ajax software development tools. On the Instantiations web site, the company says: “Yes it’s true. Instantiations’ award-winning Java and Ajax development tools and our incredible Eclipse team have been acquired by Google. We are all very excited about taking our technology and team to the next level – and there is no bigger step up than Google! We very much appreciate your patronage and interest through the years. As part of Google, we look forward to continuing to work with you. Please stay tuned for exciting new announcements coming soon on the Google Web Toolkit blog. Current Java and Ajax product customers — we are committed to making this a seamless transition for you. For a short period of time, new downloads of our products will be unavailable while we make the transition, but our service continues uninterrupted for those who have support agreements in place.”
The Smalltalk business will remain independent and their new web site is http://st.instantiations.com/. Mike Taylor will continue as President and CEO of the new Smalltalk-focused Instantiations. Founder Eric Clayberg will join Google, but will also continue as a Director/Board Member, technical advisor and major shareholder of Instantiations. John O’Keefe will assume an even stronger role guiding the technical development and advancement of VAST.
This acquisition is however not mentioned neither in Google Official Blog or Google Press Releases . On an Instantiations forum posting titled “Seamless migration to Google” , a customer complains that “Unless I’ve missed something the website is no longer available and the support emails just bounce back ? What am I doing wrong ?” It seems that the communication was lacking not only to the external world but also towards Instantiations customers. Mail to my instantiations.com contact is effectively bouncing…
I can understand that this acquisition may be a minor action in Google exciting life. For instance the press release section of Google doesn’t mention also that will stop deploying the Google Wave technology. This is what you call an “update” in PR language ;o)