A walking skeleton, in a software development context, is a minimal initial implementation of an application's architecture that includes and connects the basic components of the system. As the name implies, the structure is in place and functional in a rudimentary way, but the system is not fleshed out and does not provide the level of service required of the end product. Subsystems are incomplete but hooked together.
Walking skeletons are commonly used in test-driven development (TDD), in which in which unit testing is repeatedly done on the source code. After each test, the code is refactored and retested until each unit is functioning according to the desired specifications.
A walking skeleton must be able to carry out the basic functions required of the end system, such as querying data sources, requesting services and conducting functions. Any automation, such as exception handling and continuous integration (CI), should also be in place and all implemented components should be tested to ensure, for example, that a query returns data. Once all of the essential components of the system have been demonstrated to work, the TDD cycle can begin, and the application’s architecture and functionality can be developed in parallel.
Alistair Cockburn, an American computer scientist and agile development pioneer, coined the term walking skeleton when a project designer explained how the concept had been applied in a previous project.