Es el verano de 1858. Londres. El río Támesis rebosa del olor de los desechos humanos e industriales. Los meses de verano excepcionalmente calurosos han exacerbado el problema. Pero esto no sucedió de la noche a la mañana. La falta de mantenimiento de un sistema de alcantarillado envejecido y una población creciente que lo utilizó contribuyó a un barril de efluentes en polvo, provocando brotes de cólera y envolviendo la ciudad en un olor que no desaparecería.
Hasta el día de hoy, los londinenses todavía hablan del Gran Hedor. Las infecciones recurrentes de cólera llevaron al comienzo del campo de la epidemiología, un tema en el que todos nos hemos convertido recientemente en entusiastas aficionados.
Avancemos rápidamente hasta 2020 y veremos que las canalizaciones de software modernas enfrentan un “Gran Stink” similar debido, en gran parte, a la gran adopción de la integración continua (CI), la práctica de fusionar todas las copias de trabajo de los desarrolladores en un entorno compartido. línea principal varias veces al día, y entrega continua (CD), la capacidad de obtener cambios de todo tipo, incluidas nuevas características, cambios de configuración, correcciones de errores y experimentos, en producción o en manos de los usuarios, de manera segura y rápida de manera sostenible camino.
Si bien las fallas de software contemporáneas no propagarán enfermedades ni emitirán los olores rancios del pasado, ciertamente apestan a devastación, lo que hace que se pierdan miles de millones de dólares y se pierdan millones de horas de desarrollador cada año.
Este tipo de desperdicio es antitético a la intención de CI / CD. Todos están empleando CI / CD para acelerar la entrega de software; Sin embargo, la creciente acumulación de fallas de pruebas esporádicas e intermitentes está haciendo exactamente lo contrario. Se ha convertido en un lodo creciente que se alimenta constantemente de fallas más rápido de lo que se puede resolver. Esta acumulación debe eliminarse para que las canalizaciones de CI / CD vuelvan a sus capacidades completas.
¿Qué valor hay en un sistema que, en un esfuerzo por acelerar la entrega de software, a sabiendas deja una acumulación de errores que hace exactamente lo contrario? No llegamos a estas prácticas por accidente, y sus practicantes no son vagos ni incompetentes; ¿Cómo llegamos aquí y qué podemos hacer para moderar el Gran Apestamiento del desarrollo de software moderno?
Bombas de tiempo
Source link