What is an example of a task based UI?
The easiest way to generate a task based UI is to protect all attributes/properties of your models. i.e. remove all setters.
From this (pseudo code):
public class TodoTask
{
public Date getDateAssigned();
public void setDateAssigned(Date);
public string getAssignedTo();
public void setAssignedTo(string);
}
to this:
public class TodoTask
{
public Date getDateAssigned();
public string getAssignedTo();
public void AssignTo(string userId);
}
You can't create a basic CRUD app anymore. You have to perform a task (Assign()
) to update the model.
Start by removing all setters and then analyze what kind of actions (task) you should be able to do on each model.
Then you're all set.
I've blogged about it: http://blog.gauffin.org/2012/06/protect-your-data/ (scroll to the bottom to see mockups for CRUD vs Task based)
I think this would qualify as a Task Based UI.
CRUD Interfaces
CRUD interfaces have a "Save" button when editing and you miss the "reason" why something changes.
For example changing the address of a customer from "Fountain St. 55" into "Birds St. 444" has the very same semantics than changing it from "Fountain St. 55" into "Fountain St. 555". Just "updated" the street.
Task-based Interfaces
Task-based interfaces have "Action buttons" that "mean" something of the business.
For example you could have a "Correct Address" button to signify that you are changing the address because it contained a typo and the address in fact "conceptually" is the same, only that now it reads correctly. In this case the customer did not physically move.
And then you could have another different action like "Move Customer to a new address" that means that the customer actually moved to a new place and the address change carries all that meaning.
So... in short
In CRUD UIs => You "edit data".
In Task-Based UIs => You "signal that business things happened".
Conclusion
The second is always more powerful, although is harder to think in advance and the system must be flexible to add, carry and convey new "meanings" as they are discovered during the business operation itself.
But you get a huge benefit: Know "why" things mutate. In other words... capture the user's intent.
Microsoft Money 2000 was an example by Microsoft (although they call it Inductive User Interface. Here are the underlying guidelines and a few screenshots along the way: Microsoft Inductive User Interface Guidelines