Skip to main content

IBM Cambridge Research Center

  Project: Kontiki

Primary Researchers: Martin Wattenberg, Jonathan Feinberg
Contact: research@lotus.com

A Collaborative User Experience Project:

We've all had the experience of filling out a form that had a mistake. Maybe the form asked for the wrong information, or made a bad assumption, or was simply outdated. Wouldn't it be nice if you could have just fixed the form, then and there?

The Kontiki project lets users do exactly that with on-line forms. Inspired by wikis (technology that encourages group authorship and editing of web pages), the Kontiki prototype is a web site that lets line-of-business users create and reuse web pages and forms that represent--and help execute--simple business processes. Kontiki runs on Websphere using DB2. Unlike a typical forms builder, Kontiki makes no strong distinction between form authors and form users. While Kontiki is not appropriate for every process (for example, just imagine how we all might edit the IRS 1040 form), we believe that this flexibility is critical for handling ever-changing requirements and for gathering knowledge distributed over a group that is often typical of ad-hoc processes.

Two qualities of Kontiki forms make them especially appropriate for representing business processes. The first is the notion that any element on a form can be assigned to a person; when someone fills out an element, it becomes an activity that appears in a global to-do list for that person. A second building block is the ability to declare dependencies between elements, so that certain activities must be performed in a given sequence.

Figure 1 shows part of a very small example Kontiki page, created for the activity of writing this article. The page has three embedded activities:writing a draft, reviewing it, and editing it. The checkbox next to "write draft" indicates an activity that Martin must perform. (That activity automatically shows up on a central to-do list that is not shown here.) The next two items are aimed at others. The small "d" icon next to each item indicates that it depends on an earlier activity being completed. For example, once Jonathan checks the box to indicate that he's written a draft, his action item becomes active and appears on his to-do list. The result is a central "live" page that tracks the progress of the project.



Figure 1. Kontiki shows who tasks are assigned to and the dependencies among them.

Kontiki also allows you to specify simple variables, so that it is possible to make processes general. For instance, it is easy to define roles, making it clear that a set of activities must be performed by the same person. In the example above it would be natural to create roles for author, editor, and reviewer. Once roles have been defined, it becomes simple to create new instances of a process by reusing the process form but changing who plays which role. There is also a web services interface that allows for integration with external systems. For instance, in a form for ordering books you can include current prices from Amazon.com. We also plan to add simple computational capabilities via a spreadsheet calculation model--an addition that will enable more complex processes that include conditional statements (such as "If amount is greater than $1,000, your boss's boss must approve this") and rolling up data across processes.