Acabo de leer Equilibrio de agilidad y disciplina . Dejando a un lado el título deficiente, contrastaba con un equipo de proyecto impulsado por un plan que estaba empleando PSP / TSP y un equipo ágil que usaba Programación Extrema.
Cuando los autores proporcionaron un ejemplo de una metodología basada en un plan, utilizaron el Proceso de software personal / Proceso de software de equipo. Aunque, listas para usar, estas son metodologías basadas en planes, también están diseñadas para usarse como marcos de procesos y, en última instancia, solo especifican qué tipos de cosas hacer y no cómo hacerlo, lo que las hace potencialmente útiles incluso en un ambiente ágil. Es posible ser ágil y seguir los principios de PSP, y no estoy lo suficientemente familiarizado con el TSP para decirlo con certeza, pero entiendo que es muy similar.
En un momento del libro, enumeran una serie de metodologías y las clasifican en términos de agilidad. Métodos como Scrum, Lean, Crystal y XP están en la parte superior. La parte inferior (de la mayoría a la menos ágil) consiste en el proceso unificado Rational, el proceso de software del equipo, el desarrollo basado en funciones, CMMI, CMM de software, el proceso de software personal y la sala limpia.
Watts Humphrey, en PSP: un proceso de auto-mejora para ingenieros de software , dedica un capítulo a la definición del proceso y a la modificación específica del proceso de software personal. El tema común es que los procesos son prescriptivos (dicen qué hacer) y no descriptivos (cómo hacerlo). Supongo que el TSP es muy similar. CMMI también se ha utilizado junto con métodos ágiles, y el SEI tiene un libro sobre él (que aún no he leído).
El desarrollo basado en características a menudo se promociona como un enfoque ágil para la gestión de proyectos, aunque los autores eligen clasificarlo como una metodología menos ágil.
RUP es un marco iterativo. Aunque no estoy increíblemente familiarizado con él, el hecho de que sea un marco me permite agruparlo con SW-CMM, CMMI y PSP / TSP, ya que podría implementarse como una metodología ágil o como un plan.
El único otro ejemplo que ofrece el libro con el que estoy de acuerdo es la Ingeniería de software de sala limpia . Los componentes clave de Cleanroom son el uso de métodos formales, control estadístico de calidad y pruebas estadísticamente sólidas. No veo por qué estos no se podrían usar en un método ágil (iterativo / incremental), con la adición de tiempo y costos generales.
Solo para aclarar lo que estoy buscando, la familia de métodos ágiles incluye implementaciones específicas de una idea abstracta en forma de Scrum y Extreme Programming. Estos se dan cuenta de los conceptos de desarrollo iterativo e incremental, que responden al cambio, las personas (individuos y equipos), la entrega frecuente de software de trabajo, la colaboración con el cliente, etc. Especifican claramente los roles, los artefactos, las reuniones, los timeboxes y otras prácticas, y "hacer Scrum" o "hacer programación extrema" significa tomar el paquete. Aun así, permiten la adaptabilidad y la creación de nuevos procesos (pero no estás "haciendo Scrum" o "haciendo XP"). Sin embargo, no he encontrado el "do X"
Entonces, mi pregunta: ¿Cuáles son ejemplos de metodologías de desarrollo de software más basadas en planes? Varios marcos de procesos (PSP / TSP, SW-CMM, CMMI, RUP) también permiten un desarrollo ágil o basado en planes, pero ninguno es descriptivo. Pero, ¿existen metodologías verdaderamente basadas en planes, que sean, por ejemplo, contrapartes directas de Scrum y Extreme Programming?
fuente
Respuestas:
Honestamente, tengo dudas sobre la validez de cualquier reclamo hecho en un libro que enfrente la Agilidad y la Disciplina entre sí. Las metodologías ágiles requieren mucha más disciplina, en mi experiencia, que otros tipos de desarrollo.
Es decir, si va a explotar los beneficios de los procesos ágiles, debe seguir las prácticas habilitadoras que vienen con ellos (vea el artículo de Martin Fowler Is Design Dead ; él está hablando sobre todo de XP, pero se aplica a toda Agilidad, en mi opinión). Eso requiere mucha disciplina.
Pero, para responder a su pregunta, creo que todas las metodologías verdaderamente basadas en planes son variaciones de Waterfall, como Spiral , que lleva el desarrollo a través de múltiples niveles de creación de prototipos antes de cambiar a un enfoque de Waterfall, y Cap Gemini SDM , que es Waterfall con muy fases distintas donde cada una termina antes de que comience la otra.
fuente