The big successes that I've seen all have exceptional founders, but that's clearly not enough. Timing is a huge component as well. Often a good idea will fail simply because the market or technology isn't ready. My own experience with Gmail reflects some of that. When we decided to write the whole frontend in JS, everyone said that it was a bad idea doomed to failure. It had been tried before (e.g. desktop.com) and had always been a disaster. They were right about the past, but wrong about the future. We released Gmail right around the time that browsers were finally getting good enough, and were were very careful to keep our code as fast and slim as possible.