The Open Source Software Life Cycle

Open source projects come and go over time. A project may rise from obscurity to become the hottest thing, and then, in a few years, go back to obscurity. Before betting on an open source project for your next solution, you want to make sure that project will be around for a while. With most open source projects using Git as their source control system, it is easy to grab the raw data from projects and analyze their activity over time.

We have found it useful to model these projects with a three stage life cycle. The three stages are: Niche, Mainstream, and Inactive. Projects start in the Niche stage, where they are developed by a small core team for a relatively small audience. Some projects, perhaps with backing from a large company, break out into much larger and more popular projects, moving on to the Mainstream stage. Eventually, Mainstream projects may drop in contributions and popularity, either superseded by new projects or abandoned by their authors. These projects are considered Inactive, even though a small amount of maintenance work may continue. Mainstream projects may have a less dramatic decline, where they return to being more of a mature, but Niche project. Niche projects may stay in the Niche stage indefinitely or eventually be abandoned by their developers.

From a project risk perspective, Mainstream projects have the smallest risk of being abandoned. However, for some more specialized applications, only Niche projects are available. Also, Niche projects may be more focused on a specific domain, lighter weight, and experience less churn on their public interfaces. We do not recommend that you build something new on top of an Inactive project, unless you are willing to take over the maintenance yourself.

We hope this view of the open source project life cycle helps you frame your discussions when selecting a project. In future blog posts, we will talk about other considerations when building on open source.