He estado trabajando como programador en un proyecto diseñado para software genérico para estaciones de servicio (que se redistribuirá para muchos clientes) durante 18 meses. El proyecto es grande. Hoy tenemos alrededor de 150 mesas. No hemos utilizado un approuch específico, no fue bien administrado.
La tabla de personas tiene hoy alrededor de 70 columnas, pero hace 15 meses tenía alrededor de 30 columnas. Estos nuevos campos surgieron para integrarse con otros módulos como ventas, finanzas y contabilidad. También se crearon muchos campos y luego se eliminaron.
Como resultado, tuvimos muchas refactorizaciones y modificaciones. El proyecto nunca se prepara porque siempre surgen nuevos requisitos.
Aquí está mi duda: si hubiéramos utilizado un enfoque habitual de especificación, tendríamos entrevistas, un documento de requisitos, diagramas de actividad, secuencia y clase, por lo que sabríamos desde el principio que la tabla "persona" necesitaría 70 campos, entonces había evitado muchas refactorizaciones.
¿Podría Scrum ayudar en este proyecto? Tengo la sensación de que en este caso el scrum también terminaría en una gran refactorización.
Solo soy un programador, no un gerente de proyecto. Me pregunto cómo debería haberse hecho: con scrum o con un gran diseño por adelantado.
Editar
Solo para complementar el final de esta historia. Ocho meses después hice esta pregunta, después de poner el proyecto en producción en algunos "clientes de prueba", el proyecto fracasó oficialmente. El propietario del producto decidió abandonar el proyecto. Se hizo difícil solucionar problemas y se produjeron muchos problemas de rendimiento.