Factors for Sustaining an Open Source Project

When I was young and naive, working on open source project was just writing code to me. Nowadays, it means much more than that. No doubt, there are many geniuses in the world, who create so many amazing open source software projects, but to sustain those projects going forward, I think we can't rely merely on raw talent. To sustain a project going forward, there are quite a few intertwining factors -- hence the order I mention them doesn't really matter.

The first factor is acquiring new talents, building a pool of people that have the skill and willingness to work on a particular project. When a project is young and exciting, it's probably not too hard. But when a project becomes mature, it might be perceived as uncool and harder to get new talents.

The second factor is having good governance. This is easier said than done. Having any governance is better than no governance, having bad governance is detrimental to project in the long run. A good governance is crucial to enlarging community -- hence important to both acquiring new talents and users. For open source software this probably means clear document on how the project is run, the path to reach the top for the ambitious, clear guide on how to contribute etc.

The third factor is commercial interest. It's absolutely not a shame to make money from open source software. On the contrary, I would be very happy to see people use open source software to make money in ethical ways. On individual level, people need to pay their bills after all. On organisational level, a company needs return for its investment.

The fourth factor is tooling. That includes communication channels, review tools, infrastructure and so on and so forth -- anything that would affect how people cooperate.

The fifth factor is engaging with upstream and downstream. Work with them, don't suddenly introduce intrusive / controversial changes or incompatible breakages. Be nice to them and they will be nice to you.

The project I work for used to suffer quite a bit for lacking everything I mentioned above. Luckily it survived. But it's not yet all perfect -- there are quite some annoyances waiting to be fixed in governance and on boarding new talents. The good thing is that the community is aware of those road blocks and trying actively to remove them.