Entrega Continua: ¿Cómo llegamos aquí?

Publicado en

En prácticamente cualquier industria, el éxito de una organización depende cada vez más de la capacidad de su software. La web, el cómputo móvil y las aplicaciones embebidas definen la forma en que los clientes perciben a una marca, la forma en que sus empleados colaboran, y la competitividad de la empresa. Los usuarios cada vez toleran menos la inconveniencia y buscan gratificación inmediata. El no lograr cumplir dichas expectativas puede ser fatal para la empresa. Para mantenerse competitivas, empresas como Amazon, Facebook y Etsy han adoptado una disciplina conocida como entrega continua.

La entrega continua es una disciplina que lleva la práctica del desarrollo ágil a su conclusión lógica, creando software que siempre está listo para ser liberado. Para lograrlo incorpora prácticas y herramientas de Agile, integración continua y DevOps para transformar la manera en que se entrega software. Al automatizar tareas rutinarias y tardadas como la compilación pruebas e instalación -y ejecutarlas de forma temprana y frecuente- la entrega continua hace que el proceso de software sea más predecible y repetible, mejorando significativamente la calidad y frecuencia de las entregas.

Pero … ¿cómo llegamos aquí? Aunque pudiera parecer que la entrega continua es una simple moda o algo que solamente aplica para startups, en realidad no es así. La entrega continua es, como ya lo indicamos, una continuación del desarrollo ágil hasta su conclusión. Explico esto a continuación …

Primero, fuimos ágiles

El manifiesto ágil define 12 principios, y el primero de estos dice “... satisfacer al cliente por medio de la entrega temprana y continua de software valioso”.

Es decir, las metodologías ágiles nos enseñaron a agregar valor a los productos de software una historia a la vez, de manera que aceleremos los ciclos de retroalimentación y continuamente estemos alineando los productos que construimos con las necesidades del mercado. Estas metodologías promueven la integración continua, y esto provocó un flujo de liberaciones más pequeñas y frecuentes, que llegaron hacia los equipos de calidad y operación de TI.

Luego adoptamos DevOps

DevOps está surgiendo como un modelo de operación que une a todos los involucrados en la cadena de producción de software para colaborativamente perseguir metas de negocio conjuntas, tales como entregar un nuevo producto de alta calidad que opere de manera estable.

Al estandarizar los procesos, configuración de versiones y aumentar la colaboración, DevOps habilita a los equipos para trabajar juntos de manera más eficaz y eficiente, mejorando la velocidad y predictibilidad.

Es difícil definir qué es DevOps. Pero es sencillo ver lo que DevOps hace. Habilita la confianza y coordinación transparente entre equipos alineados con un solo propósito: poner en producción software grandioso. En esencia, DevOps no se trata de desarrollo ni de operaciones, se trata del negocio.

Ahora entregamos, de manera continua

La entrega continua lleva Agile a su conclusión lógica con una forma de trabajo que asegura que el software siempre está listo para liberarse. Para lograrlo, se apoya en prácticas de Agile, integración continua y DevOps.

La entrega continua es un proceso de punta a punta que abarca el ciclo entero de construcción, prueba, despliegue y liberación. Para que la integración continua sea una realidad, debemos automatizar estas actividades. Esto habilita a las organizaciones para innovar, reducir costos y diferenciarse en mercados competitivos, por medio de un proceso eficiente de entrega de software.

¿Cómo determinar si haces entrega continua?

Sabes que estás haciendo integración continua cuando:

  • Tu software se puede liberar a lo largo de su ciclo de vida.

  • Tu equipo le da mayor prioridad a mantener el software listo para liberar que a incorporar nuevas capacidades.

  • El equipo puede obtener retroalimentación rápida y automatizada sobre el estatus del producto.

  • Es posible mover cualquier versión del software a cualquier ambiente (staging, producción) con un solo comando.

La prueba clave de si has logrado o no la entrega continua es que el usuario de negocio pueda solicitar en cualquier momento que la versión actual de desarrollo pueda ser liberada a producción, y el equipo no sienta temor por esto.

Este texto es una versión traducida y editada del artículo “Continuous Delivery: What is it? How did we get here?” publicado en el sitio web de Electric Cloud. http://electric-cloud.com/resources/continuous-delivery-101/what-is-continuous-delivery