"A Walking Skeleton is a tiny implementation of the system that performs a small end-to-end function. It need not use the final architecture, but it should link together the main architectural components. The architecture and the functionality can then evolve in parallel." -- Alistair Cockburn (from
http://alistair.cockburn.us/index.php/Walking_skeleton)
It is a pattern intended to kick-start
TestDrivenDevelopment (mentioned at
http://www.mockobjects.com/book/kickstarting-tdd.html )
The pattern is described at
http://alistair.cockburn.us/index.php/Walking_skeleton
It's also mentioned in
ThePragmaticProgrammer
To be pedantic,
WalkingSkeleton is a technique to kick-start a project. If you follow
TestDrivenDevelopment, then you'll use your
WalkingSkeleton to kick-start that process. If you follow some other process, you'll use your
WalkingSkeleton to kick-start that.
Is there a relation with SpikeSolution?
The distinction seems to be subtle and somewhat amorphous (and perhaps unimportant), but it would appear that a
WalkingSkeleton implements the full range of
types of application architecture, but doesn't implement all necessary functionality. A
SpikeSolution is either a particular component of functionality or a "rough sketch" system to verify feasibility, etc. For example, a
WalkingSkeleton might implement a portion of the back-end database, some of the database abstraction layer, a portion of the business logic, and an associated data-entry form. That would allow the full architectural range of the system to be examined and further evolved. A
SpikeSolution might consist of just the data-entry form, or (alternatively) might present the same functionality as the
WalkingSkeleton but only as a test environment intended to be studied and then thrown away.
CategoryTestDrivenDevelopment