8

Detailed thoughts on the State of the .NET Foundation · Discussion #60 · dotnet-...

 2 years ago
source link: https://github.com/dotnet-foundation/Home/discussions/60
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Why am I writing this?

For the last nine years, I've served as the Executive Director of the F# Software Foundation. Given the recent controversies, I have had quite a few people reach out to me and ask my opinion or advice on recent discussions surrounding the .NET Foundation. In order to give the most complete opinion possible, I've been trying to do some research on the .NET Foundation, and have seriously struggled with being able to get clarity on its purpose, structure, and governance.

Part of me dreads bringing this up, but as somebody with a lot of experience in non-profit governance and operation, I feel that there are some significant issues at play.

First off - I want to say that I truly want the .NET Foundation to succeed. I also know that the Board of Directors has the best intentions, and that there are a huge number of people putting a lot of effort into the Foundation and its activities. I applaud the effort of everybody involved, and do see it as a very good sign that the Foundation has the potential to be hugely successful. There is definitely motivation and a large, active community - key aspects to bringing long term sustainable success. I also know, from personal experience, that getting these things right is very hard. It's also an aspect of management outside of most developers' typical experience. Non-profit issues are a unique challenge, and I do have a lot of sympathy for the current, former, and especially new Board members and the struggles involved in trying to make things right.

However, when going through the Foundation's documents and website as well as some of the recent communication, I can't help but find myself in a position where I have significant concerns. As things stand today, I find myself unable to honestly recommend anybody put time or effort into the Foundation, or recommend joining as a member. I hate that I currently feel unable to recommend the Foundation. There are far too many red flags that arise when I try to read the available documents. I hope that bringing this to light might help bring forth change, at which time I'd love to be able to revisit my recommendations. I will be listing some concrete ideas on potential changes below.

What is the .NET Foundation really?

There seems to be a large disconnect between the governance of the Foundation and the public opinion of the Foundation's purpose. Members, and even key projects, have been repeatedly surprised by what is happening. I've even spoken with people who were running for Board positions, but who had little to no understanding of how things really work internally.

Much of the recent difficulties seem to center around this as well. There is a large misunderstanding about what it means to join the Foundation as a project. There is little or no clarity from the membership in terms of who is responsible and who has power to actually "do things" in Foundation projects.

This has, unfortunately, resulted in a loss of trust between the Foundation leadership teams and the membership.

