I just think. I first strive to understand a concept, and then I put myself in the shoes of the actors affected by the concept. It evolves in my mental vision, and abstractions flutter around, interact, and connect in appropriate places. Eventually I have a pretty complete Vision in the abstract, the interesting implementation details mostly worked out and the uninteresting details glossed over.
This is often most effective in the course of a shower, kinda my meditation time under the water, allowing my mind to drift and play with interesting problems. However, I use the same approach for problems at the workplace or pretty much any problem I encounter in life.
I believe less in random brainstorms and more in looking at the big picture. Also, I do not mind trying things out, even if they seem improbable, just to see if they work anyway. There is a certain limit to dreaming about things. I balance the practical with my problem-solving.