Un asunto siempre presente en nuestra agenda es el de resolver los desfasajes entre el desarrollo y la puesta en marcha de los cambios en las aplicaciones. Si bien los costos de desarrollo están bajando, es notable el tiempo que pasa desde de que se desarrolla hasta que se implementa una mejora. Ese costo en tiempo muchas veces no se computa.
Esta semana Gary Stevens publicó un artículo en el sitio Devops.com donde explora las tensiones y la articulación necesaria entre el desarrollo, la seguridad y las operaciones para lograr la implementación eficaz de las aplicaciones.
La rápida expansión de la fuerza de trabajo remota y sus necesidades de aplicaciones asociadas ha creado un desafío importante tanto para los desarrolladores de aplicaciones como para los encargados de la implementación y el mantenimiento de las aplicaciones. Encontrar el equilibrio adecuado entre la velocidad de lanzamiento y la estabilidad y confiabilidad de las aplicaciones, nunca una tarea fácil, es fundamental para el éxito de cualquier organización.
Los conceptos Agile y DevOps contribuyen a ayudar a las organizaciones a lograr este equilibrio, proporcionando la mejor experiencia posible al cliente en un plazo de tiempo más corto.
El manifiesto Agile redactado en 2001, estableció los valores básicos que se deben aplicar en el desarrollo de software.
Estos principios ágiles se pueden condensar en:
-
Priorizar al cliente sobre el producto:
El desarrollo ágil requiere la participación continua del cliente a lo largo de todo el proceso de desarrollo, con el objetivo final de la entrega frecuente de productos basada en comentarios específicos de los clientes. Agile sostiene que la mejor manera de elevar la experiencia del cliente es hacer que el cliente sea parte del proceso de desarrollo.
-
Basarse en equipos de trabajo pequeños y autónomos:
que permanecen en constante comunicación con los clientes, así como entre ellos. Estos equipos deben incluir tanto a desarrolladores como a personas con conocimiento del negocio.
-
Mantenlo simple:
Los equipos ágiles requieren simplicidad. Agile busca minimizar la cantidad total de trabajo requerido, minimizando así el tiempo total de desarrollo.
Si bien estos valores y principios parecen simples, su aplicación es otra historia completamente diferente.
El significado preciso del término en sí y el alcance de DevOps siguen siendo una fuente de debate. En un nivel alto, DevOps es la integración del ciclo de desarrollo con las actividades necesarias para su utilización eficaz como son la implementación y el mantenimiento.
En lugar de aislar el desarrollo de software y las operaciones, DevOps rompe los límites tradicionales que existían anteriormente entre ellos para lograr una integración y una entrega continua de nuevas funciones y aplicaciones para los usuarios finales.
Si bien Agile y DevOps comparten objetivos comunes, no siempre se han puesto de acuerdo sobre cómo lograr esos objetivos. Un área de especial tensión entre Agile y DevOps es que este último depende en gran medida de las herramientas; en particular, cuando se trata de la automatización de procesos de prueba e implementación.
Al introducir el concepto DevSecOps,Stevens menciona que:
En cuanto a seguridad, a medida que las redes se expanden y las empresas continúan integrando servicios basados en la nube (en muchos casos, creando entornos de múltiples nubes), los problemas de seguridad se vuelven cada vez más complejos.
DevSecOps gira en torno a algunos principios básicos, como:
- Garantizar la seguridad de los datos mientras se minimizan las molestias para los usuarios al acceder a los mismo, y
- Utilizar herramientas de desarrollo que identifiquen los riesgos lo antes posible en el proceso de desarrollo.
La seguridad debe convertirse en una parte integral de cualquier proyecto de desarrollo para garantizar no solo una implementación rápida sino también una implementación segura.