Recientemente he visto muchas publicaciones que dicen que una de las principales razones por las que se usa Agile es porque los clientes a menudo cambian los requisitos.
Sin embargo, digamos que los clientes no cambian los requisitos con frecuencia . De hecho, los clientes tienen requisitos firmes, aunque pueden ser un poco vagos (pero nada irrazonablemente vagos), pero uso Agile de todos modos.
La razón por la que uso Agile es porque el software es lo suficientemente complejo como para que haya detalles, problemas que no reconocería hasta que realmente los enfrentara. Podría hacer un enfoque de planificación pesada a gran escala como una cascada, pero luego tomaría unos meses finalizar todo el diseño de alto nivel y las firmas de codificación de bajo nivel. Sin embargo, hay un diseño arquitectónico fijo muy específico para el sistema.
Mi pregunta es: ¿se consideraría esto malo, codificación de vaquero, antipatrón, etc.? ¿Debemos emplear la cascada y planificar tanto como sea posible con gran detalle antes de comenzar a codificar cuando los requisitos son estables en lugar de esta mentalidad de 'hagámoslo' en Agile?
EDITAR: El punto principal aquí es que: NO PODEMOS culpar a los clientes por los requisitos cambiantes. Suponga que los clientes nos señalaron un problema muy concreto, denos una lista de deseos con detalles muy razonables y déjenos solos (es decir, los clientes tienen sus propias cosas productivas que hacer, no los molesten más. Solo demuéstrales cerca del termina cuando tienes un prototipo de trabajo mínimo). ¿Sería un error usar Agile en este escenario?