There are fewer contributors to CNCF projects than there were a few years ago. During that time, there has been an increase in the number of projects in the CNCF. I’ve been wondering what the data can tell us about what’s going on. Here’s what I’ve found from my preliminary review of the data.
Note | A decrease in contributors is neither a good or bad thing. We would need to dig deeper to understand the impact across multiple projects at various points in maturity. This post is looking to understand what happened to the contributors rather than any impact on projects. |
Contribution Measurements
Figure 1 shows the increase and then decrease in global contributors to the CNCF across all projects. As you can see, the numbers increased until 2020 and decreased after that.
What Is A Contributor?
CNCF contributors are more than those that write code. Here are some things one can do to be considered a contributor that are measured:
Write code or documentation (viewed as commits)
Create an issue on a CNCF project (e.g., to ask a question or report a bug)
Comment on an issue or pull request
The CNCF has recognized that there are many ways to contribute and captures some of that. From the person taking meeting minutes to the person writing the code. Capturing this is imperfect, at best. For example, the person capturing meeting minutes in a Google Doc is not captured. But, it’s recognized which is a good thing.
The numbers are down across all categories of measured contributors.
Numbers That Have Not Decreased
Despite contributors being down, some numbers are relatively level. The number of pull requests, the number of commits, the number of reviews, and the number of contributions have remained relatively level. This means fewer people are producing the same approximate level of output.
A level output of contributions while the number of projects increase means there is a decrease in contributions per project.
Per Project Numbers
The per project numbers are all over the place. Here are a few examples from graduated projects:
Kubernetes has approximately level contributions while the number of contributors has gone down over time.
Helm saw a massive overall decrease when the common charts repository was deprecated. Those contributions went to distributed chart repositories that are not part of or tracked by the CNCF.
Harbor had more contributions in 2023 than 2022 while contributors have gone down each of the past 3 years.
Vitess contributions are way up while the contributors are just below level.
By Geography / Country
There is a big difference in change by location. Here are changes in the four countries that have contributed the most between 2020 and 2023.
Country | 2020 | 2023 | % 2020 Level |
---|---|---|---|
United States | 7,820 | 4,230 | 54% |
Germany | 1,960 | 1,580 | 81% |
China | 1,910 | 1,310 | 69% |
India | 1,890 | 1,350 | 71% |
While numbers are down globally, they are especially down in the United States.
By Company
The number of companies contributing to the CNCF has gone down, as well.
Company contributions have decreased just like contributors. This means it’s not just contributors per company that’s decreasing but the total number of companies contributing is going down.
Along with this graph, devstats records a developers statistic. The developers statistic stayed relatively flat while the companies went down. This developers metric staying level does not mesh well with the contributors and commiters metrics going down. My best guess is that this has to do with where the data is coming from and how it’s tracked.
Market Changes
Devstats can only show part of the picture. It doesn’t measure the macroeconomic picture or the technology changes across the industry. Between 2020 there were a number of major things that have happened and are worth looking further into.
COVID
Venture capital funding decreasing and shifting to AI
Section 174 (US Tax Law Changes)
End of the zero interest rate period
Changes to the startup landscape
Productization and sustainability
These are all very much interrelated. For example, the rise of AI has led to a shift in focus for VCs. I’m now told that every startup that wants to get a round of VC funding needs to be doing something with AI.
There are some observations:
When COVID happened, there was a large focus on technologies to do things remotely and digital transformation. This was an application level focus which is different than the infrastructure level focus for cloud native technologies.
The rise of AI has caused companies large and small to look at how to add AI into their stack. This is from the chips needed to fuel AI to the integration into every app and operating system.
While cloud native technologies were taking off, there was an influx of VC funding and new startups. Some of those companies have been purchased and others have closed down. VC funded startups are now focused in different areas as cloud native isn’t as interesting.
Section 174 tax code changes have had an impact on company investing in R&D. Consider where companies will invest the resources they have. Would it be in upstream open source or their own money making products?
0% interest rates fueled spending in open source and new technology in general. When that ended, it had an impact across the board.
Companies don’t have their developers spend time on technologies out of the goodness of their hearts. At some point, those companies need to get a financial return. This is in the form of vendors selling products and services or in the form of adopters using technologies to their benefit. Once open source technologies become stable enough, a focus shifts to being sustainable.
Conclusion
My conclusion is that the shift in contributors is largely due to the larger market changes and due to companies shifting their focus to making the business side of this software work.
None of this covers if the projects are healthy with the reduced contributor numbers. Sometimes a shift in focus can have an impact on the sustainability of the projects without the businesses that rely on the software noticing. That’s a different topic for another post.