Nice answer. I also recommend Lean startup techniques to validade If users would buy your product and the lean inception agile technique to really get to know your product, what it does best, how is it different from the competition, and how to choose tasks and prioritize them. The point being: don't build it before you validade that users are willing to pay for it
Caveat: this is only relevant for the sorts of projects where you want to sell the end result.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.