I’m sure you have seen yourself, or at least heard of a handful of software development projects that have run into cost and time overruns. They are so common, it’s not even funny anymore. They blame it on the waterfall model; they also blame mis-alignment between business needs and final project specifications on the waterfall model. So they went to the other extreme, to AGILE. (for the record.. I am so fed up with agile all I can think of is puke when I hear that word).
In between these two extremes there is; somewhere, some kind of equilibrium. A space where software specifications still have importance, and when; by the same token, user stories also make sense. I mean ideally you have both; you care for the user AND the system. It’s not exactly rocket science. Some elements of the system need to be thought through thoroughly; beyond the consideration for the user experience. Lets call them server experience? who the fuck cares. Epics? lol. They are SYSTEM REQUIREMENTS.
The main reason why projects end up costing so much more than planned and taking so much longer than planned goes far beyond development methodology. It has to do with the inherent inability of human beings to care about what they call problems. In fact a problem doesn’t exist, they are all just situations; some situations you want and are ok with, some others are obstacles for you to reach your goal. You label them problems. But they aren’t problems. They are situations; they exist, you don’t want them to, but they do.