I maintain two slightly popular open source apps, and my experience is that there are a lot of people interested in using your product, but very few people interested in contributing to it.
I've had a few people offer help over the course of the years, but unfortunately they don't always have all the skills needed, so they can only help with a part of the project. When they do have the necessary skills, they don't have the time.
As I don't have the time to keep working on both projects for free, I'll probably abandon the lesser used one. I'd love to find a successor for the second project, but to be honest I don't have any idea how to go about finding that person.
(I don't want to post specifics of the projects because I'm trying not to link this account with my real world identity)
> I've had a few people offer help over the course of the years, but unfortunately they don't always have all the skills needed, so they can only help with a part of the project.
So whats wrong with allowing them to help with those parts?
Allowing people to help also takes time...there's a non-trivial management effort involved...one that's too frequently forgotten about in these discussions.
This is very true. Even when collaborating with very skilled engineers, it takes a lot of time and energy to respond to ideas, questions, and review PRs. It’s like a regular programming job to a certain degree, but you’re typically not paid for doing it.
Software can be shitty garbage in many ways. It can be shitty garbage by having lots of bugs, and it can be shitty garbage by having a maintainer which cares more about bottlenecking all changes than about the future of a project.
But everyone is free to make shitty software, so have at it.
This seems like one of the potential tragedies of the "all volunteer" development model. Many of the factors that play into Brooks's Law apply just as much to volunteer efforts as they do to commercial efforts.
One of them is the cost of communication. My sense is that the overall cost of communication scales in a manner that's more in line with the number of active contributors than it does with the actual volume of communication that they produce. Even the actual time spent communicating may not do so, but the kinds of communication - getting to know new people and new teams, negotiating different and potentially conflicting needs, stuff like that - tend to be more tiring than the communication you get in a stable team of people who have been working together for a while.
But, if you can't make a living doing it, then you probably aren't prepared to contribute more than a very small amount of your time. A large group of people doing that might have an outrageous communication cost relative to its productive output. With the brunt of that being born by the maintainer.
I would imagine that, if we could figure out a better way to enable maintainers to support themselves and their families while also working on their project full time, things might work out better. More time spent programming means less need to negotiate with and review contributions from others, and the work getting done more quickly because it's being done by the person who knows the code best, and the job being both less tiring and less thankless, and possibly leads to higher quality (by virtue of being more coherently designed) software in the long run.
I've had a few people offer help over the course of the years, but unfortunately they don't always have all the skills needed, so they can only help with a part of the project. When they do have the necessary skills, they don't have the time.
As I don't have the time to keep working on both projects for free, I'll probably abandon the lesser used one. I'd love to find a successor for the second project, but to be honest I don't have any idea how to go about finding that person.
(I don't want to post specifics of the projects because I'm trying not to link this account with my real world identity)