Además de Waterfall, ¿cuáles son otras metodologías de desarrollo de software basadas en planes?

8

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?

Thomas Owens
fuente
Usted escribe que el libro "contrastaba con un equipo de proyecto basado en un plan que estaba empleando PSP / TSP y un equipo ágil que usaba Programación Extrema". Estoy bastante seguro de que usamos mucha planificación para nuestra implementación de XP. Estoy un poco desconcertado al suponer que los XP'ers no planean. Mi experiencia es diferente Mis dos centavos.
Manfred
Las metodologías dirigidas por @John Plan se centran en aplicar técnicas de ingeniería tradicionales y pasar sistemáticamente de los requisitos a través de, finalmente, un producto de entrega, mientras se realiza la verificación y validación paso a paso. Se caracterizan por una fuerte documentación y trazabilidad a lo largo de la vida del sistema. Existen planes detallados, flujos de trabajo y productos de trabajo (que no son software de trabajo).
Thomas Owens

Respuestas:

5

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.

pdr
fuente
1
Estoy de acuerdo, no me gusta la comparación entre "ágil" y "disciplinado". "Ágil" versus "impulsado por el plan" es mucho mejor, y he leído en varias fuentes (aunque no puedo nombrar a nadie de la cabeza) que ser ágil requiere equipos dedicados, conocedores e incluso más experimentados, incluso más que cualquier método basado en un plan. En cuanto a su último párrafo, todavía son marcos. Hay muchos marcos basados ​​en planes, pero nada tan explícito en "this is {insert name here}" de la misma manera que puede decir "this is Scrum" o "this is Extreme Programming".
Thomas Owens
1
@ThomasOwens: Spiral es una metodología, no un marco. Sin embargo, es posible que tenga un punto sobre el modelo V. Quizás Cap Gemini SDM sea un mejor ejemplo, aunque siempre se parece mucho a Spiral. en.wikipedia.org/wiki/System_Development_Methodology
pdr
1
Spiral está mucho más cerca: define claramente las fases y algunos documentos (requisitos, conops, planes de desarrollo, planes de prueba y procedimientos) y productos técnicos (prototipos, un producto final). Yo diría que eso y Cap Gemini SDM están mucho más cerca de lo que estoy buscando (¿podría agregar SDM a su publicación?). +1.
Thomas Owens
1
@ThomasOwens: hecho y reemplazado el modelo V.
pdr