It's all about the people
So you want to complain about that damn piece of (open source) software? The problem is, complaining does not make it better, it just let's you feel better for the moment. No single problem is solved by yelling at the code.
You state that you "better could write your own $thing" - indeed that's what other people already did. Quite a number of projects started as clones of existing ones, built on top of the experiences gained from other projects. In that sense, each OSS project is only one example of a greater picture, it is how Open Source software in general lives, grows and evolves. Each project lives and dies with the people involved and committed to it. Software in general, and OSS in particular is never perfect, it is never finished and there is always something to improve, some bug to fix or something to re-design. Even Donald Knuth had to pay a few checks.
Despite that, some of these projects are really successful, people start to like it and use it big time in productive environments for all kinds of things. So got Linux traction, and so did a plethora of other OSS tools and products. But behind all that technology stacked together, at the very bottom of it, there's still that tiny piece of code where it once started. It all goes back to that small, proof-of-concept-alike module, which suddenly came to life, and, after growing and nurturing it, finally did what the inventors had imagined. It was far from perfect, it was even a bit ugly, and there was no documentation and no web site, but it worked like hell and some people saw the potential in it. Some of them joined you and spent their own time to improve it, to document it, to even write books about it. They let the community grew by spreading the word about that awesome cool and powerful tool they just discovered.
The cornerstone of not only Open Source, but basically any project, is contributions made by people: If there are enough people to just start doing the things they feel the need for, or see the genius way to make things better than before, awesome things start to grow.
At the end, it all rises and falls with people that believe enough in the project to spend a part of their life to it. We need you users and developers who are reading this. We need even you, yes you, who already has an awesome patch in his repo and just hesitates to contribute, because you think your code will not be good enough. Believe me, it is good enough - and if there are really flaws in it, we will be glad to help you improving it and make it great.
And that is what OSS is all about: Building really great things out of imperfect pieces.