I just read through that.
Asking questions and planning up front? Documentation before code?
Thats so waterfall. (And it works quite well for some projects). Certainly having a problem that isn't clearly defined is a good way build something that doesn't solve the problem well.