Hello all! Welcome to the first of what will be a series of updates sharing where we've come from and where we're going. I am Claire Novotny, and I am 6 months in as the Executive Director of the .NET Foundation. I'm very excited to serve the .NET community and I'm enthusiastic about our plans for the future.
|Membership||We have over 800 members, which is a YoY growth of 100%.|
|Sponsors||We have 5 corporate sponsors, but we need more.|
|Projects||More than doubled projects in the past two years.|
|Community||We have 365 meetup groups, in 66 countries, with over 307k members.|
|Transparency||Yes, we heard you! 😊. We will be posting regular State of the Union (SOTU) updates going forward.|
|Process||We recently hired a company (Virtual, Inc.) to help us with administrative tasks, finance and operations, so this will get better.|
|Volunteers||We have a lot of willing volunteers but realize we need to channel them better. We're working on ways to do that.|
|Budget||Budget is available for the first time to the public. Income of $237k, expenses of $157k.|
First, a bit of background about the .NET Foundation to set the context. The .NET Foundation was formed in April 2014 to foster open development by promoting openness, community participation and rapid innovation around the growing .NET open source platform. The original structure was an Executive Director (hired by Microsoft) and a board (appointed by Microsoft). In 2018, the Foundation's structure was changed to encourage greater community control. Now the community could become members and vote on six directors. A corporate sponsorship program enabled the Foundation's budget to come from other companies (in FY20 less than 25% of the Foundation's cash budget came from Microsoft; the rest was from corporate sponsors and individual members). The goal was to enable the community-elected directors decide the Foundation's next steps: what it should focus on, how it should operate, and how to allocate its resources. We wanted a "working board," directors who could help scale and get things done.
Board, Committees, and Volunteers
March 2019 ushered in the first community elected board. Forty-six candidates ran for six open positions and I was honored to be selected along with five other folks. It was a bit challenging after the election. We had ambitious goals but no clear path or guidance on how to get there. I would characterize this period as "growing pains." Board meetings were ad hoc, and with board members located around the world and with us all having a primary job (the board is a volunteer commitment), it was hard to difficult to schedule across time zones and individual schedules. Additionally, it took some time to document and scale processes that had been handled by individuals to scalable processes that worked across a growing team.
When we did meet, we took a "build it and they will come" approach. GitHub teams was chosen as a way that didn't involve email lists and had the ability to include just members. We set up 8-10 committees and hoped those would be a nucleus for people to self-assemble on. Initially, the committees allowed any interested member to join; there was no structure to how the committees would be run, when they'd meet, or how things would get accomplished. It was assumed that each committee would figure out what worked for them. We initiated discussions in GitHub teams seeking to engage members to help guide the direction of the committees and Foundation. This worked for some committees, like Marketing, but most stalled. The Marketing committee was successful in setting up a process to run monthly newsletters with community input, setting up a process for amplification of content, and establishing a core team to coordinate a calendar.
We streamlined the project onboarding process moving applications out of inboxes to GitHub issues; and increased transparency of the process via the Project Onboarding project board which shows the state of each pending application. We caught up with and cleared the backlog of applications; which are now handled by the .NET Foundation Project Committee who publish their minutes to the Projects Team. Also we created a project leaders Slack channel so .NET Foundation project leaders and maintainers could share experiences and help each other.
We also started the "Project Maturity Model" initiative to try to improve the sustainability and adoption of projects by companies; but abandoned it based on the negative feedback from the community, as it was felt onerous with little guaranteed reward for project maintainers, and it was a "surprise" proposal that members felt we had not consulted with them before launching what appeared to be a finalized process.
In this period, we had several sponsors join in addition to Microsoft: Progress, AWS, DevExpress, and Endjin. We had more funds available for programs but no process for distributing.
We also didn't have a clear picture of our budget, so we understandably had trouble spending on programs and sponsoring events. Throughout this period of growing pains, the Foundation struggled with other processes too: project and member applications. Supporting projects and onboarding new ones is one of our core functions. However, our volunteers could only help in spurts with processing these project and membership applications. We needed to improve our operations.
Improving Operational State and Transparency
Starting in January, when I began as Executive Director, I started a series of assessments and projects to improve the operational state of the Foundation. To grow, we had to improve the foundation of our Foundation (you can laugh/groan here). We targeted three key areas: the website, operations, and finance with an overriding goal of improving our overall transparency.
One thing we heard consistently was that no one knew what the Foundation is or what it does, and how to get involved. We engaged a vendor to redesign the information architecture of the website to surface the information we already had. At the same time, we wanted to make it easier to update the site using Markdown and used Dave Glick's Statiq.Web framework to statically generate the site. We still have a lot more content that needs to be added. But since launching in mid-May, we've had many community contributions to the site (the old site rarely got any). Many thanks go out to contributors and we always welcome more!
In parallel, we evaluated and brought in an outside management company, Virtual, Inc., which has experience in helping to run organizations like the .NET Foundation. Virtual was tasked with transforming our processes and operations, and handling all financial aspects, including budgeting and reporting. We had a preliminary budget at the July board meeting, where, for the first time, we saw a balance sheet and budget breaking out our expenses and income. This is also now available to all on our website and it will be updated quarterly.
Scheduling meetings, taking minutes, and setting up repeatable processes is hard. To ensure consistency in scheduling, minute-taking, and publishing, we are using a PM from Virtual to handle these tasks.
Committees have been a challenge to get operational. We've tried several approaches to getting traction but have learned that it's most effective to assemble a committed core group of community members who will show up to regular meetings and "get stuff done." Each committee shows how folks can get more involved; for example, the marketing committee describes how to join on the dotnet-foundation/wg-marketing repository. Non-committee members (the rest of the membership) are encouraged to participate in discussions on the GitHub teams. This is the best place to share ideas, volunteer to help, or provide feedback on open issues. As schedules for meetings became more predictable, we've seen an increase in community participation. The Outreach, Marketing, and Project committees all have full attendance and we're working to define how the Membership committee will operate.
We know it can be hard to keep up with what's going on with the .NET Foundation. We're taking several steps to improve transparency and outbound communications:
- For Bylaw, policy, and important announcements, we've created an announcements repo, which will only contain issues with links to where discussion should take place. This will make it easier to watch the repo and be alerted.
- Financial statements will be published on our website quarterly after approved by the board.
- We'll schedule a quarterly "all hands" meeting with the board and committee chairs that will be broadcast to the public where we'll review current activities and take questions. The first one of these will take place at end of August to give the new board a chance to get up to speed.
This all brings us to today. As I write this, we have 17 amazing candidates running for Foundation's next board and voting is underway. There are a number of things either in-progress or to-be-undertaken shortly:
- Creating and maintaining an inventory of member projects in a system hosted by Virtual Inc.
- Reviewing license types supported by Foundation projects.
- Determining project benefits and support.
- Scoping out "Seed" projects – projects that are interested in Foundation membership but don't yet meet the criteria.
- Scoping out "Forge" projects – projects that are determined would be useful to exist but don't already exist in a desired form.
- Outreach [Minutes]
- Focusing on supporting and amplifying virtual meetups.
- Evaluating proposals to support other events.
- Running a .NET Virtual Meetup group to enable meetup groups to stream live and to promote the group across Foundation properties.
- Marketing [Minutes]
- Evaluating our corporate sponsor benefits to build value. Potentially earmarking sponsor funds for specific projects in exchange for benefits like logo placement.
- Improving outbound communication.
- Looking at offers for our members, like video training.
- Identify co-marketing opportunities with our corporate sponsors.
- Complete the event sponsorship request criteria.
- Complete the marketing proposals work so community can request marketing funds.
- Moving the membership system to a Virtual-hosted system that tracks renewal dates and removes the sign-in friction many users experience today.
- Track our corporate sponsors in a membership system so we can follow the relationship and issue invoices.
- Defining what it means to be a member of the Foundation.
- Refining the Director Election campaigns.
- Overseeing the Director Election process.
- Working on member benefits that we'll share with everyone soon.
Now that we have a budget and forecast, the Board can allocate funds to the committees to take concrete actions in support of our mission. We invite you to get involved so that you influence how these funds are spent.
Longer term, I have a vision (and I'm thinking big!) where the .NET Foundation can host a large endowment contributed by our sponsors (>$10M) that would enable us to allocate funds to member projects. Last year, this seemed impossible, but over the coming year, I believe we're moving much closer to making that possible.
The .NET Foundation today is in a much stronger position than we were last year. With new processes, better transparency, and more people than ever volunteering, we know that this will be our best year ever. Please join me in supporting the .NET Open Source ecosystem.