
The last time I wrote about the .NET Foundation was in the context of the “Project Maturity Ladder” proposal in late 2019 - a well-intentioned, but ultimately not really appropriate measure aimed at trying to increase the adoption of best practices among member projects.
The .NET Foundation has its heart in the right place - widening the range of “acceptable” OSS beyond what is produced in Redmond. I want that too. Everyone does, most of all the developers who aren’t able to use that OSS today because of the historical conservatism of the .NET ecosystem as a whole when it comes to OSS.
The current proposal puts the .NET Foundation as a centralized certification authority for the entire .NET ecosystem. That’s heavy-handed and will ultimately undermine the .NET ecosystem’s ability to become “bigger than Microsoft.”
The key takeaways from that saga, which is still recent in the minds of many maintainers who are participating in this week’s public outrage against the Foundation:
- The .NET Foundation did not build any agreement with member projects before introducing the maturity ladder proposal, so it came as a surprise to its member projects;
- The .NET Foundation appeared to be pursuing some different priorities than those of the member projects itself, the former pursuing continuity of business and professionalism of the projects whereas the projects themselves are much more focused on supporting themselves and reducing costs; and
- In general, the .NET Foundation’s top-down approach to trying to manage the ecosystem wasn’t really aligned with maintainer’s expectations (set by the Foundation itself years earlier) of a bottom-up, collaborative federation of projects. Too much Cathedral, not enough Bazaar.
I issued a warning at the time that going down this road of treating member projects like they’ve automatically agreed to whatever the Foundation leadership decides to do by the virtue of joining it will lead to misalignment between the two groups of stakeholders. In other words, agreements have to be constantly renewed among the members - otherwise there will be less cooperation, less trust, and a lot more public push-back.
Two years later and it’s clear that the .NET Foundation did not learn these lessons.
I’m going to address this in three parts:
- Summary of the current kerfuffle;
- Paths forward for the .NET Foundation and its projects; and
- Aspirations for the .NET OSS movement.