¿Cuál es la diferencia entre el desarrollo de software ágil y CMMI?

Para agregar a las respuestas de otros, hay muchas organizaciones que usan la metodología Agile dentro del marco CMMI.

Digamos que usa Agile para completar una historia. Una vez que haya entregado la historia al cliente, presumiblemente haría una autopsia y determinaría qué salió bien y qué salió mal. Antes de comenzar la próxima historia, intentaría hacer algunos cambios para no repetir sus errores, ¿verdad?

CMMI formaliza esa parte del proceso; le pide que tenga algo en su lugar para identificar errores y asegurarse de que no vuelvan a suceder.

Aquí es donde la mayoría de las personas se equivocan: CMMI sugiere que no solo aprenda de sus errores, sino que también aprenda de los errores de otras personas, es decir, que adopte las mejores prácticas de la industria. Desafortunadamente, la gerencia tiende a interpretar eso como la necesidad de adoptar todas las mejores prácticas recomendadas, lo que a su vez conduce a una sobrecarga burocrática.

CMMI permite que un gerente decida que una mejor práctica en particular no es relevante. Por ejemplo, si no subcontrata ninguno de sus trabajos, puede elegir ignorar las recomendaciones relacionadas con la gestión del subcontratista. Sin embargo, debe documentarlo por escrito y muchos gerentes deciden que prefieren implementar esas mejores prácticas (innecesarias) de todos modos, en lugar de escribir “esto no es un problema y si me equivoco, me responsabilizaré para ello.”

Si está utilizando Agile correctamente, ya está haciendo todo lo que CMMI le pide que haga que sea relevante para su negocio.

Corrección a la respuesta anterior, que obviamente está escrita por alguien que ha tenido una mala experiencia con CMMI o que basa su respuesta en rumores.

El CMMI se centra en la mejora continua, aprender de los errores del pasado y, para hacerlo, fomenta la comunicación.

Agile está enfocado en el equipo y funciona bien (si se implementa adecuadamente) en proyectos pequeños, con un equipo estable; Las lecciones no se comparten entre los equipos, porque cada equipo define su propia comprensión de lo que constituye un punto de la historia o una velocidad aceptable. CMMI busca compartir las mejores prácticas en toda la organización, logrando que los proyectos y los equipos compartan conocimientos y aprendan unos de otros, a fin de lograr un desempeño administrado a nivel de la organización.
Además, CMMI es una herramienta de ingeniería y mejora de la prestación de servicios, mientras que Agile sigue centrado únicamente en el equipo de desarrollo de software.

Muchas organizaciones han encontrado mejores resultados que cualquiera de estos enfoques a través de un enfoque dual; después de todo, ¿por qué restringiría su empresa a una sola herramienta o metodología y rechazaría a todos los demás?

Es muy difícil implementar un enfoque ágil exitoso para el desarrollo de software en una organización que no ha puesto en práctica los procesos básicos de CMMI (como planificación, gestión de configuración, monitoreo de proyectos, etc.), estos no son difíciles o burocráticos, no requieren mucha documentación y, cuando se implementan correctamente, deben demostrar un valor mayor que el costo.

Respuesta rápida y simple

CMMI: metodología de mejora de procesos. Requiere muchas pruebas y documentación, a menudo cuesta más que el proyecto en sí.
Ágil: metodología de gestión de proyectos centrada más en entregar lo que los clientes necesitan.

More Interesting

¿Cómo retienen los desarrolladores tanto conocimiento?

Cómo posicionarse como desarrollador de software para entrar en la gestión

Cómo encontrar y elegir una empresa de desarrollo de software personalizado

¿Cómo hacen frente los introvertidos a las oficinas de planta abierta?

Para el desarrollo de software, ¿cómo era compilar vs comprar en la década de 1990?

¿Cuáles son algunos de los mejores artículos sobre desarrollo de software con C #?

Cómo prepararme para posibles entrevistas de pasantía para desarrolladores de software

¿Por qué los servicios de desarrollo de software offshore han ganado popularidad en estos días?

¿Por qué la mayoría de los desarrolladores de software odian ser llamados monos de código?

¿Es bueno ser un desarrollador de juegos o desarrollador de software y cuál es la diferencia entre estos dos?

¿Por qué se supone que un desarrollador de software piensa como un tomador de decisiones empresariales?

¿Qué extrañé al no estudiar CS o CE como desarrollador de software? Estudié química y física, aprendí programación en el trabajo (C ++, Phython, un poco C #). Soy bueno en el procesamiento de imágenes y estoy trabajando a tiempo completo con sistemas HMI. ¿Qué me perdí?

¿Por qué los desarrolladores de software a menudo están descontentos con los probadores?

Cómo aprender Java sin experiencia en programación

¿Qué tan cerca estamos técnicamente de desarrollar software que pueda escribir software, esencialmente reemplazando la mayoría de los trabajos de programación y desarrollo de software realizados por humanos?