I'm sure this is common amongst us developers with ideas. I come up with new ideas for websites all the time. Most of the time I will have 2-3 ideas a week. I will usually invest several hours into each idea. If I know enough to jump right into code, I will. Otherwise I start by researching for the idea.
Most of my ideas I am initially excited about. If I'm lucky then I may even be genuinely positive that the idea is "going to work". But, just like clockwork, I eventually begin to doubt the idea and usually end up dropping it. This usually occurs the day or so after the inception of the idea.
Usually, my reasoning for dropping an idea is that it seems so useless and minor in the grand scheme of things. I try to picture people using the product and it actually making their life better in some way. This is obviously not an easy thing to do.
I think that over the years I've trained myself to be my own worst critic. I'll let myself get engulfed in an idea right away, but then I always take a step back and criticize the unpolished idea to the point where I convince myself that it's useless.
What are some things that help you all remain optimistic and excited about an idea?
Instead, try to think of it in a top-down, breadth-first manner. Pick a market you care about, and the best product in that market. Then think for a week how you could improve that product by an order of magnitude. List ideas. Throw them out. List more. When we're talking about disruptive improvement, thinking about it in terms of "orders of magnitude" is hard, so try to think about it in terms of what huge, meaningful thing the users could do that they can't do now. Design a new product that has a fundamental reason to exist (doing the same thing differently is not a reason).
This way, instead of trusting in your idea, you'll have to put trust into the fact that you can design a great product. I found this to be much easier - in this case all you have to do, is do your best. It's hard for anyone to do anything more than that.