Desde hace tiempo se escucha, y lee, con frecuencia, en conversaciones, en proyectos, en algún correo que alguien envía con alguna duda, en alguna Web, blog, etc., la pregunta… ¿CMMI o Métodos Ágiles (SCRUM)? o la respuesta en sus múltiples variantes: “la empresa tal utilizó CMMI y le funciona mejor que SCRUM”, o “SCRUM es nuestra metodología, CMMI no se adapta a nuestra organización”, etc. Por desgracia, parece haber calado en el día a día la percepción de que los métodos Ágiles y CMMI son polos opuestos.
Como se cita en CMMI or Agile: Why Not Embrace Both!, pueden ser muchas las razones de porqué se perciben los métodos Ágiles y CMMI como elementos opuestos. Quizás porque las primeras implantaciones de CMMI fueron en organizaciones muy grandes, y las primeras implantaciones ágiles fueron en empresas pequeñas, pequeños equipos, con requisitos volátiles. Quizás por la frecuente, mala aplicación, interpretación y evaluación de CMMI en empresas, donde los implantadores y/o evaluadores olvidan el negocio de la empresa, y la ingeniería del software que más se adapta a la organización, elaborando cantidades inútiles de sobre-documentación para justificar “físicamente” la implantación del modelo. Quizás por la terminología, “institucionalizar”, “repetible”, etc., frente a “integración continua”, “refactoring”, “iterativo e incremental”, etc. O quizás porque CMMI se ve antiguo y los métodos ágiles algo moderno, aunque piezas clave en los métodos ágiles como el ciclo de vida iterativo e incremental (de los 60), o la refactorización (de los 90), son anteriores a la aparición de CMMI.
En cualquier caso, aunque exista la percepción de que los métodos Ágiles y CMMI son polos opuestos hay numerosos los estudios (como, por ejemplo, el del propio Jeff Sutherland, uno de los creadores de Scrum, Scrum and CMMI Level 5: The Magic Potion for Code Warriors) y casos reales, que muestran que no sólo no son opuestos, si no que además pueden ser complementarios y pueden potenciar el uno al otro. Algunas claves:
– CMMI es un modelo no una metodología. CMMI se centra en el qué se espera encontrar en una organización, mientras que metodologías y métodos ágiles se centran en el cómo elaborar productos del ciclo de vida del software. En algunos puntos CMMI muestra productos de trabajo típicos, pero son recomendaciones, ejemplos, no obligaciones.
– CMMI no establece orden en la ejecución de los procesos, ni determina un ciclo de vida, son las metodologías quienes determinan este punto, recomendando, por ejemplo, el ciclo de vida iterativo e incremental.
– CMMI muestra áreas de proceso, no procesos en sí. Muestra tipologías de proceso, que luego en cada organización pueden instanciarse de diferente manera, y pueden existir numerosas correspondencias entre “áreas de proceso” y “procesos” de la organización, etc. Y las evaluaciones de CMMI tienen (o debieran tener) el objetivo de interpretar el modelo en la organización concreta, y no el buscar una relación uno a uno entre áreas de proceso y procesos de la organización.
Eso sí, todo esto sin quitar, como comentábamos antes, la frecuente mala aplicación, interpretación, implantación, justificación basada en sobre-documentación y evaluación de CMMI en empresas; pero esto ya no es cosa de CMMI, es de quien lo mal interpreta.
- Debes crear apps sin saber programar (no hay que saber nada) + Crea Test con IA + Scrum es el nuevo Excel - 12 septiembre, 2024
- Las 6 técnicas prompting + 1ª Ley del Manager Oscuro + Mantenlo sencillo, estúpido - 5 septiembre, 2024
- Guía de Métricas Ágiles (versión agosto 2024) - 22 agosto, 2024
Javier, comparto por completo la visión del post. Este tema (CMMI-Agile) así como CMM y Six Sigma, tienen mucho que ver y se complementan en el mismo sentido pues se enfocan en: ser más efectivos, aprender de los errores y promover la mejora continua de una manera sostenida.
Adicionalmente, yo creo que para alguien que quiere hacer mejor las cosas y no sabe por donde empezar, CMMI provee un «path» que prioriza los puntos donde hay que enfocarse y además lista todos los elementos que tienen que considerarse para conseguir la estabilidad necesaria en los procesos de desarrollo de una organización grande o pequeña. Como dices, dado que CMMI es un modelo, la escala de los procesos también es un parámetro que se debe controlar para obtener valor de su aplicación.
Saludos!
RMG
Hola Rafa,
Ciertamente, esa ruta que te dan modelos como CMMI para empezar es muy útil.
Saludos
Pingback: En Agile Spain 2010 | Javier Garzás
Buenos días.
Me podría recomendar bibliográfica de CMMI, leí el articulo y quede muy interesado en el tema, muchas gracias.
Saludos
Por el blog hay un pdf gratis sobre ello
Javier. ya van varios años en los que he seguido tus comentarios , muy acertados de las metodologias agiles, sin embargo, no he encontrado un documento tangible, donde bajen a nivel de documentos, formatos, modelos, etc. una metodologia agil;
Podrias compartirme en base a tu experiencia, que documentos, estandares, formatos o modelos tu propondrias como los minimos necesarios para incorporarlos a una metodlogia y usarla en el desarrollo de un sistema, saludos