Ir al contenido principal

Lecciones militares aplicadas a los proyectos de software: Utiliza lo que tienes a mano

Annibal Barca al llegar a italia en el 217 a.C. con un ejercio variopinto que no se ajustaba a las estategias de la época. Hombres motivados pero sin la necesaria disciplina ni el equipamiento adecuado para una batalla clásica. El ejercito romano lo hubiera aplastado con rapidez si hubiera planificado las batallas según las tácticas vijentes.

La infantería pesada era la base de cualquier ejército de la epoca desde las estáticas falanjes griegas que combatieron en las guerrar médicas, hasta las flexibles legiones romanas de su adversario. En esa época, las batallas a campo abierto se libraban exponiendo largas líneas de escudos que maniobraban lentamente empujando al enemigo hacia posiciones complicadas como bosques o rios que impidiesen mantener la formación. En cuanto las líneas de un contendiente perdían la posición, la infantería ocupaba sus campamentos y la caballería perseguía y hostigaba a las tropas que se retiraban sin orden. Cuando el senado romano se enfrentó a Anibal en la batalla de Cannae en el 216 a.C, más de 40.000 soldados de infatería pesada romana se plantaron frente a un escualido destacamento de unos 12.000 soldaos de infantería pesada libia e hispana. Aunque en números globales la ventaja romana no era tan abrumadora (90.000 romanos frente a a 55.000 cartagineses), el resultado estaba claro desde el principio de la batalla.

Anibal contabal con dos ventajas: Su caballería que doblaba en número a la caballería romana, y la calidad de su infantería ligera muy superior a los hostigadores romanos. Sin embargo ambas ventajas eran completamente inutiles frente a una sólida muralla de infantería pesada cuyas líneas no se podrían romper. En lugar de lamentarse por su suerte, o de clamar por la ayuda de los dioses para que su línea de escudos aguantase lo imposible; Anibal planificó la batalla de acuerdo a las tropas que disponia. Usó a su caballería para rodear a los romanos y hacerlos sufrir una incesante lluvia de proyectiles. Usó a su infantería lijera para cambiar el peso en la línea romana constantemente, y obligar a los romanos a moverse continuamente hasta el agotamiento. En lugar de recurir a la sabiduría de sus maestros, y organizar un plan fiable y probado, Anibal tuvo que diseñar un plan hecho a medida del ejercito que disponía, y venció.

De igual forma, cuando tenemos que trabajar en un proyecto debemos adaptar las técnicas y herramientas al equipo de trabajo y al tipo de cliente. En todas partes se recomienda usar un enfoque centrado en pruebas para un proyecto, sin embargo si el cliente directamente desprecia la automatización de pruebas, y no quiere colaborar en el mantenimiento de los documentos de pruebas se complica mucho usar esa técnica. De forma similar, si el equipo de desarrollo está formado casí exclusivamente por programadores junior con experiencia en diseño y UX... probablemente lo mejor sería limitar todo lo posible las funcionalidades a implementar, y centrarse en ofrecer una excelente interfaz para las que se vayan implementando.

Con el objetivo en mente, es necesario definir el plan general para conseguirlo. Analizar lo que se necesita para cada uno de los diferentes pasos del plan, y analizar como encaja cada paso del plan con las herramientas de las que se dispone. Si un paso del plan no encaja con las herrmientas disposibles, hay que cambiar ese paso. Si un paso del plan es irrealizable, hay que cambiar el plan. El plan debe articularse como una línea de acción de las herramientas disponibles, y no al reves.

Comentarios