I've been working as a programmer on a project designed for generic software for gas stations (to be redistributed for many customers) for 18 months. The project is big. Today we have around 150 tables. We haven't used a specifc approuch, it was not well managed.
The person table has today around 70 columns, but 15 months ago it had around 30 columns. These new fields emerged in order to integrate with other modules such as sales, financial and accounting. Also many fields were created then deleted.
As a result, we had many refactoring and rework. The project never gets ready because there are always new requirements emerging.
Here's my doubt: if we had used a usual approach of specification, we would had interviews, a requirements document, activity, sequence and class diagrams, so we would know since the begin that the "person" table would need 70 fields, then we had avoided a lot of refactoring.
Could scrum help in this project? I have a feeling that in this case scrum would end up in a lot of refactoring as well.
I'm only a programmer, not a project manager. I'm wondering how it should have been done: with scrum or with big design up front.
Edit
Just to complement the end of this story. Eight months later I asked this question, after put the project in production in some "test costumers" the project officialy failed. The product owner decided to abandon the project. It got hard to fix problems and a lot of perfomance problems occured.