I believe that the problem that plagues open source software is that the people that write the code are just that. People that write the code.

Allow me to explain. Take Linux, for example. If I am a programmer who doesn’t quite like any of the many flavours of Linux out there, instead of helping to make the current versions better, because it is open source, I decide to create my own version. The problem is there are seven other people thinking the same thing. We end up with eight different versions of "the wheel" that all behave differently. And because we spent so much time writing the code, we have no time to write the documentation.

Use Firefox? Go to Mozilla's Add-on page. You will see no less than three reiterations of the same extension from different people (most with little or no documentation). Could each new person have helped make the original extension better? Sure. But there is this "pride" thing going on in the open source community that - were it the case with proprietary software, one would simply write in their suggestions - makes programmers want to create their on thing. Usually to the detriment of the end-user, who is most likely not technically inclined.