Testlists

How to Get Work Done Right

How do you know that the work you do is right? When you hand a task over to someone else, how do they know what you expect?

This paper discusses a process to help you and others get work done, get it done right, and get it done efficiently. The process is based on the use of testlists. A testlist is a list of tests, similar to a checklist.

When is Work Done Right?

When we talk about work, we usually talk about a task or set of tasks that comprise the work. Any project or block of work can be broken down into a set of tasks. When all the tasks are done, the work is done. If we want to know if a task is done correctly, we can ask:

To answer these questions, create a set of tests. If the task passes all the tests we can think of, it's done. In other words, for each task, we can say:

The most effective way to assure that work is done, and done right, is by testing.

Test-First Process

Work on a project is easier to organize and control if it's first broken down into phases, the phases into tasks, and the tasks into subtasks. Testing is easier as well. To summarize the process, which I call test-first in honor of its XP legacy:

The process is very simple, but very effective. I'll talk about each step in detail.

Break Project into Phases

Nothing unusual here. Architects are accustomed to breaking projects down into schematic, design development, contract documents, bidding, and construction phases. Breaking a large project into time-based phases makes it easier to manage.

List Tasks for Phase

List the tasks, one at a time, that are required to complete the work. Order isn't important. Just be sure to include every task you can think of. Then break each task down into successively smaller sets until each task is small enough to complete in few hours. For example:

This site has an section devoted to listing project tasks. See the project tasks home page.

Select Task

Once all required tasks are listed, select a task and complete it: write the tests, do the task, make sure the tests pass. Repeat the process until all the tasks are completed and the work is done. One of the best processes for selecting the next appropriate task is discussed in Extreme Project Management.

Assume, for the next few sections, that you have a task selected.

Write Tests for Task

Instead of immediately completing a task, write the tests for it first. Tests explicitly define the task. Without tests, the task is vague and nebulous. With tests, you know exactly what needs to be done. When the tests all pass, they give you confidence that what you've done is right.

How do you write the tests? Just write down every test you can think of that will assure you that the task is complete. List things that you intuitively check when you do a task. Word each test so it can be answered with a simple yes or no, pass or fail response. As you proceed, keep asking yourself:

And continue adding additional tests to the list. For example, let's say our task is to complete the floor plan for a set of working drawings. A set of tests might start with:

This list of tests is called a testlist. Testlists can be re-used each time you do a similar task. They can be improved over time and shared among colleagues. This site maintains a steadily growing collection of testlists so you don't have to write your own. See the project checklists home page.

Note that testlists identify only what needs to be done; they don't tell how. Thus, they control the scope of work while allowing for a wide range of alternative solutions.

Do Task

How do you do the task? The tests define scope. You're free to work however you wish. Here are a few guidelines:

Test Task

For now, tests must be done by visual inspection. For each test, just look to see whether it's done or not.

In the future, most tests will be automated. They'll probably run similar to a grammar checker, notifying you when a test doesn't pass. When I talk about running the tests, I'm looking to the future, where tests are run by pressing a button. For now, tests are run by checking each item in the testlist, manually or visually.

When do you run the tests? Ideally, whenever you add or change something. The person doing the work is responsible for assuring that the tests pass, not someone doing a backcheck after the work is complete.

Some tests fail or can't be performed because they depend on other work being completed. For example, the window schedule may not have been started, so you can't verify that every window on the floor plan has been listed. Note all failing tests on the testlist so they can be easily identified and run later.

Testlist Tips

Here are some tips on using testlists.

Testlists Compared to Checklists

Testlist Benefits

Using testlists and participating in their creation and improvement will benefit you, your office, the architectural profession, and the construction industry.

Personal Benefits

Office Benefits

Professional Benefits

Industry Benefits

Using Testlists

Using testlists is one of the most effective ways to assure that a task is correct and complete. Of all the XPM practices, testing provides the biggest payback for the least effort. If you want to introduce XPM practices in your office, I recommend that you start by using testlists.


Printer-Friendly Version

Click here for a version of this page that's more suitable for printing. After printing, click the back-arrow of your browser to return to the original format with an index alongside.

Feedback Wanted

I welcome your comments and suggestions. See contact us for more information.

Document Information