Publishing the Backend Roadmap
2019-02-15 — General — Neil Johnson
Good people, 2019 is a big year for Matrix, in the next month we will have shipped:
- Matrix spec 1.0 (including the first stable release of the Server to Server Spec)
- Synapse 1.0
- Riot 1.0
What is a roadmap and why is it valuable?A roadmap is a set of high level projects that the team intend to work on and a rough sense of the relative priority. It is essential to focus on specific goals, which inevitably means consciously not working on other initiatives.Our roadmap is not a delivery plan - there are explicitly no dates. The reason for this is that we know that other projects will emerge, developers will be needed to support other urgent initiatives, matrix.org use continues to grow exponentially and will require performance tweaking. So simply, based on what we know now, this is the order we will work on our projects.
Why are we sharing it?We already share our day to day todo list, and of course our commit history, but it can be difficult for a casual observer to see the bigger picture from such granular data. The purpose of sharing is that we want anyone from the community to understand where our priorities lie. We are often asked ‘Why are you not working on X, it is really important' where the answer is often ‘We agree that X is really important, but A, B and C are more important and must come first'. The point of sharing the roadmap is to make that priority trade off more transparent and consumable.
How did we build it?The core contributors to Synapse and Dendrite are 6 people, of 5 nationalities spread across 3 locations. After shipping the r0 release of the Server to Server spec last month we took some time to step back and have a think about what to do after Synapse 1.0 lands. This meant getting everyone in one place to talk it through. We also had Ben (benpa) contribute from a community perspective and took input from speaking to so many of you at FOSDEM.In the end we filled a wall with post-its, each post-it representing a sizeable project. The position of the post-it was significant in that the vertical axis being a sense of how valuable we thought the task would be, and the horizontal axis being a rough guess on how complex we considered it to be.
We found this sort of grid approach to be really helpful in determining relative priority.After many hours and plenty of blood, sweat and tears we ended up with something we could live with and wrote it up in the shared board.