There are 2 ways:
1. Talk to individuals who you expect to be your users.
Ask them how they currently do what your idea makes easier to do. Try to find out if they have any problems with it, but don't push too hard. Just listen. If they seem at all receptive, tell them about your idea. Then pay attention to everything they talk about (good or bad). If they don't seem interested at all, move on. Find the next person to talk to. Your aim at this stage is to find people who do think your idea has some value. The uninterested ones provide data to act on in case you don't find anyone interested in your idea at all.
If you can find even 1 or 2 people who love your idea and really get excited about some feature, then build that as quickly as you can and get them to use it.
2. Just build whatever little thing is useful to you immediately. It's ok if it's ugly and incomplete. It should just give you more of at least one of the following: time, money, fun, happiness.
Then show it to other people who you think might like it. Most reactions on design you can safely ignore. People have a natural tendency to talk about how things look because it's what they see first and feel obliged to say something. It happens on HN all the time.
What you want to look for is things people really love or hate about what the thing does. Also look at the data on what people are actually doing with your product. They often say one thing, and do something completely different. So pay attention to actual behaviour.
Out of all of this, you might notice one or two things really stand out. When they do, zoom in and focus on them to an extent that will seem ridiculous. It should make people say things like "This is just a feature, not a product". Then you know you're really onto something.
The more interesting and novel your idea, you are better off going with route 2. The new conventional wisdom (of Lean) suggests you should mostly always go with 1. But if you look at the landscape, the best ideas come from 2. The chance of failing may also be higher with 2, but that's where the artist in you comes out and pushes the boundaries.
Talking to people about your idea too early may kill the spark of magic that brought it to life. Make it real asap.
These gentlemen say it better than I can - http://www.zefrank.com/theshow/replay/?p=363
http://www.thisislondon.co.uk/lifestyle/london-life/sir-jona...
I recently came across the Stanford design Bootcamp Bootleg [1]. It outlines the whole process for getting from an itch to a working product. And they obsess over empathy. It's all over the Bootleg. Interview potential users, learn how they currently solve the problem you're trying to solve and show them how your idea could help them.
The Bootleg is highly recommended. Even if you don't follow the practices it describes, it pays to have those mental models.
We were brainstorming recently. And we did this entire exercise. We went to meet students, shop owners, teachers and even some folks at the local administration. It was extremely tedious but our efforts paid off. We gathered insights that range from pretty obvious to mind-numbing and some even rather stupid.
We then made a small web presentation [2] of the most interesting ideas and asked people to vote and give their suggestions. It has been a very rewarding experience.
[1]: http://dschool.stanford.edu/wp-content/uploads/2011/03/Bootc...
Have you shipped any of the ideas in [2]?
I understand. It's a whole bunch of neat design processes. But it's huge! You can take a look here for the separate ideas. http://dschool.stanford.edu/use-our-methods/
> Have you shipped any of the ideas in [2]?
Yup. We're currently building IHeartCode (turned out to be the most popular). A rough prototype lives at http://iheartpy.com
We're filling in the meat right now! There's a lot of work to do and we hope to get things in shape so we can call it a beautiful pig and go from there.
Thanks for the feedback though. Would love to bug you some more if you don't mind. :)
Great advice there and I totally agree with you. In fact, we are looking into incorporating great Python tutorials in the public domain to supplement our content.
Actually, we took the interactive approach because to people with little background in programming, the biggest deterrence is fear of breaking things on their PC. On iheartpy.com they can easily try out basic commands without that fear.
On a different note, this discussion is slightly off-topic. Can I shoot you an email some time? (If you don't mind.) Also, I'm really sleepy now (yawn!)
Either way, this will help you visualize the minimal viable product and you can go from there.
It doesn't mean that your other features are discarded, it just means that you can get to where you need to be at the right time.
One other thing it does too is give you an opportunity to stand back after the deadline has passed and look at the project with fresh eyes.
For example, at the outset you aim at getting the ting up and running. Then once you are there, switch hats and become a user. Is the thing doing what you need? Are there bit's you don't actually like? Why don't you like them? Would one of your missing features solve the problem? Or, do you just drop that irritating feature?
I think this can only happen if you set the date, execute, and then step back.
Your question is super good. This may be the hardest part of coming up with a new business.