Introduction to Roadmapping

This activity is designed to help you write a Roadmap for your open source project or Mozilla Science study group.

For beginners

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

  1. 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.

  2. 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.

  3. 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

  4. 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