-
Notifications
You must be signed in to change notification settings - Fork 918
Technical Roadmap
Alex Gibson edited this page Dec 6, 2022
·
82 revisions
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.
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. |
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. |
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. |
Some notes about how things work:
- To help schedule work that’s planned, we set quarterly milestones 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 tables below don’t represent every piece of foundational work we do. They are 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 quarterly milestones 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.
Priority | Q1 2022 | Q2 2022 | Q3 2022 | Q4 2022 |
---|---|---|---|---|
P1 | Analytics: Google Analytics 4 migration. | |||
P2 | Analytics: 1st party analytics (plan). | Analytics: 1st party analytics (implementation). | ||
Analytics: Product attribution (audit) | Analytics: Product attribution (standardize) | |||
Content publishing: Contentful CMS as code. | ||||
P3 | Modernization: Migrate from GitLab to GitHub Actions (site map generation) | Modernization: Migrate from GitLab to GitHub Actions (L10n pipeline) | ||
Technical debt: Migrate away from Sass @import statements. | Privacy: Remove user tokens from newsletter URLs. | |||
Technical debt: Simplify image macro logic. | L10n: Translation bar. | |||
Stability: Front-end dependency bumps. | Security: Tighten up CSP. |
- Q1 2023 https://github.com/mozilla/bedrock/milestone/34
- Q2 2023 https://github.com/mozilla/bedrock/milestone/35
- Q3 2023 https://github.com/mozilla/bedrock/milestone/36
- Q4 2023 https://github.com/mozilla/bedrock/milestone/37
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. |
- Q1 2022 https://github.com/mozilla/bedrock/milestone/30
- Q2 2022 https://github.com/mozilla/bedrock/milestone/31
- Q3 2022 https://github.com/mozilla/bedrock/milestone/32
- Q4 2022 https://github.com/mozilla/bedrock/milestone/33
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. |
- Contentful project board: https://github.com/mozilla/bedrock/projects/30
- Q1 2021 https://github.com/mozilla/bedrock/milestone/26
- Q2 2021 https://github.com/mozilla/bedrock/milestone/27
- Q3 2021 https://github.com/mozilla/bedrock/milestone/28
- Q4 2021 https://github.com/mozilla/bedrock/milestone/29
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. |
- Q1 2020 https://github.com/mozilla/bedrock/milestone/21
- Q2 2020 https://github.com/mozilla/bedrock/milestone/22
- Q3 2020 https://github.com/mozilla/bedrock/milestone/23
- Q4 2020 https://github.com/mozilla/bedrock/milestone/24
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. |
- Fluent project board: https://github.com/mozilla/bedrock/projects/21
- Convert: https://github.com/mozilla/bedrock/issues/7508
- Browser support eval: https://github.com/mozilla/bedrock/issues/7389
- Django 2.2: https://github.com/mozilla/bedrock/pull/7196
(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).