Each team was asked to present their design
and to answer a handful of questions about
the design experience.
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 ...
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 ...
- 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
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
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).
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)