Skip to content

Technical Roadmap

Alex Gibson edited this page Nov 27, 2024 · 84 revisions

Introduction

Bedrock’s technical roadmap is a high level overview that maps out planned foundational work for www.mozilla.org. The purpose of the roadmap is to drive technical improvements and new feature development, to help the website better meet organisational needs. It is also a means to surface opportunities for incorporating new tooling to help increase productivity, improve code quality, as well as pay off technical debt so that the website engineering teams can work more efficiently.

Categories

Roadmap work is broken down using a list of predefined categories and priorities.

Category Description
Product support Website features and capabilities to support launching new products and updates.
Operational services Website features that act as operational services to Mozilla, such as the careers site.
Stability / Security Software upgrades & security fixes.
Modernization Adoption of new tools and software to improve code quality, performance, and increase developer productivity.
L10n Improve website L10n capabilities and system workflows.
Infra / Automation Deployments, automation, testing and overall site reliability.
Content publishing Adding new systems and improve workflows to facilitate content creation and independent publication to the website.
Experimentation Improvements to our experimentation software and processes.
Performance Improvements to website performance and page load speed
Analytics Measure the things that matter (accurately).
SEO Ensuring our content is both crawl-able and well understood by search engines. Fixing SEO bugs in SERPs.
Technical debt Paying it off.

Prioritization

Priority Examples
P1 (must have) Deadlines, mandates and system stability.
P2 (should have) New features, capabilities, modernization.
P3 (nice to have) Technical debt pay-off, code quality improvements.

How things work

  • The technical roadmap for each year is represented as a separate view on our GitHub roadmap project.
  • To help schedule work that’s planned, we align work to quarterly start / end dates as targets. Sometimes work might span multiple quarters, and that’s OK. But large epics should be broken down into quarterly milestones when possible.
  • The roadmap is intended to be fluid, so expect things to move around at times. Certain items may have hard dates that are non-negotiable, but others that are not time sensitive can be more flexible and adjusted according to competing priorities and available resources.
  • The roadmap does not represent every piece of foundational work we do. It is intended as a high-level overview of the larger or high impact pieces of work that we want to undertake, so that we can plan for them accordingly.
  • The start / end dates represent a target completion date for items of work. If someone decides to take on an item of work earlier than forecast and finishes it early, then that’s great.

2025

Project board

https://github.com/orgs/mozilla/projects/288/views/1

2024

Project board

https://github.com/orgs/mozilla/projects/228/views/2

2023

Project board

https://github.com/orgs/mozilla/projects/222/views/7

2022

Priority Q1 2022 Q2 2022 Q3 2022 Q4 2022
P1 Stability / Security: Django 3.2 upgrade. Technical debt: Rationalise/scale-back Snippets service Modernization: Client Hints / UA string reduction issues.
Stability + Product support: Firefox v100 bug fixes. Product support: Extend and Improve Contentful Integration
L10n: Contentful l10n support
P2 Product support: Pocket migration. Analytics: GleanJS evaluation. Technical debt: Improve fundraising banner currency handling. Stability: Move interaction with basket to client side where possible.
Operational services: Careers site migration. Stability / Security: Python 3.9 migration Modernization: Responsive image helpers
Analytics: VPN affiliate marketing.
Stability / Security: Python dependency-management standardisation/
P3 Modernization: Front-end framework evaluation. Technical debt: Improve CSS bundling efficiency. Modernization: Evaluate Parcel CSS & Jasmine browser runner. Technical debt: Remove deprecated Protocol components.
Technical debt: Remove legacy FxA Sync flows. Technical debt: Redundant code removal. Modernization: Publish common libs as NPM packages.
Stability: Selenium 4 upgrade. Technical debt: Specify sameSite property on cookies set by JS.
Technical debt: Front-end dependency updates.
Technical debt: TrafficCop backport updates.

Issues / milestones

2021

Priority Q1 2021 Q2 2021 Q3 2021 Q4 2021
P1 Content publishing: Contentful roadmapping. Content publishing: Contentful implementation. Content publishing: Contentful implementation. Content publishing: Contentful home page launch.
Product support: Add Mozilla VPN as a new product surface.
P2 Analytics: Add GA client download ID to stub attribution. L10n: Enable Smartling vendor pipeline. Modernization: Front-end build system replacement. Technical debt: Server-side geolocation improvements.
P3 L10n: 100% completion for Fluent migration. Technical debt: Remove jQuery as a dependency. Modernization: Automatic code formatting (Black, Prettier).
Technical debt: Remove legacy .lang code.

Issues / milestones

2020

Priority Q1 2020 Q2 2020 Q3 2020 Q4 2020
P1 L10n: Migrate global Fluent L10n files. L10n: Activate Fluent pipeline. Migrate core Firefox download pages. Content publishing: Contentful eval & prototyping.
Automation: testing service provider eval & cost savings.
P2 Technical debt: Audit legacy pages for L10n migration / decommission. Technical debt: Functional test suite updates. Modernization: Add JS error reporting to Sentry.
SEO: Implement Schema dot org metadata for all locales. Technical debt: Create simplified download button helper for Firefox.
Analytics: Stub attribution improvements (experimental params, UA string).
P3 Technical debt: Remove legacy Sandstone CSS framework, migrate pages to use Protocol. Technical debt: Remove legacy Pebbles CSS framework, migrate pages to use Protocol. L10n: Fluent migrations. L10n: Fluent migrations.
Technical debt: Refactor FxA macros to Python helpers.

Issues / milestones

2019

Priority Q3 2020 Q4 2020
P1 L10n: Implement Fluent APIs and document workflows. L10n: Publish 1st page using new Fluent system.
Stability / Security: Django 2.2 / Python 3 upgrade. Stability: Selenium upgrade.
P2 Experimentation: Implement Convert 3rd party experimentation tool. Infra / Automation : Move from Jenkins to GitLab for bedrock CI.
P3 Modernization: Re-evaluate browser support matrix and implement changes.

Issues / milestones

(Note: Q1 and Q2 are missing for 2019, since this is when the initial roadmap plan was created. This was also before we used milestones in GitHub).