Introduction to Roadmapping
Format
This is a short writing/thinking exercise. Best done with a partner or small group, but can also be done alone.
Target Audience
Open science project leads and Mozilla Study Group leads seeking to attract and grow communities of contributors around their projects
Materials
- Computer
- Your favourite browser
- GitHub account
- Open source project on GitHub
Introduction
When you're starting on an open source project, it's important to record what your community (this might just be you at the beginning) decides to work on! A roadmap organizes the tasks that nees to be done on a project around milestones. This helps potential contributors understand the current status of your poject and where it's going next.
A roadmap can also express your vision for the project. Make sure you clearly state why you are implementing certain things to get people excited about joining.
This can be as simple as a collection of issues in your issue tracker, or a detailed timeline complete with milestones. It's up to you to choose what works best for your community! At the Mozilla Science Lab, we break our Roadmaps into three sections:
Roadmap Structure
If your roadmap is more than a list of issues, we recommend three sections to welcome new contributors.
1. Project Mission & Summary (optional) - Welcome and orient visitors to your project. Users may have been linked directly to the Roadmap, it's important to help them understand where they are.
2. How to Get Involved (optional) - New contributors might want to jump in right away! This points them to parts of the project they can immediately work on.
3. Timeline - The star of the roadmap!
This section organizes tasks needed to complete your project around milestones, mapping out what you're working on now and where it's going next. This can be as simple as a list of issues in your issue tracker.
Examples
Steps to Complete
-
Add your "Project Mission & Summary"
Use this space to orient and welcome new visitors. Start with the project name along with your mission statement or a clear summary of what you are doing. If you've already written a README, you can adapt the summary and add a shorter version here.
For more information on writing a project mission statement or summary, see the Writing a README Exercise.
-
Write "How to Get Involved"
New contributors might want to jump in right away! This points them to parts of the project they can immediately work on.
-
Pick Milestones
Depending on your project, milestones can vary from development goals to events. Here are some milestones you can use:
-
Project Status Goals
Are you working to implement your MVP (minimum viable product) or a specific feature? Your milestones can be completing a feature or a release.
examples: Get your project on Collaborate, build an MVP
-
Dates
If you have deadlines or a set time to work on this project, use this as a milestone!
-
Events
If you'll be sprinting or demoing your project at an event, it's helpful to know what you'll need to complete before and during the event.
examples: Mozilla Science Lab Global Sprint prep work, MozFest sprint tasks
-
Short, Medium & Long Term
When working with volunteers, it can be difficult to set hard deadlines. When unsure, you can use short, medium and long term milestones.
Short term - things you are working on now
Medium term - things contributors can start working on that is not currently being worked on
Long term - you can describe where your project is going here
-
-
List Tasks to Complete for Each Milestone
Create an issue for each task. Take time to describe the task along with why you are doing this task. This will strengthen the vision for your project and help others get involved.
Tips for issues: Include as much context and help as possible! Add links, mention specific people involved by their username (i.e. @acabunoc). Articulate the problem or idea along with solutions and next steps.
Link to these issues in your Roadmap under each milestone. Congrats! You now have a Roadmap with tasks.
Glossary
Roadmap
A document outlining the schedule of work to be done on a project.
Milestone
An event or state marking a specific stage in development on the project.
Follow-up Resources & Materials
- Write a README. Instructions here.
- Create a Contributing.md file for your project. Instructions here.
- Write a Code of Conduct for your community. Instructions here.