AgileAgilidadDesarrolloDesarrollo de SoftwareDevOpsLean

DevOps ¿Qué es DevOps y para qué sirve?

Hablemos de qué es DevOps, para qué sirve y en dónde puede implementarse. Es habitual que en la construcción de productos, sea de software u otro tipo de producto, se definan y sigan procesos secuenciales (desarrollo) donde al terminar el producto, pase a ser usado por el usuario (operaciones). La transición entre estos dos mundos es muchas veces traumática por decir lo menos.

Hace unos años, nos pasaba con frecuencia que los pasos de los productos a producción encontrábamos una serie de errores o incidentes que al final resultaban siendo porque el paso no se hizo de manera limpia, con errores humanos en ejecución de algún paso.

Para lograr equipos de alto desempeño en desarrollo de software, es fundamental tener unas prácticas que nos garanticen reducir el tiempo de despliegue, con la mejor calidad y mejoramiento continuo.

Se debe estar en la búsqueda de reducir el desperdicio en todo lo que hacemos, donde desperdicio es cualquier actividad que no agregue valor. Tener largos periodos sin que el usuario experimente el producto es un Costo de Retraso que debe ser reducido al máximo.

 

Algunas compañías que han adoptado DevOps son Netflix, Amazon, Bancolombia.

 

«Si solo puede cuantificar una cosa, cuantifique el Costo del Retraso» -Donald Reinertsen

Una breve historia de DevOps:

DevOps es un término acuñado por Patrick Debois que con muchas experiencias desafortunadas entre desarrolladores y operaciones, del 2007 al 2009 fue creando una comunidad desde Bélgica para fortalecer esta transición, cuyo nombre surgió al unir las primeras tres letras de “development” y “operations”.

 

Antes de aplicar DevOps en las compañías, constantemente  se cuenta con procesos estructurados para hacer despliegues luego de varios pasos para la validación de lo que se desplegará. Esto funciona muy bien, pero es lento e intervienen procesos manuales por lo cual hay alto riesgo de errores y que el proceso no sea homogéneo afectando la experiencia del usuario final.

 

Pero ¿qué hace que DevOps nos permita reducir esos tiempos y tener una buena calidad?

DevOps permite aumentar la tasa de cambio para que los usuarios experimenten nuevos productos o servicios sin que se vea afectada la operación mientras se hace. Para ello hay técnicas, como la integración continua y el despliegue continuo, que usa para permitir automatizar todo lo posible. Cualquier parte del proceso que no esté automatizado tiende a ser un riesgo a presentar errores y demoras para un ciclo continuo de despliegues de los servicios.

Al tener los proceso automatizados, se estandarizan tendiendo a que la calidad impere, cada cierto tiempo el proceso se revisa para que esta calidad mejore de manera uniforme.

 

Entonces ¿se necesitan herramientas especializadas para DevOps?

Sí, hay herramientas que permiten automatizar proceso para la entrega de los productos. En software hay muchos tiempos de herramientas para la construcción, integración, revisión de código y despliegue que permiten que en el momento en que el desarrollador crea el código, es como si pasara todo por un tubo para entregarse al cliente directamente, previa revisión automática que se haya cumplido con los niveles de calidad estipulados.

 

Y ¿DevOps solo aplica en el software? ¿En dónde más se puede usar?

Es creado en el mundo de software y las herramientas están construidas para éste, pero sus principios y valores pueden ser usados en cualquier tipo de producto o servicio que se construya. 

 

Este post pretende ubicar al lector en qué es DevOps: ¿Para qué sirve y en dónde se puede usar?, un poco de historia y su utilidad, DevOps se complementa perfectamente con #Agilidad , #Lean, #scrum y #Kanban. Así que si tienes algo que aportar o controvertir nos sería de gran ayuda tanto a mí como a los que se sumen a esta discusión ¿Qué piensas? 

 

Este artículo se hizo con la colaboración de:

Juan Andrés Ochoa

 

Linked In: https://www.linkedin.com/in/fmejiavillegas/

O si quieres escribirme mi correo es: felipe.mejia@castor.com.co

 

Fuentes:

Blog de Jorge Abad. Lecciones Aprendidas en Desarrollo de Software. Post: Una Reflexión sobre el Costo del Retraso, DevOps y la Curva de Maersk.

http://www.lecciones-aprendidas.info/search/label/costo%20del%20retraso

 

The Incredible True Story of How DevOps Got Its Name. https://blog.newrelic.com/engineering/devops-name/

 

Imagen Tomada de: