I like to begin design work by thinking about the things people want to do. I pull these out of thin air if I’m conceptualising something entirely new. I’ll reverse engineer them from similar products if I’m planning to build something similar.
If I’m redesigning something then my goal is to collect points of friction. The places where people butt up against what currently exist. Customer support tickets are great here, product data can help, but listening to people is by far the richest source of insight.
Once I have all my bits the next step is to figure which bits go first. Jason Fried has a lovely essay where he talks about the obvious, the easy and the possible. I am yet to discover a better set of buckets for resolving the tension in the design process.
You can’t make everything obvious. The more things that are, the less obvious they become. As a general rule of thumb the more often someone does something, the more obvious it should be.
Stuff that just needs to be possible can be tucked away. Figuring out where the easy things go is the tricky bit. Limit your options by always designing the obvious first. That way, if you mess everything up, you still have an interface that gets the job done.