CLAMS: O cómo DevOps logra integrar los objetivos de Desarrollo y Operaciones

CLAMS o acrónimo de Culture, Lean, Automation, Metrics y Sharing persigue forjar la mentalidad necesaria entre los equipos de Desarrollo y Operaciones para aportar el valor que Negocio espera por parte del Área de Tecnología.

Para ello, se optimizará y automatizará al máximo las tareas que se realizan a lo largo del ciclo de vida de forma que se pueda implantar en Producción lo antes posible las funcionalidades que Negocio ha solicitado.

Picture1

Cultura (Culture):

La cultura en una organización es el conjuntos de saberes, creencias y pautas de conducta, incluyendo los medios materiales que usan sus miembros para comunicarse entre sí y resolver sus necesidades.

DevOps se basa en utilizar herramientas novedosas y ágiles, la medición continua y facilitar el acceso a todo el mundo a la inforamción. Estos tres dominios acarrean cambios culturales en la empresa que producirán principalmente:

  • Mayor sentido de pertenencia al equipo.
  • Compromiso y responsabilidad.
  • Modelo de equipos de alto rendimiento.
  • Conciencia del valor de la diversidad de talentos.
  • Desarrollo de una visión integral y estratégica.
  • Visibilidad de la estrategia.
  • Disminución del nivel de «stress».

Lean:

El desarrollo de software Lean tiene 7 principios, y el primero es «eliminar los desperdicios», es decir, todo aquello redundante y que supone una pérdida de tiempo ya que no aporta valor.  En la mayoría de las organizaciones suele ser muy difícil identificar qué es desperdicio y qué no lo es, ya que algunos procesos a priori pueden parecer desperdicio, pero en realidad aportan valor en algún otro lado de la organización o previenen que aparezcan otras formas de desperdicio más tarde, sin embargo otras actividades pueden parecer valiosas, pero en realidad no brindan ningún valor real.

En el desarrollo de software Lean, Tom y Mary Poppendieck identificaron como desperdicios para el desarrollo de software:

  • Código o funcionalidad innecesaria en las aplicaciones.
  • Sobrepasar la capacidad del equipo, o empezar más de lo que puede terminarse.
  • Retrasos en el proceso de desarrollo de software.
  • Requisitos poco claros o con cambios constantes.
  • Burocracia.
  • Comunicación lenta o inefectiva
  • Trabajo parcialmente terminado
  • Defectos o problemas de calidad
  • Cambio de tareas

Automatización (Automation):

La automatización (del griego antiguo auto, ‘guiado por uno mismo’) es el uso de sistemas o elementos computarizados y electromecánicos para controlar procesos industriales y como una disciplina de la ingeniería, abarca la instrumentación industrial y los sistemas de control y supervisión.

En este sentido, DevOps propone la aplicación de herramientas que automaticen gran parte de los procesos existentes a lo largo del ciclo de vida como:

  • Automatización de las revisiones de código.
  • Automatización de la construcción y del despliegue.
  • Automatización de los controles de calidad.
  • Automatización del provisionamiento de infraestructuras.

Pero, ¿por qué seguir haciendo tareas manualmente si la tecnología actual nos permite automatizar estas tareas?, esta pregunta puede no tener una respuesta obvia y tal vez sea puerta de entrada para comprender la resistencia que podría generar la implementación de DevOps.

Mediciones (Metrics):

En la ingeniería de software una métrica es cualquier medida o conjunto de medidas destinadas a conocer o estimar el tamaño u otra característica de un software o un sistema de información, generalmente se utilizan para realizar comparativas o para la planificación de proyectos de desarrollo. Dicho de otra manera, lo que se mide se puede gestionar de formar eficaz y DevOps que en parte propone una forma de gestión de proyectos no escapa a este supuesto.

Es importante destacar que el uso de múltiples métricas darán visibilidad sobre el estado real de un proyecto de forma que que los responsables de los equipos y sus miembros coordinen acciones coherentes con los objetivos corporativos, alineando la visión y la estrategia de la organización.

Compartir (Sharing):

Hace referencia a construir un modelo donde la creación de valor surge de la colaboración masiva, del aprovechamiento de los conocimientos multi-disciplinares del equipo.

Un aspecto fundamental es que las métricas se consideren métricas compartidas, por lo que todos los integrantes del equipo tengan acceso a ellas, de forma que se utilicen como parte del proceso iterativo de aprendizaje y mejora continua para identificar y eliminar pasos redundantes.

Compartir también implica invertir en políticas de desarrollo de talento e innovación que faciliten o permitan cambiar la cultura de la organización.

Objetivos de CAMS:

Los principales objetivos de CAMS son:

  • Aplicar metodologías Lean y ágiles que eliminen la burocracia y pasos innecesarios en el proceso de desarrollo.
    • Eliminar la redundancia o todo aquello que no aporta valor.
    • Maximizar el aprendizaje, fundamentalmente de los errores cometidos, el primer paso suele ser asumir que sucederán fallos en algún momento.
    • Tomar decisiones tan tarde como sea posible, aprender tanto como sea posible antes de tomar una decisión.
    • Entregar nuevas funcionalidades tan rápido como sea posible, reduciendo los ciclos de desarrollo reduciendo las tareas en proceso.
    • Atribuir autoridad al equipo y darle autonomía para tomar decisiones, y no atribuir culpables aunque a veces estas no sean las adecuadas, respetando y haciendo valer lo que cada miembro del equipo aporta, y confianza, ya que todo el mundo debe confiar en que el resto del equipo está haciendo lo mejor para Negocio.
    • Integridad desde el inicio, es decir, control de calidad e inspección de código desde el primer momento.
    • Ver el conjunto no la particularidad, no dejarse perder en los detalles y teniendo en cuenta el objetivo de la organización.
  • Automatización máxima:
    • Este debe de ser el «mantra» de Sistemas y Provisionamiento de Entornos.
    • Configuración y parametrización de las aplicaciones.
    • Generación de logs, métricas y análisis proactivo de estas.

Deja un comentario