I am not a new “consumer” of open-source software (OSS). In fact several tools I work in a daily basis are open-source. The OSS idea of freedom to create, share and help others (most of the time for free) always fascinated me.
I’ve been planning to jump into that open-source world for a while. And for “jump into” I mean start contributing code/ideas/energy instead of just watching things happen. I was certain I would not write the shiniest nor the best code in the world, but heck, I had to start! After a while, I started looking at the projects I use every day to find something to start contributing to. After some time, I must say I saw something pretty strange, but rather common in the community: projects with a single developer. It is a project founded, coded and maintained by a single person. That’s honorable and bad at the same time.
If you have a single point of failure, any fluctuation will generate a huge impact. If for some reason the author can’t work on that project (for a short period or for months), there is nothing you can do about it. You can contribute to that project doing things that do not involve the author (such as reporting bugs, answering questions at the forums), but you can’t do anything beyond.
As a consequence the project may experience an inactivity time. Even if you can fix a bug, you can send a patch (or a pull request, for Github lovers) but it will land only when (and if) the author comes back. In the worst case scenario the project will slowly fade away, unable to catch up with another developer (or team). Here comes another huge misunderstanding of the idea behind OSS that I noticed in the users of some projects: the author must continue the work. That’s nonsense! The developers owe you nothing!
When you start an open-source project, it can be for a variety of reasons. Maybe the author just thought it could be a cool idea, he was trying something new or he got bored. It doesn’t matter the reason, but I am pretty sure when the projected started, the author did not sign any contract using his own blood to seal a connection that guaranties he will work on that project for the rest of his life. The same way the project started, it can end, because the author got a new job, had a baby or got tired. That happens.
Complaining is not an option. We can do better than that! If the project is open-source (and the license allows it), anyone in the world can fork it and continue the work. I know that a forked project may not be as strong as the original, but it’s alive at least. If you can gather more developers, the fork may end up being as strong and popular as the original project.
I might be new to all that OSS development, but I thought everyone already knew that.