jueves, 12 de septiembre de 2019

DevOps: aclarando el concepto



Hace 7 años pocos habían escuchado el termino DevOps. Hace 5 años, más de la mitad del personal de los departamentos técnicos lo habían escuchado y en la actualidad creo que pocos técnicos afirmarán no haberlo escuchado nunca.

Tal es la importancia que se le otorga a DevOps que actualmente ya se analiza su nivel de implantación en las empresas y VersionOne lo incluye dentro de su conocida encuesta anual del estado de implantación de la Agilidad indicando que casi el 50% de las empresas tienen actualmente alguna iniciativa DevOps en marcha y el 25% planificada.





En cualquier caso, creo que sigue existiendo cierta confusión sobre el término (al igual que pasó durante muchos años con la definición de "Agile"). El siguiente post pretende aportar un poco más de luz sobre este concepto.

Pues bien, ¿cuando "nace" el término "DevOps"?

Patrick Debois y Andrew Schafer presentaron en la conferencia Agile de 2008 en Toronto una ponencia sobre la aplicación de los principios de Agile a la infraestructura en lugar de al desarrollo del software.

Posteriormente, en la conferencia Velocity de 2009, John Allspaw y Paul Hammond presentaron "10 despliegues por día: Cooperación entre desarrollo y operaciones en Flickr", donde mostraron cómo  colaboraron (desarrollo y operaciones) y utilizaron prácticas de integración continua para hacer del despliegue una parte del trabajo diario de todos.

Visto el interés en la ponencia de Flickr, Patrick Debois decidió organizar los primeros “DevOpsDays” en 2009, acuñando accidentalmente el término DevOps.

Mucho ha llovido desde entonces, pero el término sigue siendo muy confuso, y dependiendo a quién preguntes recibirás una definición más o menos parecida. 

En el artículo DevOps: A Definition and Perceived Adoption Impediments publicado en 2015 en el "Agile Processes in Software Engineering and Extreme Programming", Jens Smeds, Kristian Nybom y Ivan Porres Åbo argumentan que el concepto DevOps es ambiguo y carece de una definición común indicando la carencia de estudios sobre los desafíos que enfrentan las organizaciones cuando adoptan DevOps.

Los autores se plantean la siguiente pregunta de investigación:
  • ¿Cuáles son las principales características definitorias de DevOps?

Del análisis de la literatura existente en el momento (2015) en libros y artículos científicos así como blogs de calidad (incluyen estos últimos al existir una literatura muy escasa) se desprende las siguiente definición de DevOps:

Conjunto de capacidades de procesos de ingeniería soportadas por ciertos facilitadores culturales y tecnológicos.



Las capacidades de DevOps incluyen las actividades básicas en software e ingeniería de servicios: planificación, desarrollo, pruebas e implementación. Las capacidades listadas en la imagen superior se llevan a cabo continuamente, utilizando feedback de las otras actividades.

Los facilitadores culturales son rasgos que los equipos DevOps deben exhibir. Se presta especial énfasis en: Colaboración, entorno de trabajo favorable, clima de aprendizaje y objetivos comunes entre todos los equipos.

La innovación se promueve al permitir que los equipos e individuos experimenten y aprendan de sus éxitos y fracasos. 

Los facilitadores tecnológicos subrayan la necesidad de automatizar tareas con el siguiente objetivo:

  • Permitir que las personas hagan tareas creativas y productivas.
  • Permitir que los ordenadores hagan lo que hacen mejor (tareas sistemáticas y que requieren mucha mano de obra)

Los autores concluyen que, aunque las capacidades se pueden ver como los aspectos principales de DevOps, únicamente funcionará eficientemente si están respaldadas por los facilitadores. Lo cual implica que desde las organizaciones se tienen que poner en marcha todos estos facilitadores si se pretende realizar una efectiva implantación de la cultura DevOps.

Si te interesa profundizar en la definición de DevOps, te aconsejo la lectura del artículo, puesto que esta entrada no pretende ser más que un pequeño resumen.

Para una siguiente entrada me reservo la siguiente pregunta planteada por los investigadores:
  • ¿Cuáles son los impedimentos percibidos para su adopción?

No hay comentarios:

Publicar un comentario