Software Modernisation no trata solo del software, y DevOps no trata solo de la platform engineering. Los dos están fuertemente vinculados. ¿Puedes mejorar la modernización de tu software sin DevOps? Podría decirse que sí, pero muy pronto chocarás con una barrera natural. Del mismo modo, sin modernizar el software, te quedará atascado en las primeras etapas de tu viaje DevOps.
DevOps es una forma de organización que crea flujos, amplifica la retroalimentación y fomenta la innovación. El flujo es el primer objetivo para la transformación hacia un enfoque DevOps y también es un objetivo clave dentro de tu estrategia de software modernisation. Pero, antes de profundizar en la relación entre DevOps y la modernización del software, debemos comprender qué entendemos por DevOps y software modernisation.
Este artículo tiene como objetivo explicar software modernisation y DevOps a un alto nivel, la conexión entre los dos y muestra cómo utilizar los principios de DevOps para guiar su enfoque de modernización del software.
¿Qué es DevOps?
DevOps no es un rol, un equipo o un conjunto de herramientas. Nos gusta pensar en ello como un enfoque para el desarrollo de software. El término DevOps se acuñó accidentalmente de la conferencia DevOpsDays que se celebró por primera vez en 2009 en Gante. Patrick Debois, el creador de la conferencia DevOpsDays y uno de los redactores del Manual de DevOps, estaba considerando adoptar Agile y Kanban en Operaciones.
DevOps es una forma de organización que crea flujos, amplifica la retroalimentación y fomenta la innovación.
La conferencia DevOpsDays se describe a sí misma como "una conferencia técnica que cubre temas de desarrollo de software, operaciones de infraestructura de TI y la intersección entre ellos". Con el tiempo, el término DevOps ha evolucionado para asumir un concepto mucho más amplio y, a menudo, se describe como una continuación del viaje ágil en el desarrollo de software. Las prácticas y los principios de DevOps se basan en gran medida en el conjunto de conocimientos representados por la ingeniería ágil, ajustada, continua y de resiliencia.
DevOps consiste en reunir a varios equipos en el esfuerzo de desarrollo de software para ayudarse entre sí y garantizar el éxito de toda la organización. Su enfoque principal es acelerar la entrega del trabajo desde la idea hasta las operaciones y el cliente, permitiendo ciclos de feedback ajustados y creando una cultura de aprendizaje y experimentación continuos. Esta "aceleración de la entrega de trabajo" se describe como "flujo" en Lean.
Las tres vías
La descripción de DevOps por Gene Kim apareció por primera vez en un artículo de 2012, también se publica en The DevOps Handbook. Las Tres Vías incorporan los principios básicos de los que se derivan los patrones / prácticas de DevOps.
La primera vía se refiere a optimizar el proceso de entrega de cambios al software. Este proceso es el flujo de valor técnico. Comienza desde el punto donde se identifica la demanda de un cambio o una nueva característica, a través del desarrollo, en operaciones donde el valor asociado con el cambio se entrega al cliente. Adopta una visión de sistemas complejos y enfatiza la optimización de todo el proceso en lugar de las partes individuales.
La segunda vía consiste en crear ciclos de retroalimentación desde las operaciones hasta el desarrollo. Se trata de amplificar esta retroalimentación para que el software y el proceso para cambiar el software se mejoren continuamente.
La tercera vía consiste en crear una cultura de experimentación y aprendizaje y garantizar que los procesos para cambiar el software minimicen el costo de la falla, de modo que la falla sea aceptada como una característica integral de la experimentación.
¿Qué es la modernización de software?
La modernización de software se trata de facilitar el cambio. El cambio requerido puede estar relacionado con una nueva funcionalidad o una actualización para reducir los costos y mitigar los riesgos. A menudo, las empresas tienen sistemas estratégicos que se vuelven cada vez más difíciles de cambiar. Consideramos software modernisation como un esfuerzo continuo que debería ser parte de tu proceso general de desarrollo de software; sin embargo, a menudo se descuida y, en consecuencia, tu software comienza a mostrar signos de deterioro. Estos signos incluyen fragilidad del software, aumento del tiempo para entregar funciones, mayor tasa de fallas en los cambios, fuertes dependencias entre sistemas y entre equipos. Estos se han tratado bien en el artículo "Señales que tu software se está pudriendo".
Si comienzas a ver estos signos, entonces no estás prestando suficiente atención a mantener a raya la podredumbre. Los dolores de cabeza irán en aumento, y quizá te preguntes, ¿cómo puedo empezar mi viaje hacia software modernisation?, ¿cómo puedo priorizar?, ¿cómo nos organizamos? Aquí es donde los principios y prácticas en torno a la creación de flujo en DevOps están fuertemente alineados con una estrategia de software modernisation porque ambos se relacionan con facilitar el cambio.