This is a hard question to answer. There is no magic formula or combination of qualities that make a startup successful. A lot of factors come in to play - timing, luck, personalities, experience, perseverance, money, dedication, etc. You can start with four developers or four marketing people or four friends. In all cases, the smart team realizes the skill sets they do not have and determines either how to learn them or how to find people with those skills to advise them. Tap your network for advice on legal, accounting, marketing, human resources, operations, sales, customer service, networking, hardware, hosting, etc.
Here are answers to your specific questions, in my humble opinion:
- Vision to have an idea, perseverance to see it through, dedication through thick and thin, the ability to work out of your comfort zone and the ability to learn new skills completely outside your domain of expertise (or the willingness to hire people with those skills).
- It depends. You need to be able to write a business plan, define a sales and marketing strategy, work through legal, accounting and HR issues (and a myriad of other things). Perhaps your technical talent has these skills as well (don't stereotype techies as only having coding skillz).
- It really depends on the product, but in general you need to define your market, undertand the size, have a plan for driving demand (other than tweets) understand how you are going to generate revenue, build a budget, possibly raise funds, hire a team, protect yourself legally, etc. Just winging-it isn't a plan. Now, you don't (and really can't) plan out exactly how things are going to work. You'll need to be able to adapt, question old assumptions, start from scratch, etc. In many ways building a business is like building good software. Plan a little, build a little, fix here and there. Repeat.