There is a vast number of open-source projects out there. Which is certainly very good. From my undestanding most devs want to make something of their own from scratch. We come up with a lot of ideas on the way and sometimes seems easier to do it yourself than participating in someone else's project. Also, "mine does A others does slightly A but also B and is much too complex" notions appear when you first may glance at a project. Of course all great things start small and prove their value through the community, one might argue, but wouldn't it be better sometimes to concentrate efforts on more "valuable" projects? What might be the channels of promoting (even advertising) open source projects and somehow rank their value?
I think it depends. There are times in my life when I've wanted a tool and looked for existing products, contributed a few patches and been happy.<p>Then there are other times when there was nothing like what I wanted out there already. So I had to start from scratch.
(My console-based mail-client, with Lua scripting is a prime example.)<p>Sometimes even knowing there are similar things out there it makes sense to write your own, for learning, for specific features that you know upstream would never support, etc. (Yes, I wrote another static-site generator. In perl. I also wrote a perl-based cfengine-like server-automation tool.)<p>In the abstract contributing to existing code might make sense. But for personal, or contractual reasons, it isn't unreasonable to set out on your own path.