Monday, May 5, 2008

Matt Webb Ripped: Getting Things Done As a finite-state machine

(sorry for ripping, just to thin it over for myself, here's the original:)

Computer programmes are something else that have to not halt unintentionally. The way this is done is to model the application as a collection of finite-state machines. Each machine can exist in a number of different states, and for each state there are a number of conditions to pass to one or another of the other states. Each time the clock ticks, the machines sees which conditions are matched, and updates the state accordingly. It is the job of the programmer to make sure the machine never gets into a state out of which there is no exit, or faces a condition for which there is no handling state. There are also more complex failure modes.

Getting Things Done, David Allen, describes a finite-state machine for dealing with tasks. Each task has a state ('in,' 'do it,' 'delegate it,' 'defer it,' 'trash' and more) and actions to perform and conditions to be met to move between the states. The human operator is the clock in this case, providing the ticks. This machine does have exit points, where tasks stop circulating and fall off.

The cleverness of Getting Things Done is to wrap this finite-state machine in another finite-state machine which instead of running on the tasks, runs on the human operator itself, the same operator who provides the ticks. The book is set up to define and launch the state machine which will keep the human in the mode of running the task machine. If they run out of tasks, the GTD machine has a way of looping them back in with tickle files and starting again the next day. If they get into a overwhelmed state, the GTD machine has a way of pruning the tasks. If they get demotivated and stop running the task machine, the GTD machine has ways of dealing with that. Alcoholics Anonymous has to deal with this state too, and it's called getting back on the wagon. The GTD machine even has a machine wrapped around it, one comprising a community to provide external pressure. Getting Things Done is a finite-state machine that runs on people; a network of states connected by motivations, rationale and excuses, comprising a programme whose job it is to run the task machine.

13 #

Websites can also be seen as finite-state machines that run on people. Successful websites must be well-designed machines that run on people, that don't crash, don't halt, and have the side-effect of bringing more people in. Websites that don't do this will disappear.

Instead of a finite-state machine, think of a website as a flowchart of motivations. For every state the user is in, there are motivations: it's fun; it's the next action; it saves money; it's intriguing; I'm in flow; I need to crop the photo and I remember there's a tool to do it on that other page; it's pretty.

If you think about iPhoto as its flowchart of motivations, the diagram has to include cameras, sharing, printers, Flickr, using pictures in documents, pictures online and so on. Apple are pretty good at including iPhoto all over Mac OS X, to fill out the flowchart. But it'd make more sense if I could also see Flickr as a mounted drive on my computer, or in iPhoto as a source library just as I can listen to other people's music on the same LAN in iTunes. This is an experience approach to service design.

Users should always know their next state, how they can reach it, and why they should want to.

If I were to build a radio in this way, it would not have an 'off' button. It would have only a 'mute for X hours' button because it always has to be in a state that will eventually provoke more interaction.

Designing like this means we need new metrics drawn from ecology design. Measurements like closure ratio become important. We'll talk about growth patterns, and how much fertiliser should be applied. We'll look at entropy and population dynamics.

Maybe we'll look at marketing too. Alex Jacobson told me about someone from old-school marketing he met who told him there are four reasons people buy your product: hope, fear, despair and greed. Hope is when your meal out at the restaurant is because it's going to be awesome. Fear is because you'll get flu and lose your job unless you take the pills every day. Despair is needs not wants: buying a doormat, or toilet paper, or a ready-meal for one. Greed gets you more options to do any of the above, like investing. Yeah, perhaps. Typologies aren't true, but they're as true as words, which also aren't true but give us handholds on the world and can springboard us to greater understanding. We can kick the words away from underneath ourselves once we reach enlightenment.

No comments: