Monday, August 06, 2007

Coding Against a Walking Skeleton

This is a tip on how to startup a large and complex development task.

When I am to begin development on a new project or larger, complex task, which is mainly uncharted territory, I like to employ various techniques. One of which is called "Walking Skeleton".

A Walking Skeleton for me, is: "The smallest and simplest path, from front-end user interface input, through the system services and finally to simple, but usable output".

An example could be the development of a web application which employs a lot of input and complex data validation through a new RIA technology, a complex translation of the input on server-side into some output format and the transport of this to some other part.

Starting up on this, I would define user stories for a simple path all the way through the technology stacks of architecture. But it must be kept simple:
  • The user interface can be simple in layout, and does not need to have all required fields
  • Not all complex validations in client should be implemented, though a few simple ones could
  • On the server-side, the client input should be accepted and validated a bit
  • Some part of the server functionality can be implemented, but you can make shortcuts all over, hard-coding stuff etc.
  • Some final output shall be produced
From this, you should be able to produce a final walking skeleton in 1, 2 or 3 iterations.

From here on, when the walking skeleton is done, the story writing and planning can be thought of as putting meat on the skeleton:
  • Assess the main risks in the development (the parts you are most uncertain with)
  • Which functionality delivers the most wanted business value to the customer
Make stories out of this, and start putting meat on the skeleton...

I do not know where the term stems from (do you?), but I did a quick google on it, and found that the book on the Crystal Method (which I have yet to read) mentions it. In addition, a colleague of mine, which is currently reading the great Pragmatic Programmer book, informs me, that it is called "tracing bullets" (or something like that) in that book, which I have completely forgotten about (maybe I should read it again).

Have you got any experience with this too or maybe you have other good advice on coping with such situations?

1 comment:

lkristjansen said...

I know that this is an old post from 2007, but i just wanted to say that the walking skeleton was coined by Alistair Cockburn here is the link , but the walking skeleton strategy is far older.