"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.