Continuing where I left off earlier this week I wanted to talk about our tooling, specifically in the capacity of discussion and organization. If you've spent any time on the RFC tracker for GitHub or in GitHub Issues for Rustc alone, you'll notice that the tooling is lacking. We have multiple things in flight being worked on, with no way to see what is. You just need to know what people are working on. We've got discussions filled with thousands of comments all along the same line of I agree with this or here's what I think and all saying the same thing as one emojis are not consensus and two we have no idea how to see how people voted and why.
Our tooling is broken or better put we've outgrown our tools. We need better tools that suit our needs in order to better service our community. Now I don't want us to go building a whole new set of tools yet before exploring viable options beforehand. In fact it looks like GitHub is also considering these same questions and challenges we're facing currently:
It looks like it might be worth our time to talk to Devon Zuegel who is running that project and see if we could somehow get GitHub to expand it's feature set. Why? Because making new tools for specific purposes is time and cost consuming. On top of that migrating to some other platform from one we've been established on is incredibly hard. I'd say that building new tools to suit our purposes would be a last resort as splitting discussion and planning away from a single platform is kind of annoying, for example using GitHub with JIRA and having another tool do CI/CD.
What exactly do we need though out of our tools to help with our Governance and Sustainability? The list below is non exhaustive but:
- The ability to have discussions for RFCs that isn't an issue tracker format (internally GitHub Issues and PRs are the same w/ a few differences). In such a way that we can have discussions, vote, and see information about the people voting, i.e. is this someone who just came to Rust or have they been a contributor for over 5 years
- Project management tooling (not tickets) to see what people on the project are working on and what it's status is (blocked, completed, etc.), what's on the roadmap, what's being planned next, abilities to discuss things etc.
- Better searching (sorry but GitHub search is essentially useless even if you know the API like I do) to quickly find things
- More advanced issue tracking such that you can link issues together
- A bin of things that were started but not completed yet and tabled for a bit. A visual heatmap here would be a killer feature
- Ability to stop people from opening an issue before certifying they at least took the time to look for a duplicate to help stem the flow of issues being reported
Michael isn't this JIRA like? Well yeah when it works and you can navigate it, but not all of the things I brought up are in JIRA. The lack of good design really damages the ability to search anything or look up answers and for large open source projects that ability is essential. If GitHub spent the time polishing up and expanding issues it'd help a lot of the pain points we have.
I think some of the ideas mentioned in "The Hard Parts of Open Source" are worth considering for our tooling and if you haven't watched it, it's an amazingly well done talk and something to keep in mind as we go forward:
We could also use better software for our discussions outside of GitHub. Reddit comments can be hostile in nature (I don't like this downvote!) even if intent wasn't, our Forums lack threading, and overall I think most of the current existing ways of communication foster unintentional hostility because it's easier to misinterpret something as mad or hostile due to the lack of well seeing people, and that talk covers this.
There's a lot of tooling we need I think to succeed and I think it would be worth our time investing in the infrastructure to better facillitate planning and communication so that we can see the best in each other (when we act in good faith) and continue with the technical excellence, wonderful community, and good design decisions we're known for.