Since tasks may contain each other and each task has a short term goal that serves as its success criteria, identifying a task by its goal level allows us to easily identify the size and abstraction level of the task. Identify tasks with goal level.
While tasks are used to achieve a less tangible personal goal for the human engaged in them, the task itself has a more tangible goal that a human uses to determine if the task was successfully completed. Since bigger tasks are composed of smaller tasks, when looking at a particular task it's nice to know if I'm looking at one of the big ones, a small one, or a really tiny one hardly worth discussing. Identifying the goal level of the task helps me do that.
In Writing Effective Use Cases, Alistair Cockburn introduces the useful concept of goal level. To explain goal level he uses an altitude metaphor with sea level falling in the middle of the model. He refers to sea level as "functional" level.
The test for a sea level goal is: would I as someone engaged in this task expect to finish that task in a single sitting, typically without interrupting or setting aside the task to complete later.
Sending an email message might be such a task. Buying coffee might be such a task.
Alistair suggests a few tests to determine a function goal level including the coffee break test: "after I get done with this, I can take a coffee break." Ironically, "take a coffee break" may be a task with a sea level goal.
It's important to note that Alistair originally uses goal level as a characteristic of a use case. A use case describes the interaction between two parties - typically a user and a computer. But, when we think about tasks, we don't want to assume that the task takes a computer to perform. We'd like to assume as little as possible. But, even without the second party I'd find in a use case, the concept of goal level still applies handily to user tasks. So, apply it.

Cockburn's goal level model
Starting from sea level, goal levels moves up and down to neighboring areas of the ocean and atmosphere.
Moving down we'd encounter "fish level goals" or sub-functional goals. These are the smaller tasks that help us complete the functional level task. In our coffee example above we need to get the attention of the server, and order coffee as part of buying coffee. Getting the attention of the server by itself doesn't accomplish much. That's why it's a sub-function.
Moving down even farther we find a very low level goals - clam level as Alistair labels them. To get the attention of the waiter I'll first look around, then throw my arm up and gesture wildly. "Look around" and "gesture wildly" are low clam level. Alistair makes the point, and I'd agree, that thinking about things at this low a level isn't always productive. Since clams are down in the sandy sea bed, thinking at this level is considered down in the sand.
Moving up from sea level we'll encounter the summary level - or kite level. Summary level goals may be achieved over a longer period of time using several function level goals. I met my friend for breakfast to discuss an upcoming client meeting. "Plan an upcoming client meeting" is a task with a summary level goal that may take place over the course of many days and involve many specific tasks including a breakfast discussion.
High summary level is represented with a cloud. This goal level surrounds goals that may take a very long time to achieve. Planning the client meeting was an activity that took place in the context of my job. The cloud level activity here might be to "have a successful career."
It's important to note that goal level is a continuum - much like an analog dial for adjusting volume on a stereo. The goal level dial may have five labeled settings but a particular task can easily fall between two of those settings.
Task goal level varies based on its context
It's common for a task in one context to be function level, while in another context that same task is sub-function. For example, buying coffee may be a function level goal if I'm on my way to work and all I'd like is coffee. But, ordering coffee might also be a sub-function inside of ordering breakfast.
Another example might be looking up an email address on your computer. If a friend calls you and asks for another friend's email address, looking up that address may be considered function level. If it's done in the context of sending an email message, it may be considered sub-function.
comment on this page via email ![]()
Next Topic: Activities are composted of tasks >>
<< Previous Topic: Represent work people perform as tasks