Something occurs to me about this thing I do for a living. See, you can fail without realizing it. A little piece here, a little piece there. Most of these failures will be imperceptible to you as a project organizer, client, stakeholder, or decision maker. But they add up.
You'll know they're there eventually, when you've got a pile of them so big that nobody knows how anything works... even the guys who wrote it. And then you end up in the cyclical trap where the only solution to any problem is to throw more code at it. But since you started on shaky footing... the conclusion is going to be the same.
It happens on projects of all sizes. Some sooner, and some later. They key to solving it is planning. Not from the stakeholder level. All they do is hand down bullshit requests and assessments. Rather, your app needs to be planned, and thoroughly by the coders themselves.
Otherwise, you spend more time putting out fires than making magic.
And that's what we wanna do, right?
Make magic?