Each team was asked to present their design and to answer a handful of questions about the design experience.

Workflow Design

Although we were interested in how a generalized workflow system might be build, we chose to limit our efforts to exactly the system described in the problem statement. We defined that system in terms of the actors (people and computers) it would serve ...

Vaughn had sketched out a fairly complete object model after picking up the detailed problem statement earlier in the day. We pulled from it the easily understood and generally static domain objects which became the core of our design ...

Although Vaughn had addressed some of the processing elements of the system, we found that they were not as easy to lift out of her pages. Visitors from the other workflow team (in the role of consultants) advised us to look at the life history of a call ...

Outgoing Call

  1. Get Delinquent Loan
  2. Prioritize Loan
  3. Make Call
  4. Call Answered
  5. Assign Call to Collector
  6. Give Collector Window
  7. Capture Call Result
  8. Determine Follow-Up
  9. Follow-Up with Call or Letter
We distributed responsibility for these actions across our domain objects, device drivers, and the rather confusing objects: Scheduler and Dispatcher. The distinction between the two remained hard to grasp until we drew the flows into and out of the pool of active calls ...

The phrase "user-definable algorithm" occurred frequently in the problem statement. We introduced the notion of a Policy object as a home for those algorithms, once defined. Seven kinds of Policies were called for, each connected to different information sources in our static and dynamic models. Rather than annotate our drawings with these objects, we chose to simply list the abstract classes ...

Abstract Policy Classes

This represents the amount of material that a small team could understand and agree upon in a couple hours. The feeling wasn't so much that of designing, but rather one of throwing design fragments on the table and linking them together. In a way this represents the intersection of our abilities, not the union which we all would have enjoyed exploring.

Design Experience

Q: What was the key step in the design process?
A: Our exchange with a similarly-experienced group gave us fresh ideas and reinforcement.

Q: What was the best thing in the resulting design?
A: The distinction between what (Call, Loan), who (Dispatcher, Scheduler), and how (Policy).

Q: What was the hardest question encountered that wasn't answered?
A: How can we develop a generalized solution to workflow problems?

Q: What did you learn that you can use?
A: Pick and choose from methods and notations (use what works).

Design Team

As we prepared our poster from our scattered thoughts and notes we chose to dub ourselves The Hill Country Dysfunctionals.

Benjamin Gan (Recorder)
Helen Klein (Moderator)
Wolfgang Pree
Paul Keefer
Michael Anton
Vaughn Asseltine
Ward Cunningham


ward@c2.com