[Design] Conceptual model for "stamping"

Phillip J. Eby pje at telecommunity.com
Tue Jan 18 11:07:22 PST 2005


Hi.  I'm a new member of the Services group, and I've been spending a lot 
of time recently trying to catch up on Chandler's design by reading through 
the wiki.  I have no idea whether this is the right way or place to make 
this proposal, but I've got to start somewhere so I'll just jump in with 
both feet first, and hope they don't end up in my mouth.  :)

I've noticed that there are a lot of useful scenarios that have been laid 
out with regard to Chandler as a "triage" tool, which is very interesting 
because few PIMs deal with that very well.  However, as I try to trace 
those requirement scenarios forward through the UI design and down into the 
content model etc., I notice that somewhere there came this idea of 
morphing objects into other kinds of objects as a way to implement those 
scenarios.  But I can't seem to find any rationale that explains why this 
is a better idea than simply having stamps create new items that then link 
back to the source item.  (e.g. a task to answer a particular email by a 
certain date.)

I *do* see places where that idea (linked items rather than morphing) is 
mentioned, but then at some point the idea just seems to fade away.  I'm 
wondering what the issue was, because it seems to me that linked tasks 
allow you to easily plan multiple things in relation to a particular email 
for example.  (Like if it contains multiple tasks.)  It also seems to me 
that it allows the software itself to be much simplified if items only need 
to be of one "kind" at a given point in time.

(Also, for the user's mental-model, when I receive an email, the email is 
not a task.  I have tasks "for" or "in response to" those items.  I'd like 
to be able to see a list of those tasks attached to the email, and be able 
to click through from the task back to the email, but I have trouble 
envisioning how the email and the task could be the same thing, especially 
if there are multiple tasks.)

Last, but far from least, if a "stamp" is basically just a shortcut to 
create one or more action items for a content item, then this is a simple 
model but which opens up all sorts of workflow and document management 
possibilities, while still scaling down for an individual.

Let's say I'm an academic who has to peer review papers, and there is a set 
of steps I have to go through for each document.  The first time, I 
manually create the task list, then select them and say "turn this into a 
stamp", possibly doing a little editing to touch it up.  Then, from then on 
when I receive a paper to review, I stamp it "Peer Review" and it 
automatically puts a bunch of tasks on my list, with names of the form 
"Task Description for Item Name", like "Check references for Paper X", 
"Write preliminary review for Paper X", etc.

And, there are various degrees of fidelity/complexity that can be followed 
for this as to how much information is copyable/customizable/etc. in the 
process.

Anyway, this stuff doesn't really fit with the idea that the paper "is" a 
task, for example.  The tasks are separate, and they may fit into different 
activity contexts (per Allen/GTD next-action lists).  In some cases more 
than one task might be available to do first for the same item.

A related issue to all this is that there seems to be this concept that a 
"calendar item" is a thing, and that a task might be one, or vice versa, 
which seems to lead to some complications.  In particular, if Chandler is 
to help people work better, then it would be helpful to *not* support this 
confusion, since one of the main points of David Allen's work is to keep 
action items distinct from "stuff".

So, let me suggest an alternative way of thinking about this...

Suppose we say that there are "content items" and "action items".  A 
content item is just stuff.  It can be an appointment or event (whatever 
you want to call a thing that happens at some point in time), an e-mail, a 
document, a note, a folder, a project, a goal, a contact, whatever.  It's 
any noun, pretty much.

An "action item", on the other hand, is a verb.  It represents a "next 
action" in Allen's terms.  It could be delegated, deferred, or available 
for doing in some context.  (In a way, you could say that delegated is a 
context that's some other person, and deferred is a context of time, but 
it's probably not worth getting that general just yet.)

An action item can be "on" or "for" some content item, or it can be "on" 
another action item.  For example, once you delegate something, you may 
need a deferred action item in the context of that person, that indicates 
you should follow up after a certain point in time.  This is an example of 
something that could be modeled by the "stamp as template for a set of 
action items" concept.  That is, the idea of delegation could just be a 
stamp that lets you select a person and a follow up date, and then creates 
a message for you to actually delegate the task.  (And possibly also 
changes triage status on the base item.)

The calendar, on the other hand, is itself just a timeline with entries on 
it.  These entries are not action items and they aren't contact 
items.  They're just dates.  After all, a complex event might have several 
actual "entries" on the calendar.  Similarly, an action item might also 
"contribute" entries to the calendar for "Start by" and "finish by" times, 
as well as for history of work on a task.

Again, the key is that items aren't really calendar entries, rather they 
contribute entries *to* the calendar.  And content items aren't action 
items, they can be stamped with them, or become a source for them.

Actually, technically a stamp need not be limited to creating action items 
for a content item, it could just be the idea of creating related items, 
period.  After all, a task might need an e-mail or a document template.

Anyway, I'm rambling on a bit here but the basic idea I want to get at is 
that it seems to me that the idea of having stamps make other items "for" 
an original item, as compared to having stamps "morph" items, is:

* a better match for the user model and for Allen/GTD approach
* allows greater flexibility at the end-user customization level
* does not require coding/testing of lots of special case rules for how 
different attributes get handled during morphing
* allows the content object model to be simpler and more modular
* allows new parcels to easily contribute new kinds to stamp or be stamped, 
without leading to combinatorial explosion of morphing rules
* an easily-explained metaphor
* separates "stuff" from actionable items, providing better support for 
actually deciding what you want to *do* with your "stuff", versus just 
keeping it all in your inbox or kicking it back into your inbox.

So, given this, I'm wondering if there's something that I've missed in my 
reading of the design docs, and was hoping somebody here would have some 
insight.  It would actually make the software's implementation simpler and 
more modular (not to mention extensible by third-party parcels) if it 
didn't have to deal with objects being of more than one kind 
simultaneously.  (By contrast, so-called "destructive" morphing doesn't add 
nearly as much complexity and it clearly supports some meaningful use 
cases, so I'm not proposing to remove that.)

Viewing stamping as a mechanism to create template items (using the current 
item to supply data for the template) offers lots of interesting additional 
possibilities as well.  For example, replying to an email could simply be a 
"stamp" that creates a reply template, which means that people could easily 
create their own custom form responses for emails, for example!  (And it 
wouldn't require coding up a specific feature; it's a natural consequence 
of being able to make things into templates that are available in useful 
contexts.)  Stamps could be keyed for availability based on item type and 
categorizations, e.g. you could have stamps specific to "Emails from Joe" 
or "Events with Steve".

Anyway, if there's no use case for which "multiple simultaneous kinds" adds 
significant value, I'd like to propose dropping it as a feature.  (Although 
not necessarily removing it during the 0.5 timeline, unless doing so 
accelerates features or fixes; i.e. we shouldn't slow down 0.5 to take the 
feature *out*).

I have a lot more thoughts on the uses and implementation of templates, 
workflows, calendar mappings, etc. than I've written about above, but I 
figure I'll save them for later, since I might be completely embarrassing 
myself by having opened my mouth on this subject in the first place.  :)



More information about the Design mailing list