Sounds great, doesn't it? All lovely and simple and predictable (and businesses *loooove* predictable). There's just one small problem: it's bollocks.
Even on what seemed like relatively straightforward systems, when the software was put in front of customers and end users, we'd get an avalanche of feedback about what was wrong with it. So there'd be a frantic phase of change requests and bug fixes to try and get the software into the ballpark of usable.