Odiar a algien es darle demasiada importancia
:)

Desde la Integración continua hasta Despligues continuos en Software

La Integración Continua ya es un concepto imposible de desligar del desarrollo software profesional en equipo. Si no sabes qué es la Integración Continua y quieres dedicarte al profesionalmente software, no dejes de ponerte al día en este concepto.

Grandes rasgos, se trata de aplicar procesos de control de calidad de manera continua dentro de tus procesos de desarrollo software, integrando desarrollo y calidad.

No es algo que a los clientes les haga mucha gracia ya que eso de calidad suena caro, y eso de invertir pesetas hoy para ahorrar duros mañana… prefiero ahorrarme esas pesetas hoy y mañana ya veremos. Triste país.

Yo ahora como cliente me encuentro con un enorme hueco en este aspecto (tener test desactualizados es más desesperante que no tener nada).

Desde luego la evolución lógica a la aplicación de Integración Continua sería reducir el tiempo de puesta en producción del software desde el momento en que un desarrollador completa la implementación de una funcionalidad; es lo que se conoce como Despliegue Continuo. Después de ver la presentación de 52 minutos  de Eishay Smith en InfoQ sobre Despliegues Continuos (hasta 50 veces al día) que podéis encontrar aquí (lamentablemente disponible únicamente en inglés sin subtítulos), veo que esto es posible en un entorno profesional

Eishay nos cuenta su experiencia en una empresa que maneja dinero en tiempo real en la que realizan una docena de despliegues en producción al día, en ocasiones puntuales docenas. Cómo?

  • Aplicando Integración Continua.
  • Aplicando TDD.
  • Trabajando todo el equipo únicamente sobre una línea de desarrollo (el TRUNK del proyecto).
  • Limpieza continua de código, dejando cada porción que cada desarrollador toca más limpia de cómo la encontró.
  • Automatización de Test: si una funcionalidad no tiene un test no está completada, y si este test no está automatizado no sirve para esta filosofía ya que el código después de terminado es desplegado directamente en producción, es decir únicamente pasa los test automatizados.

En España lo veo un objetivo legítimo únicamente si el departamento de desarrollo pertenece al cliente (bajo o nulo porcentaje subcontratado y baja rotación) ya que requiere un equipo maduro de profesionales altamente cualificados, una filosofía y objetivos común, metodologías y herramientas extras a manejar y finalmente una alta colaboración del departamento de operaciones del cliente.

En consultoría yo ni me molestaría en entregar más rápido que cada dos semanas, dada la casi imposibilidad de formar y sobre todo mantener un equipo altamente cualificado, motivado,  sin rotaciones (excesivas) y sobre todo motivados en la consecución de un objetivo común externo. Además sin la colaboración del cliente para la definición de pruebas y un cambio en su mentalidad esto sería simplemente ciencia ficción (me extrañaría muchísimo que un cliente aquí te dejase subir nada a producción sin su previa y explícita autorización previas pruebas manuales de aceptación).

Sí recomendaría utilizar esta filosofía de Despliegue Continuo sobre todo por las buenas metodologías que son necesarias para su implementación aunque nuestro objetivo de tiempo de puesta en producción sean dos semanas: aunque no sea un fin viable sí es un buen medio para mejorar.

Así mismo yo no recomendaría un objetivo más ambicioso de un despliegue diario, salvo equipo altísimamente cualificado, profesional, autogestionado y 100% implicado. Ciertas restricciones son saludables, y mi experiencia me demuestra que sería muy recomendable un cuello de botella en la figura de supervisor encargado de desplegar en producción para que haya un mínimo de intervención humana en el control de calidad. Como bien me enseñó Fernando Chávarri Dicenta, si quieres que algo se haga encárgaselo a una persona.

Imagen

  • Tomada de la interesante entrada Continuous Deployment at outbrain en PrettyPrintMe, larga entrada que puede ser una buena alternativa si no escuchas la presentación de Eishay Smith.

Más info

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario:

Comenta