¿Cuál es la diferencia clave entre el modelo de ciclo de vida adaptativo y el modelo iterativo/incremental?

Tengo problemas para encontrar una distinción clave entre el modelo adaptativo y el modelo iterativo o incremental.

Según esta definición: https://www.oreilly.com/library/view/effect-project-management/9781118016190/ch011-sec045.html

[...] Cada iteración en los modelos adaptativos debe abordar no solo la finalización de tareas para funciones y características recientemente definidas, sino también una mayor definición de la solución a través del descubrimiento de funciones y características

Se supone que la parte del descubrimiento es la diferencia clave, pero ¿es así? Quiero decir que es bastante natural que cuando las personas están trabajando en algo, conozcan más y más sobre el producto y el dominio del problema, así que no entiendo cómo es esta una diferencia clave. Mi punto es que no veo cómo los modelos iterativos o incrementales carecen de la parte de descubrimiento que supuestamente es la "nueva característica" del modelo adaptativo. En mi opinión, el objetivo principal del enfoque incremental e iterativo es repetir todas las actividades del proyecto varias veces para que pueda adaptarse mientras entrega una parte del producto, por lo que no veo ninguna metodología nueva proveniente del modelo adaptativo. ¿Qué me estoy perdiendo?

Creo que para tener una respuesta sólida, uno necesita entender cómo este problema está impactando en su trabajo. ¿Cuál es el contexto donde se planteó la diferencia entre un adaptativo y un iterativo? ¿Está relacionado con algunas prácticas que alguien le sugirió que siguiera? ¿Estás tratando de entender diferentes modelos de trabajo? La terminología es realmente útil cuando tiene suficiente contexto, de lo contrario, solo puede generar confusión.

Respuestas (2)

TL;RD

Has mezclado algunos conceptos.

Como ha escrito Stanislav; hay dos enfoques .

Predictivo y Adaptativo

Dentro de Adaptive, puede encontrar tanto incrementales como iterativos, que son distintos entre sí.

Sin embargo, es muy probable que Incremental también se encuentre dentro de los modelos Predictivos.

¿Cómo funciona?

Los incrementos son paquetes predefinidos de funcionalidad que se basan en el incremento anterior. Están planificados y forman parte de una arquitectura más grande.

Agregaremos VISA, luego Mastercard, luego PayPal luego...

En última instancia, hacen algo más grande.

Entonces podemos tener un modelo predictivo que tenga una entrega incremental.

Una iteración es un paquete de trabajo definido que responde a la retroalimentación y puede llevar la arquitectura/organización/servicio en direcciones completamente desconocidas porque satisfacer a un usuario tiene sentido .

Permitiremos que los usuarios usen un tipo de pago y luego les preguntaremos qué tipos de pago faltan y lo analizaremos de acuerdo con la investigación de mercado...

Podemos tener un modelo adaptativo que puede tener iteración y, al hacerlo, también incrementará el producto o servicio.

En última instancia, la iteración hace algo mejor, no necesariamente más grande. Podemos cambiarlo por completo.

Desglose más amplio

incrementales

Como analogía, construimos puentes modernos usando un Modelo Predictivo de manera incremental .

Conceptualizamos el puente para determinar su viabilidad, luego construimos un modelo, pero lo más importante es que, una vez que comienza la entrega completa, agregamos 1 sección de un puente a la vez hasta que tenga un puente .

Como esto.

ingrese la descripción de la imagen aquí

Un enfoque incremental en ingeniería de software es el mismo. Usted construye sección por sección, o componente por componente o característica por característica hasta que su visión (definida en gran parte al principio) esté completa.

Iterativo

Un modelo adaptativo que usa un enfoque iterativo está mirando una obstrucción y pensando

¿Cómo podríamos superar esto?

Puede comenzar con un camino simple por cualquiera de las orillas y vadear el agua. Los usuarios no están contentos y no funciona en invierno. Un usuario puede solicitar el transporte de mercancías, por lo que itera un diseño que incluye un pequeño transbordador en góndola.

Otro usuario explica que necesitan la capacidad de retroceder mientras que otro usuario avanza, por lo que reemplaza el ferry con un puente de troncos.

Se inventan los automóviles y debe responder a la capacidad de peso, por lo que fortalece el puente, pero el flujo de sedimentos dentro del agua dicta que la madera ya no es adecuada, por lo que decide cerrar el puente y reconstruirlo con técnicas modernas.

