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
- Get Delinquent Loan
- Prioritize Loan
- Make Call
- Call Answered
- Assign Call to Collector
- Give Collector Window
- Capture Call Result
- Determine Follow-Up
- 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
- DelinquencyPolicy
- DialPolicy
- AnswerPolicy
- DispatchPolicy
- CallDialoguePolicy
- FollowUpPolicy
- LetterWordingPolicy
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