Otra gran pregunta recurrente, ¿Devops y Scrum? ¿Por qué tenemos que hacer DevOps si hacemos Scrum?.
Son 2 cosas complementarias, porqué están muy alineadas en las maneras de pensar.
DevOps se trata de lograr la mentalidad correcta, igual que la mentalidad que necesita Scrum.
Esa mentalidad permite la mejora constante del flujo de valor de una empresa (todos los pasos tomados desde el comienzo de una creación de valor hasta la entrega del resultado final).
Es una perspectiva de alto nivel que conduce a una colaboración más eficiente entre el desarrollo (programación), las operaciones (administración del sistema) y el control de calidad (QA).
La clave es adoptar flujos de trabajo flexibles entre los esos tres departamentos.
Pero, ¿cómo logras esto? Esencialmente, necesita obtener los siguientes principios correctamente.
Shift left
Si lanzamos una línea de tiempo para su ingeniería de software, siempre es una linea que comienza con una idea y un plan para lograrlo.
¿Suena familiar no? ¿Cómo empieza un Product Backlog?
Hablando tradicionalmente, muchas tareas en la construcción del software se realizan en etapas posteriores (como las pruebas).
Ahora bien, uno de los principios de DevOps es invertir esta tendencia y en lugar de esperar hasta el final del proceso, estas tareas se realizan lo antes posible.
Dejadme añadir que también se hacen esas entregas de manera iterativa e incremental, cómo Scrum está basado.
Es parte de la filosofía DevOps: cuanto antes se aborde un problema, mejor.
Por ejemplo, esperar hasta el último minuto para probar el software significa que será aún más difícil solucionar cualquier problema que surja.
Si se identifica un error tan pronto como ocurre, es mucho más fácil de rectificar.
Este principio de Shift Left tiene como objetivo establecer un entorno que se centre en la prevención en lugar de la detección.
Identificar los problemas lo antes posible en el proceso significa que se pueden tratar tan pronto como aparezcan.
Al desplazarse hacia la izquierda, reduce significativamente la probabilidad de que los errores lleguen al cliente.
Para el cliente, cualquier problema que se solucionara antes de que el producto se pusiera en marcha nunca sucedió.
De esta manera, cualquier desastre potencial puede prevenirse antes de que tenga la oportunidad de manifestarse.
La principal idea es reducir el riesgo de la manera más clara y rápida, cómo hace Scrum con los sprints.
Fallar rápido
Una mentalidad de DevOps significa que no tiene miedo de fallar.
Como tendrían que ser todas las mentalidades basadas en el mindset de la agilidad que abraza Scrum.
La experimentación continua, la toma de riesgos y el aprendizaje de la experiencia es la forma en que se producen los avances.
El dominio solo se puede alcanzar a través de la práctica constante y la repetición.
Una mentalidad de DevOps se trata de fallar rápido para aprender rápido.
El fracaso temprano empuja a las personas a mejorar en tiempo real.
Este modelo rápido que falla fomenta la resiliencia: no hay otra salida que pasar.
Aunque este principio de DevOps abarca los contratiempos, esto no significa que los miembros del equipo lo hagan solos.
Se debe establecer un “ambiente de aprendizaje” de apoyo para que un equipo pueda sentirse seguro de fallar.
Es clave cambiar tu mentalidad para ver los percances como oportunidades para aprender.
Esta forma de pensar trae efectos positivos para toda la organización y optimiza el desempeño en general.
La mejora continua
En pocas palabras, la evolución es una mejora continua en el tiempo.
El principal objetivo de cualquier organización que haga software es optimizar el flujo de valor para llevar la productividad al siguiente nivel.
Sin embargo, no se trata de llegar a un destino y sentarse a relajarse: DevOps es un viaje constante.
¿Un viaje constante?, las veces que he dicho que ‘Scrum es un viaje’ o que la “Agilidad es un viaje”, sigue sonando familiar ¿Verdad?
La búsqueda de áreas de mejora y técnicas innovadoras nunca cesa.
Por eso es tan importante definirlo como una mentalidad, que debe impregnar toda la perspectiva de una organización.
Todas las partes interesadas reciben constantemente información y comentarios para mejorar sus habilidades a la hora de entregar productos.
Esto, simultáneamente, hace avanzar los objetivos comerciales estratégicos.
Para aplicar este principio, el uso de métricas juega un papel importante.
Estos se alinean con los objetivos de su negocio en particular; por ejemplo, cosas como calidad, velocidad y/o eficiencia.
Las métricas conducen a la evaluación continua del sistema de entrega de una empresa y las tecnologías de soporte, todo dentro del contexto de lo que es importante para la organización.
El camino de DevOps, Scrum y la agilidad de negocio
En general, el objetivo es combinar el trabajo de desarrollo, operaciones y control de calidad, implementando las mejores prácticas y tecnologías para entregar productos de manera más rápida y eficiente, asegurando siempre la calidad.
Agile, DevOps y Scrum es el pegamento que mantiene unida toda la operación, todas sus diferentes partes funcionan de forma independiente pero siempre trabajando en conjunto.
Esta dinámica de trabajo fluida dentro de una organización es el nuevo estándar.
Ser capaz de entregar lanzamientos rápidos que respondan a demandas o problemas es ahora un requisito básico en la ingeniería de software.
Al implementar flujos de trabajo flexibles, la organización puede realizar entregas sin problemas y sin interrupciones en el equipo.