El desarrollo de software con Scrum, que comenzó con algunos equipos pioneros hace unos pocos años, se ha convertido en una tendencia creciente sinó ya del "mainstream". Es actualmente el modelo de desarrollo más extendido, aunque dista aún bastante de ser mayoritario y que se realice de manera madura allá donde se introduce.
"Cada empresa es un mundo", pero de la misma manera que Scrum se ha hecho enormemente popular, en general aún no ha alcanzado una integración suficientemente buena con las operaciones (explotación, producción...) fuera de las start-ups y los equipos muy pequeños.
Por otra parte, durante la década del 2000 se expandieron movimientos y frameworks como Enterprise Systems Management (ESM) e ITIL v2. Estos movimientos, que han aportado notables mejoras a la estabilidad de producción, han estado centrados principalmente en organizaciones grandes y proveedores IT como IBM, HP o CA.
Una visión alternativa, originada en la "pesadez" y la pobre adaptación a las empresas más pequeñas de estas aproximaciones, tomo forma en el concepto de DevOps, acuñado por Patrick Debois en 2009. Desde entonces se han ido sucediendo eventos (como los DevOpsDays) y webs dedicadas a la materia.
En resumen, actualmente la visión generalizada de los departamentos de IT según los grupos de desarrollo de software y de explotación/sistemas puede ser:
- Desarrollo: quiero construir y publicar lo que me pide el negocio con agilidad.
- Explotación: me miden por el coste y disponibilidad. No quiero riesgos.
El resultado muchas veces consiste en despliegues grandes y espaciados en el tiempo, con una pobre comunicación conjunta, que suele producir errores, retrabajo y más coste que haberlo hecho de manera conjunta desde el principio.
DevOps.org
El enfoque de DevOps comparte la agilidad de Scrum para mejorar la comunicación entre cliente (el negocio) y el proveedor (desarrolladores), fomentando la confianza, la compartición del plan y del avance en el trabajo, y tomando un feedback frecuente. Al igual que el Scrum Master y el Product Owner actúan como los responsables de la coordinación entre negocio y desarrollo, el DevOps engineer se encarga de planificar y seguir la coordinación entre desarrollo y operaciones, aunque sin tener necesariamente mando sobre éstos.
LMC Software
El rol principal en DevOps es Ingeniero de operaciones, similar al Chief Engineer el Toyota Production System. Consiste en coordinar a los equipos de desarrollo y a los administradores, aunque no tiene autoridad final sobre los equipos.
Attunity.com
Aunque DevOps tiene una fuerte relación con las herramientas que automatizan las operaciones (p.e. Jenkins, BuildForge, Puppet Labs, etc.) el aspecto fundamental son los procesos integrados entre desarollo y producción. No se trata de "hacerlo igual de mal, pero más rápido".
En próximos posts seguiré escribiendo sobre DevOps, y ¡estaré encantado de contactar con otras personas que estén interesadas sobre esta materia!
No hay comentarios:
Publicar un comentario