The biggest problem in making software is debugging. Writing code is simple, every monkey can do it. With enough monkies with typewriters and a few smart people filtering the monkey output you can even get something that improves over time. But to get real products that are usable, you need lots of competent people doing slow and hard work behind the scenes. Linux development is more and more moving towards a model where the real work is pushed to become Somebody Elses Problem. And people wonder why BSDs are getting more and more popular. Seesh.