I wonder what fraction of new open source projects are created because previous projects are poorly documented. Most programs I need have already been coded, but often the documentation is missing, inaccurate, or so poorly written that the program is useless. Because of this, it is often easier for others to write their own equivalent program than to use or contribute to an existing program. Still, the best open source option is usually closer to what I need than commercial programs are, with the added benefit of being open source.