Esqueleto andante

Un esqueleto andante, en un contexto de desarrollo de software, es una implementación inicial mínima de la arquitectura de una aplicación que incluye y conecta los componentes básicos del sistema. Como su nombre lo indica, la estructura está en su lugar y es funcional de una manera rudimentaria, pero el sistema no está desarrollado y no proporciona el nivel de servicio requerido del producto final. Los subsistemas están incompletos pero conectados.

 Los esqueletos ambulantes se utilizan comúnmente en el desarrollo impulsado por pruebas (TDD), en el que las pruebas unitarias se realizan repetidamente en el código fuente. Después de cada prueba, el código se refactoriza y se vuelve a probar hasta que cada unidad funcione de acuerdo con las especificaciones deseadas. 

Un esqueleto ambulante debe poder realizar las funciones básicas requeridas del sistema final, como consultar fuentes de datos, solicitar servicios y realizar funciones. Cualquier automatización, como el manejo de excepciones y la integración continua (CI), también debe estar implementada y todos los componentes implementados deben probarse para garantizar, por ejemplo, que una consulta devuelve datos. Una vez que se ha demostrado que todos los componentes esenciales del sistema funcionan, puede comenzar el ciclo TDD y la arquitectura y la funcionalidad de la aplicación se pueden desarrollar en paralelo.

Alistair Cockburn, un científico informático estadounidense y pionero del desarrollo ágil, acuñó el término esqueleto andante cuando un diseñador de proyecto explicó cómo se había aplicado el concepto en un proyecto anterior.