1: No motivations for opening a business: For everyone one new OSS company out there, there will be 4 or 5 or even more CSS company. And the chances are the CSS company will survive, until the day people figure out how they can make a living out of OSS business model. I work in a small software company, we LIVE on our source code. The company policy includes not to bring the source code out of the office, much less to make it OPEN to our competitors. And every successful company grows out of a small shop.
2: Lack of talent: Yes, there are lots of deadly smart people writting OSS, but think about it, they dont make a dime out of it. (Does Linus get paid for writting Linux kernels?) And for the people who actually do, (like the mozilla people) they take a lot of accusations and pressure from the geek communities. (For all the shit that got shoved on mozilla, if i were them, i would have said "fuck it" and quit) Most of the OSS people write software on their free time, though, how many programmers working in a professional world, would come back home and do the same stuff again as they do in the office? And dont tell me they can then do the thing they like to do. Programming isn't about programming for some specific platform. It is a creation of art. As long as you are comfortable with your tools, you will be comfortable with your job. (which is not the case in Linux, but I will leave that to later)
When there is no money, there is no motivations for participation. (you can't strut your ego for too long. people living like ESR are just bad for capitalism system) And without careful management and face-2-face contact, there is no design in large projects. I haven't known many great/originaly OSS out there. Even the greatest Linux, is just a clone out of the good, old UNIX.
3: VERY poor documentation and lack of technical support: I am in a project for porting our company's flagship product to linux. In the early stage, I even had to look hard for the documentation on datatypes.(Dont we wish there is somethign like (L)inux (D)evelopment (N)etwork)
For the technical support part. What if you have problems with one of the OSS you use? People dont have to take responsibilities for the stuff they write. So basically, you will have to take the 10,000 source code, and swallow it. Now that is something nice to tell your customer: "you have a problem? Take the source, and fix it yourself! Just dont forget to send a patch so that we can have our OSS reputation".
I can't simply count how many times OSS crashed on me. Surprisingly, my NT box can stand for quite a long time. BUt that contributes to the lack of talent, and lack of devotion. The software I was using was probrably written by a sophormore who used a lot of malloc but forgot to free somewhere. There was no code reviews, no senior engineers helping you. You practice on your customers. <shiver>
Sorry about this long rant. I have had enough from the typical slashdot-type sys-admin people who started the spam of "Winblowz" and "Lirox". It is finally a time to take it off my chest. OSS is so overhyped than the stock market. Because when it crashes, people still don't realize it.