Seleccionar página

Razones para practicar la Integración Continua

18 Feb, 2015 | DevOps | 0 Comentarios

Insights -> Tendencias y Actualidad

Por qué aplicar integración continua, el objetivo de los equipos de desarrollo actuales es planificar, codificar, probar y entregar una pieza de software utilizable cada dos o tres semanas. Para conseguirlo, automatizamos buena parte del proceso software mediante la Integración Continua (IC), de manera que el equipo pueda repetir la entrega de código de forma iterativa, pero descargando el trabajo pesado en un servidor de Integración Continua (“CI server”). Así es como conseguimos entregar los grandes proyectos de desarrollo software.

Por qué aplicar integración continua

Desarrollo en ciclos

El servidor de Integración Continua automatiza diversos pasos en el ciclo de vida del software. No puede ayudarnos con los requistos de negocio o diseño, pero sí puede encargarse del empaquetado, despliegue, inspección y pruebas software automáticas. Y lo hace de forma incansable, sistemática, robusta y barata.

Al automatizar parte del proceso de producción de software, la Integración Continua contribuye definitivamente a acelerar el tiempo para llegar al mercado (“time-to-market”) en las organizaciones basadas en Tecnologías de la Información (TI).

¿Cuáles son las organizaciones basadas en Tecnologías de la Información? Son aquellos negocios en los que las Tecnologías de la Información son críticas para la operación. Bancos, empresas de paquetería o canales de venta basados en Internet, por ejemplo, están basados en TI. Mejorar sus cañerias TI significa mejorar sus comunicaciones internas, su estrategia de marketing y sus costes de producción. Es decir, son compañías que consiguen ventajas competitivas con el uso de la tecnología, sin que sea excluyente el que vendan o no tecnología.

Gracias al impulso de iniciativas como Agile o eXtreme Programming, entre otras, los servidores de Integración Continua disponibles son numerosos: Bamboo, CruiseControl, Jenkins, Team Foundation Server o Solano por ejemplo.

Sin embargo, aplicar Integración Continua (IC) es un proceso doloroso y exigente que requiere un CAMBIO EN LA CULTURA de construcción de software. Con constancia finalmente conseguiremos reducir los tiempos de empaquetado, aumentar el número de versiones en paralelo y la robustez de las entregas.

Bien, va a doler. Pero , ¿en qué podemos ayudarte?

  • En primera instancia toca verificar la Cultura del equipo de desarrollo. Habitualmente es necesario generar un proceso de adaptación, de enriquecimiento, en que se minimice la resistencia al cambio gracias a un enfoque de mejora paulatina, basada en principios Lean.
    • Aplicando definición temprana.
    • Asegurando los canales de comunicación.
  • También trabajaremos en definir los Procesos que permitirán maximizar el rendimiento obtenido:
    • Estableciendo las líneas de automatización.
    • Determinando las “causas” a controlar.
    • Definiendo políticas de ejecución.
    • Implementando los Radiadores de información (indicadores de medición).
  • Por último, utilizar la suite de Herramientas más adecuada entre las distintas alternativas tecnológicas será nuestra contribución final.
Integración Continua en el Antiguo Egipto

Integración Continua en el Antiguo Egipto

La Integración Continua es un medio, no un fin.
El objetivo sigue siendo maximizar el valor entregado.

Un espacio de reflexión interesante nos lo proporciona la frecuencia. Aunque hablamos de Integración C-o-n-t-i-n-u-a, no se trata de una práctica que fuerce a un proceso de integración diario. La frecuencia es una cuestión que está abierta y que deberá quedar definida conforme a los objetivos que se quieran alcanzar. Por ello, en la Integración Continua, el ritmo lo marcan las relaciones “Causa -> Efecto” a controlar.

No podemos terminar sin recopilar las razones, en forma de beneficios, que motivan la aplicación de esta exigente práctica de la Ingeniería Software:

  1. Reducción de riesgos tecnológicos gracias a un proceso de construcción predecible, retroalimentado y transparente. Así, por ejemplo, podremos predecir el tiempo de integración dado que es algo que se realiza de forma continua.
  2. Minimizar las anomalías en el producto final gracias al “feedback” temprano. Al realizar pruebas automáticas frecuentes habilitamos una pronta detección y corrección de anomalías.
  3. Calidad desde el inicio y adaptación al cambio. Como es posible disponer de un entorno de demostración con cualquier versión de la aplicación, es viable mostrar los últimos cambios de forma frecuente. Así, buscamos la aceptación por parte de los usuarios de las nuevas características añadidas al proyecto y devolvemos información al equipo de trabajo rápidamente.
  4. Responsabilidad y visibilidad. El ciclo de vida del producto software se vuelve explícito, común, independiente y público. Así, todo el equipo dispone de información precisa sobre el estado real del proyecto, lo que aligera las tareas de seguimiento, fomenta el sentimiento de propiedad colectiva del código y garantiza la transparencia del proceso.

Sin duda, un viaje intenso hacia un mundo maravilloso en el que deleitarnos observando manadas de hermosos unicornios …

¡Vaya! ¡Un Unicornio Bug!

¡Vaya! ¡Un Unicornio Bug!

… ¿Será posible?

 

Panel Testing - Centro de Excelencia

Panel Testing - Centro de Excelencia

Nuestro Centro de Excelencia en SQA & Testing (CEST) es responsable de asegurar la Calidad del Software en los proyectos que desarrollamos, así como de evolucionar nuestro Know How en esta actividad. Si quieres conocernos mejor, visítanos en esta página, o contacta con nosotros vía e-mail en esta dirección.

Comentarios

0 comentarios

Trackbacks/Pingbacks

  1. #SoftwareQA - ¿Cuánto nos pica un bug? - […] aplicando prácticas como la Integración Continua de software dispondremos de mecanismos para establecer relaciones de causa – efecto sobre…
  2. #JelaConMAD15 DevOps en las nubes y con Contenedores - […] / PaaS) han despegado con fuerza. Estos servicios culminan la evolución natural desde la sufrida Integración Continua hacia el…
  3. Calidad Software: ¿Cuánto nos pica un bug? - Panel Sistemas - […] aplicando prácticas como la Integración Continua de software dispondremos de mecanismos para establecer relaciones de causa – efecto sobre…
  4. La automatización de pruebas funcionales software es negocio seguro - […] Y aquí se nos presenta una nueva enseñanza que nos recuerda que es determinante utilizar entornos de prueba adecuados…

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This