The monthly meeting for June 2022 took place on June 10. The following Foundation staff and D contributors attended:
- Walter Bright
- Iain Buclaw
- Ali Çehreli
- Martin Kinkelin
- Dennis Korpel
- Mathias Lang
- Átila Neves
- Razvan Nitu
- Mike Parker
- Robert Schadek
The purpose of this meeting was to revise the latest draft of the Vision Document. I don't have a whole lot to summarize, as the document itself will reflect what we discussed, but I will provide some background for those who haven't been following along.
We first started discussing a new vision document last summer. This was a direct response to people bringing up "a lack of vision" in the forums. It's one of those things all of us would like to have, but there's always something that takes higher priority. So I put it on a meeting agenda so that we could get something started.
For a little while, Andrei used to post a kind of vision document to the D Wiki twice a year. It included a list of items showing some of the progress made in the previous six months, and a list of goals to accomplish for the next six months. I thought we should do something different, as that's more of a task list than a vision.
My initial concept was a living document describing what Walter and Átila were each focused on, followed by a list of things they intended to do in the future, and a list of things that would be nice to do in the future, resources permitting. These lists would be accompanied by potential tasks contributors could choose to take on in order to make the most impact.
I asked Walter and Átila to send me a write up of the things they were focused on. I would take that, write up the rest of the document, and then we could revise it and release it.
It's an understatement to say we took our time. The vision document was low on the priority list for each of us, and there was always a higher priority task to get done. That said, it was still on my mind. And I began to reconsider the format.
I realized that the format we had was just an evolution of Andrei's version of the vision document. There was no "high-level" vision, no overarching goals. So at our monthly meeting in February, we scheduled a separate meeting to focus on what I referred to as a "vision statement" (you can read about it in the summary of the February meeting).
We brainstormed a number of goals, some high-level, some low. My task after the meeting was to take this list of ideas and craft it into a coherent vision statement. I would put this statement (a paragraph or two) at the top of the document, and follow that up with three sections: Current Focus, Future Focus, and Wishlist.
Eventually, I decided that version of the document wasn't going to cut it either. We need more than just one or two paragraphs stating high-level goals. We need a list of high-level goals and details describing what they mean. So at our May 2022 meeting, I proposed that our next monthly meeting be devoted to finalizing that list of high-level goals.
The June meeting
Before the meeting, I had to come up with the initial list. I took the brainstormed ideas from the vision meeting, sorted them into categories of high-level goals, and fleshed them out with definitions and examples.
At the meeting, everyone provided feedback on the language, the level of detail, and the existing categories. We added a new category, cut some things, added some information in existing categories, and had good discussions about the language, the standard library, the ecosystem, and the community.
My task after the meeting was to make all the suggested revisions. I expect to finish that this weekend. I'll then submit it to the others for a final round of feedback, and I'll ask them to make it a top priority so that it doesn't fall out of sight. I expect we'll have this portion of the document finalized some time next week.
The next step is to add the sections for the Current Focus, Future Focus, and the Wishlist. I've also decided to add a Contributing section, listing specific tasks contributors can carry out, rather than including them in the other sections.
I want to make it clear here that none of us involved in these meetings or in the core development and maintenance of D are oblivious to the complaints about lack of vision or bad management. All of us want to do what we can to turn things around. People will always find something to complain about, but we all want to see the day where there are no grounds to complain about a lack of vision or management.
I'll be talking a little about this in my DConf talk, but we are actively looking at ways to improve the situation. We want to start by focusing on the community and their contributors. As a few examples of what I mean, we want to:
- improve the response time when services fail (e.g., code.dlang.org or forum outages)
- enhance the new user experience
- ensure that everyone can easily learn who is responsible for what
- make contributing less daunting
- create the conditions for contributors to feel their efforts are worthwhile
- establish a framework that allows contributors who require or prefer guidance to know where to direct their efforts and, critically, provides a designated point of contact for follow up
The PR and Issue Manager positions were an early step in that direction. The ongoing plan for the foundation to take over responsibility for maintaining services in the ecosystem is another step in that direction. Our future plan to establish an ecosystem management team will be the next step in that direction.
Getting to where we want to be will take time, and time is a resource none of us have a lot of. The further along we get with things, the more resources we'll have to take us even further.
Almost all of the real work is happening on the shoulders of volunteers. Vladimir Panteleev and Petar Kirov are working out the action plan for the server migration and will subsequently be involved in admin operations, all on their own time.
The members of the ecosystem management team will be volunteers, people who will donate their free time to implement task lists in line with the vision document, find volunteers to carry out those tasks, and provide the support and follow up needed to see the tasks to completion.
There are very few people getting paid for the work going on here. Razvan and Dennis are getting $25,000 a year each for their positions as PR Managers, funded by Symmetry. I get $1200 per month, and Max $1000 per month, directly from the D Foundation's general fund. Beyond that, we pay bounties for blog posts (and in the future, YouTube content), fund the occasional contract, and have provided scholarships for students who focus on D projects for their academic work. I say this because right now we are at the limit of what can be funded for regular pay. There is room for a few contracts still in the work fund, and we continue to pay bounties, buy contributor rewards, etc, but there's nothing available for adding more regular positions.
Everything that exists in the D ecosystem was built by volunteers. In the absence of more funding, that's how it continues to be. It all requires volunteers to maintain it. And given how much we've grown, it requires volunteers to manage it.
Some people may not be happy with the vision document once it's published. I would love it if everyone is, but I expect some people will find it lacking. That's one of the reasons it's intended to be a living document. As time goes by, we'll revise it as necessary. That includes not just changing the current focus, or future focus, or adding and removing goals, but adapting it to meet the needs of our contributors.
The vision document is not a roadmap with designated stops along the way. It's not a checklist of milestones. Our intention is that it serve as a general guide for self-motivated contributors to decide where to direct their efforts, and for volunteer managers to draw up more detailed task lists for those contributors who need a little more guidance.
I'm sure someone will ask when it will be published. I'm still holding to my promise that we'll get it done before DConf. My original plan was to wait until the entire document was finalized, but I now intend to publish the high-level portion once the final draft is approved, then add the rest to it at some point in July.
In the meantime, I'd like to remind everyone of things you can do right now to contribute:
- notify Razvan or Dennis that you are available to fix bugs and what kind (beginner level, compiler, Phobos, etc)---though Razvan is on vacation right now, so you're probably better off contacting only Dennis until after July 1
- make a forum post about any old Bugzilla issues that are still bothering you, or tweet about them with #DBugfix
- contribute to a D project that you use, or would like to see succeed, by reporting and/or fixing bugs
- contribute a blog post to the D Blog
- write a post on your own blog and let me know about it so that I can share it
- post regular update tweets about your current D project with #dlang, or share it on /r/programming if it's in a usable state
At the very least, you can always contact me for ideas on how to contribute (email@example.com). I'll be happy to throw some at you.
The theme of my DConf talk is "it takes a village", because it really does. We're working to upgrade our village to a township, but we can't do it without help. We're always thankful for everyone who contributes in ways large and small, and we hope that comes across more clearly as time goes by.
I ask your patience as we continue to take our baby steps toward the future.