Los modelos ágiles y no tan ágiles. Ágil vs. CMM

Hace algunos meses asistí a un curso de metodologías ágiles que se impartió en la CANIETI en Monterrey. De ninguna manera me considero un experto en metodologías ágiles, y el curso en realidad era bastante básico. Una de las partes que llamó mi atención fue la mención de una aparente guerra entre los seguidores de metodologías ágiles y los seguidores de modelos como CMM o ISO 9000. De hecho, el comentario surgió para explicar el nacimiento de Ágil como respuesta por parte de aquellos que consideraban los modelos de calidad como demasiados burocráticos. En base a esto, decidí investigar un poco más y me topé, al hablar con gente dentro de la organización y algunos clientes que enfatizan este tipo de metodologías, que efectivamente se nota cierto recelo al mencionar CMM y la documentación que se requiere en un proyecto. Todo esto me sorprende porque en realidad yo no veo a estas estrategias peleadas entre sí, sino que de alguna manera podrían ser complementarias

En Esta Esquina...
Antes de iniciar esta plática quiero dejar algo totalmente claro: en mi trabajo de día con día me he topado con un sinnúmero de compañías que básicamente exponen que le dan total autoridad y libertad al individuo, confían en la gente y todos los días se les asignan nuevas tareas, las cuales esperan se resuelvan en forma continua; no tienen nada documentado y por ende son fieles seguidores de metodologías ágiles. Nuevamente, bajo la premisa de que no me puedo considerar un experto en el tema, esto me parece más como caos total que como una nueva forma de hacer las cosas.

Es muy fácil escudarse en manejar metodologías ágiles cuando no se está haciendo nada, ya que en sí los seguidores de metodologías ágiles defienden el que cada quien haga lo que sea más eficiente para su proyecto. Esto me llevó a la pregunta, ¿qué son las metodologías ágiles y cómo se diferencian de la anarquía? Así que decidí investigar un poco más sobre las premisas específicas de lo que hace ágil a una metodología. A través de una rápida búsqueda en Google, fui a dar a la página del denominado “Manifiesto Ágil”, el cual establece las bases de las metodologías ágiles. La tabla 1 lista los principios en que se basan unos y otros.

A grandes rasgos, podemos notar las siguientes diferencias:
Desarrollo incremental y entregas continuas. Los agilistas defienden un desarrollo incremental y la constante entrega de valor. Esto me parece una excelente idea y no veo que esté en contra de CMM o ISO 9000. CMM habla sobre controlar los requerimientos, más no menciona nada sobre el tiempo en que se debe de recibir, por lo tanto podemos decir que modelos como CMM no entran en esto en forma tan específica. Sin embargo, si esto es viable en el proyecto que estamos desarrollando, me parece definitivamente una excelente forma de actuar, yo diría que tomemos esto como práctica.

Documentación. CMM enfatiza la documentación, aunque más bien se refiere a la documentación del proceso, y no tanto del proyecto. Creo que tanto en metodologías ágiles como no ágiles debe de ser claro cómo se llevarán a cabo los proyectos y las prácticas que se aplican, desde el “Planning Game” hasta la programación en pares. Esto permite lograr consistencia en diferentes proyectos. Así que documentar el proceso me parece una excelente idea.

Tipo de comunicación. Posiblemente, el punto más controversial es que las metodología ágiles enfatizan la comunicación cara a cara, y la comunicación entre desarrolladores y usuarios, mientras que CMM enfatiza la documentación de acuerdos. Desde mi punto de vista, podemos unir las dos ideas; creo que la mejor forma de comunicar y ponernos de acuerdo es cara a cara, y muchas veces, la mejor documentación para las decisiones que se llevan acabo en forma inmediata es la ejecución, pero en un mundo de negocios y seres humanos siempre hay riesgos, y las personas olvidan acuerdos, y a veces surgen rencores en base a estos olvidos por lo que tenemos que definir qué deberíamos de documentar y registrar solamente eso.

Métricas. Otro punto fundamental en las diferencias es que CMM nos pide medir nuestros procesos, mientras que Ágil nos pide que continuamente mejoremos lo que hacemos, pero no nos pide medir nada para decidir qué mejorar. Aquí, si no tenemos salida, tenemos que tomar una decisión. Por un lado, las métricas a nivel organizacional nos ayudan para entender mejor nuestro trabajo y aprender rápidamente de nuestros errores, pero al hacer esto podría verse como falta de confianza en nuestra gente y en su capacidad para tomar decisiones racionales sobre lo que pueden mejorar. No hay una solución única, la organización debe tomar una postura. Lo único es que cualquier decisión que tomemos debe de ser apoyada por otros procesos, esto quiere decir que si vamos a medir, debe de haber toda una infraestructura de seguimiento, análisis y mejora a través de las métricas. Si no vamos a medir, debe de haber una serie de estructuras que ayuden a entrenar y transmitir el conocimiento en forma continua para así todos tener el mismo entendimiento de lo que es mejorar.

Y el Ganador es: ¡El Cliente!
¿A donde vamos con todo esto? A final de cuentas, las ideas del manifiesto ágil son bastante interesantes; pero como todo cambio, implantarlas no es simple. De hecho, implantar el modelo ágil correctamente puede ser tan complicado como implantar ITIL, CMM o cualquier otro modelo de calidad. La organización debe tomar una decisión de hacia donde quiere moverse, para hacerlo en forma enfocada y directa y lograr el mayor beneficio hacia sus clientes.

La realidad es que no deberíamos estar viendo los diferentes modelos de desarrollo de software como una gran pelea que busca a el gran ganador, sino como un grupo de herramientas con conceptos e ideas importantes que debemos de unir y extraer aquello que haga que crezcamos como organización y que a final de cuentas nos ayude a llevar el mejor producto al mercado. Al final, el ganador debe ser el cliente.

Si quieres platicar más sobre el tema nos vemos en www.agentesdecambio.org o escríbeme a lcuellar@agentesdecambio.org

Acerca del autor
Luis R. Cuellar es Director de Calidad a nivel mundial de Softtek Information Services. Luis es reconocido por la American Society for Quality (ASQ) como Certified Quality Manager, Certified Software Engineer, y Six Sigma Black Belt. En los últimos cinco años ha estado a cargo de la definición e implantación de la estrategia para CMM5 y Six Sigma a través de las diferentes áreas del centro de desarrollo de Softtek.