I have been alive for over 17,000 days. Generally speaking I have used a washroom in one form or another let's say at least 5 times per day. That means that I have had a washroom experience at least 85,000 times in my life. I'm going to renovate my bathroom. When meeting with the contractor I have experienced so many washrooms that I can easily describe what I want, and guess what, so has she and if I picked the right person she not only uses them but has also built many, many as well. Very easy to describe the entire project, get a quote and easy to evaluate progress. Doesn't always go perfect but at least there isn't allot of debate about the fact that the room should have a toilet. Why then do we take this same approach to building software? To building something that we likely haven't experienced before, can't describe well, and we're not too sure how it should work. And then we need to have someone build it who probably has had the same or least experience and on top of that they have to try and decipher what we want. Why also does our fear of not getting what we want drive us to get greedy and ask for everything? Dumb. If you have 10 things your software should do, use an 80/20 rule. Build 2, evaluate deliverables daily, when done, use the software and experience it fully, revisit the remaining 8 items and I think you will be surprised to find that they no longer apply, you now have a new list of 10 things you want to add. Don't get dumb and go for all 10, do 2, repeat, enjoy. Stay regular. Couldn't help the pun.