Individuals find problems to solve in one of two ways - meeting with repeated frustration in their work until they realize they can fix it with software or by being exposed to such people and understanding their problems.

For example, I work in information security. I can spot good ideas in the security industry very quickly. I can also critique them very quickly. Not only that, but I have several good ideas that I've jotted down that I know for a fact are excellent SaaS or startup ideas, given a satisfactory technical implementation with enough business savvy.

Conversely, I love home automation, but I don't understand home automation at the business level. I have had plenty of ideas that sound good to me or probably look good on paper which I am hopelessly at a loss to implement correctly because I lack the proper domain experience to do a sanity check on their validation.

One home automation idea I had was to remove the expensive programmers used by high-end audio/video retailers such as Control4, Savant, etc. and build a system that creates an API for literally every single internet-capable device on the market. Instead of customers paying labor for programmers to design custom solutions, they would purchase a well-maintained, consistently updated hardware that has every connection you could want baked in. Want a song to play and lights to flicker when your smart fridge realizes your milk is almost bad? There'd be an API for each of those, down to brand and model, that you could connect IFTT style in a central Nest-like hub.

That probably sounds good. But I don't know enough about the industry. Is this a genuine pain point? Can I really validate this in the market? How difficult would it be to disrupt existing players with their labor-intensive solutions? Would resellers such as Best Buy/Magnolia be accepting of something that isn't as lucrative as them or doesn't have as much margin? How hard would it be to develop hardware or find someone to develop the hardware? What about mass production?

When you have worked extensively in a domain you develop known-knowns and known-unknowns. You progress from thinking you know a little, to thinking you know everything, to thinking you nothing, to realizing you know a lot but there is a lot more to know.

When you haven't worked in a domain, you are completely unqualified to qualify your business ideas in that industry. You don't just have known-unknowns, you have unknown-unknowns. You have no idea what you don't know, so you can't validate your ideas at all. You're floundering about like a non-technical manager trying to hire a backend engineer. Where would you even start in your assessment?

This is why it's horribly inefficient to try and "come up with an idea" artificially. Work long enough in a meaningful domain in a lucrative industry and you will develop ideas. Barring that, go talk to people in an industry. I bet if you interviewed ~1000 waiters about their job you'd have a viable business idea afterwards that you could not have conceived - or would have dismissed - on your own. I know one developer that scaled consumer desktop drag-and-drop enhancing software to five figures a year. He figured out a pain point most people didn't know or didn't care about.

This is all to say that to answer your first question, go work in a domain for a while until you find something that pisses you and your colleagues off.