Larry Wall, who created the programming language Perl, once said, “When they built The University of California at Irvine they just put the buildings in. They did not put any sidewalks; they just planted grass. The next year, they came back and put the sidewalks where the trails were in the grass.”
Larry’s point was that Perl wasn’t designed on first principles. Perl was those sidewalks. If you’re a consumer software product designer, this should resonate with you. Watching for patterns in usage will help you make your app better. Thinking you know all up front is just more work.