Las consideraciones financieras dictan que debe cobrar un peaje, pero el tráfico disminuye, por lo que responde con cargos de peaje solo en un sentido...

En ningún momento inició el proceso decidiendo que la solución era un puente de peaje de hormigón de tres torres . Comenzaste resolviendo el problema de un cliente de ir de un lado al otro.

Recurrió a la solución más adecuada que permitieran los clientes, las partes interesadas, las condiciones del mercado, la tecnología y su propio ingenio.

Otras Consideraciones

  • Ambas técnicas pueden o no tener planes y esos planes pueden o no ser efectivos.
  • La iteración requiere un compromiso para responder al cambio, incluso si ese cambio llega muy tarde en la compilación (eso puede ser difícil de aceptar para los desarrolladores, significa estar feliz de no haberlo compilado por completo en lugar de estar descontento porque se desperdició el trabajo).
  • El diseño incremental no requiere tanta respuesta al cambio ya que teóricamente puede planificar todos sus incrementos por adelantado dependiendo de qué tan seguro esté
  • Los cambios tardíos en un diseño incremental pueden ser perjudiciales si la arquitectura no puede absorber los cambios
  • Un producto o servicio grande puede tener una combinación de diseño incremental E iterativo (por ejemplo, un componente o característica puede iterarse dentro de un diseño incremental más grande)
  • Las ideas iterativas son cruciales para Agile, pero puede incrementar e iterar sin suscribirse al Manifiesto Agile más amplio o a cualquier marco específico.

Razonamiento histórico

Por último, conocer la génesis del diseño incremental es entender la computación.

En los años 60 y 80, los entornos de producción eran muy caros y la entrada a la producción estaba en cola. A su vez, esto significaba que las pruebas eran costosas y también se hacían colas.

Entonces, el impacto fue que un posible error en su diseño era muy costoso. Tenía sentido recopilar tantos requisitos como fuera posible por adelantado y tratar de corregir (o establecer una línea base ) esos requisitos en colaboración con un cliente antes de comprometer una línea de código. La línea de base se comunicaría y todos esperarían que se entregara.

La desventaja era que cambiar la línea de base requería aprobación y no todos estaban facultados para hacerlo y la gobernanza estaría involucrada...

En la era moderna, literalmente podemos aumentar los recursos de prueba y los entornos superiores por centavos. Podemos resolver problemas rápidamente y es probable que haya marcos o paquetes que podamos tomar de la comunidad.

La penalización por un error en la ingeniería de software moderna es mucho menor , por lo que podemos permitirnos la libertad de construir cosas rápidamente y dejar que los comentarios de los usuarios impulsen lo que hacemos a continuación. ¿Arreglamos A o mejoramos B o agregamos C o hacemos que D tenga más rendimiento, etc.?

Sin embargo, todavía hay organizaciones que luchan con eso (por una variedad de razones) y el Manifiesto Ágil fue un intento de fomentar una mayor capacidad para responder rápidamente a los comentarios .

A partir de 2021, ahora tenemos cientos de patrones documentados sobre cómo respondemos a los comentarios e incorporamos la iteración en un flujo de trabajo.

Algunos patrones dependen de que la gerencia acepte ceder el poder al equipo de desarrollo.

En ese sentido, la iteración puede fallar debido a una variedad de barreras creativas, culturales, organizacionales o de conocimiento.

Apéndice de MVP

El Producto Mínimo Viable está estrechamente ligado a la iteración , pero es un concepto muy mal entendido en ingeniería y dentro de Agile. En gran parte porque la mayoría de los practicantes ágiles tienen poca experiencia en nuevas empresas; la mayoría trabajaba en organizaciones escaladas.

Es mejor divorciar sus conocimientos sobre la iteración de MVP; sin embargo, una vez que esté listo, podrá comprender el concepto de MVP con una lectura cuidadosa de los blogs de Marty Cagan.

Hola , parece que te opones a los enfoques de los modelos.

Hay enfoques predictivos y adaptativos.

Predictivo, por ejemplo, Waterfall y Adaptive es como Agile.

Por lo tanto, los enfoques SDLC adaptativos tienen una combinación de desarrollo incremental e iterativo.

Aquí puedes encontrar más información.

¿Qué quiere decir con "enfoques opuestos a los modelos"?