In looking through the public material (at least the semi-easily discoverable documents and pages), the following issues stand out:

  • Independence of the Foundation is disingenuous
    • Main site, first element lists "Independent." However, this is by definition false.
    • Multiple "Founding Member" special privileges within the Bylaws:
      • One Director always appointed and controlled by Microsoft
      • Microsoft appointed Director can effectively override "any vote to materially change the Foundation’s Membership Policy, Director Election Policy, Project Governance Policy, or any Intellectual Property-related agreements or policies", and must be present at any vote for any significant change. This means Microsoft controls all key policies and agreements of the Foundation in perpetuity (unless Microsoft decides to change this)
      • Any change to the Bylaws which attempts to change this requires not only a 2/3 vote of the Directors, but also agreement from Microsoft separate from the Microsoft appointed director.
    • In effect, the .NET Foundation is prevented, by design, from being able to self-govern and impact meaningful changes without direct support of Microsoft
  • Lack of transparency w.r.t. governance
    • Bylaws are discoverable for .NET Foundation, but no other documents are public or at least discoverable
    • This is particularly difficult as the Bylaws refer to many other documents, such as the Articles of Incorporation and various "Policy" documents, but those aren't discoverable.
    • Most other software foundations tend to be extremely open. All founding documents, bylaws, Board minutes, etc are typically public record. This should include:
      • Meeting minutes, typically published immediately upon the Board vote of approval.
      • All founding and governing documents available (Bylaws, Articles of Incorp, Corp charter, etc).
      • Examples:

  • Unclear Membership
    • .NET Foundation appears to be a Membership Organization (website lists "Membership" as first item. There are various categories of members, etc.)
    • In order to be a successful member organization, everybody should be able to understand what membership means and does not mean.
    • Bylaws support the suggestion that it's a membership organization, stating "The Board shall adopt a policy (a “Membership Policy”), consistent with the Foundation’s Articles of Incorporation, that defines the rights, responsibilities, qualifications, fees and all other matters associated with membership. The term “Members” means all individuals and entities that qualify for membership under this policy and that execute a Membership Agreement in a form adopted by the Board."
      • This "Membership Policy" is not available publicly, which means there is no way for people to have a formal knowledge of member rights, responsibilities, etc.
      • Typically, membership classes, rights, responsibilities, admission requirements, etc. are all spelled out in the Bylaws themselves, as the Bylaws should be the final source for governance information.
      • Lack of clarity abounds here - What defines a "Member" vs "Project" vs "Corporate Member" vs "Corporate Sponsor"? There are hints about this all on the webpage, but nothing that actually defines this (should be the bylaws). Do "Corporate Members" have voting rights? What's the difference between "Corporate Membership" and "Corporate Sponsorship", especially considering the sponsor page mentions "joining" multiple times and this sits under the Membership topic.
    • Understanding membership is key to understand how an individual can interact with the organization, and critical to setting expectations
  • Lack of public information regarding Projects
    • Bylaws don't define what it means to be a project "within the Foundation", other than they will be "subject to a governance process adopted by the Board (a “Project Governance Policy”)."
    • The "Project Governance Policy" is not public.
      • I suspect this has led to a lot of the recent problems. Lack of understanding about what constitutes "the rights of the Foundation as to the project" are core to multiple recent issues.
      • Projects are also mentioned in the Bylaws in relation to the "Technical Advisory Board".
        • Is this different than the "Technical Steering Group"?
        • If no, why weren't bylaws updated to use same naming?
        • If yes, what is the purpose of both of these groups?
  • Lack of transparency w.r.t. leadership team
    • Bylaws specify a "The officers of the Foundation shall consist of a President, one or more Vice Presidents, a Secretary, and a Treasurer".
      • "Our Team" w.r.t. Officer positions only appears to be listed here: https://dotnetfoundation.org/about/board-of-directors
      • Who is the current President?
      • How does this position differ in rights and responsibilities from the Executive Director?
      • Who are the current Vice Presidents?
      • Who is the Secretary?
      • How are the responsibilities w.r.t. the executive offices being handled now that there is no current Executive Director?
  • The chartered purpose of the Board of Directors is unrealistic and unsustainable
    • The main Board page states: "The board completely runs the .NET Foundation. They decide how the money is spent, what projects join the foundation, what the Executive Director does, what programs the foundation will run or be involved with, what events we’ll sponsor. The board runs the foundation."
    • A non-profit Board should not "run the foundation".
      • The purpose of the Board of Directors in a non-profit is normally about governance, not management.
      • The Board should govern but not run or manage the operations. Governance is about high-level decisions - strategy, overall vision, proper oversight, determining long term goals, approving budgets and reviewing historical goals, and other similar activities. "Running the Foundation" should be part of the day-to-day operations, and overseen by the Officers.
      • Having the Board "run things" leads to disruptions every year as the Board positions are temporary (and in the case of the .NET Foundation, forced to be temporary as there is a two-term limit).
      • Having the Board "run things" also severely limits growth, as the Board, as a resource, is a very small, finite resource
    • Ideally, the Board should govern, and delegate operations to the officers (typically through the President or Exec. Director roles), and through the committees
      • (Small side note: The term "committee" seems to be the .NET Foundation's structure for committees/working groups/etc, but this is not covered in the Bylaws. As the main governing document for the Foundation, something this critical to organization and operation should be spelled out, especially as there are typically conflict of interest issues that can arise here)
    • Putting operational responsibility in the hands of the Board will likely cause burnout on the Board, limit the growth of the Foundation, and also likely cause continued misunderstandings of day-to-day operations and responsibilities

Moving forward

As a very active .NET community member, my fervent wish is that some of these issues can be straightened out before more trust is eroded.

I would like to offer some advice to the Board - Here are some concrete actions to consider:

Prioritize transparency

Please make the governing documents public and discoverable ASAP. Consider publicly publishing meeting minutes, ideally doing so in a timely manner from when the minutes are approved. For most organizations, minutes for any given meeting are, worst case, often approved at the start of next meeting, so if you have a monthly meeting cadence, the minutes are only "one month" behind. This will help everybody have a better understanding of where things stand and where things are moving at any point in time.

Build clarity of purpose

Think about and discuss: "What do you want the .NET Foundation to be?" "What is the Foundation today?" I suspect you'd be surprised at how different the opinions within the Board on this stand today.

Is the goal truly to be "an independent, non-profit organization"?

If so, there will need to be some seriously difficult conversations. The Bylaws, as they stand, prevent this from ever truly being a reality. The good news is they can be changed, but this would require getting Microsoft, as the "Founding Member", on board with any real change. Non-profits thrive when their members are empowered - but that requires letting go of control to accomplish effectively over time.

Update governing documents

The Bylaws really need updating. There is a huge lack of clarity, which can only lead to confusion over time. I don't know who is being used for the current legal counsel - but my guess, by looking at the public information, is that it's a lawyer specializing in corporate law and not one that deals directly with non-profits. Engage with counsel or even the many non-profit support organizations with experience in member organizations, and make sure that the rights, roles, and responsibilities are well defined in your governing documents.

This is especially crucial with respect to Member rights and responsibilities and, in the case of the .NET Foundation, "Project" rights and responsibilities. Projects, in much of the language surrounding the website, is almost its own class of member, but there is nothing in the bylaws that even defines a project.

Bring in the right talent

In order to ease and assist with the changes in structure and governance, I'd also recommend focusing the search for a new Executive Director on finding somebody with experience in non-profit management and governance. They don't have to even be very technically savvy - a good developer does not necessarily make a good executive officer. Look for understanding of non-profit structure and governance. Ideally somebody close enough to the development world to relate, but most importantly, somebody who can help guide you all in making the right choices to future proof the Foundation itself.

And again, clarity of purpose

Finally, if the goal isn't to be "an independent, non-profit organization", or there is no legitimate motivation within Microsoft to allow for change to make it that way, be transparent about this. If the .NET Foundation will forever be largely controlled by a single entity, don't try to hide that, as it will only cause more strife in the long run. It's okay to have an organization structured this way, but being clear as to the purpose will only help members and projects decide if the .NET Foundation is a good fit for them.

Final thoughts

My hope is that the Foundation can succeed. Personally, I'd love to see it as a truly independent organization - community backed and trusted. I'd like to see clarity and transparency brought to the forefront. My fear is that community effort put into this with misguided expectations will continue lead to damage over time. Please consider putting things on the right footing now, before you try to grow or expand.

I also want to reiterate - I know the Board and the community at large has the right motivations, and is putting in a huge amount of effort. I am happy to discuss and help in any way possible, so feel free to reach out as well.

Thank you.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK