Governance

Design and engineering work is distributed.
Decision making is centralized.

The three part-time Paragon Leads act as owners and facilitators. They partner with designers and engineers via the #paragon-working-group and the weekly Paragon Working Group Meeting to coordinate work and make decisions on the direction of the system.

Work is cataloged on the Paragon GitHub Project by Paragon Leads and the Experience Team. Work is completed primarily by Engineering Squads in the course of their work and through blended development initiatives lead by the Paragon Leads.

Refer to Nathan Curtis’s Team Models for Scaling a Design System for a more thorough exploration of governance models. The image here is adapted from Nathan Curtis' work.

Part-time Paragon Leads

Product Lead

Design Lead

Engineering Lead

Product Lead

Design Lead

Engineering Lead

vacant

@Gabriel Weinberg

Design resourcing escalation path: @Michael Leary

@Adam Stankiewicz

Engineer resourcing escalation path: @George Babey (Deactivated)

Paragon Working Group

The Paragon Working Group is an informal group of volunteer engineers and designers who meet weekly at the Paragon Working Group Meeting and discuss issues in #paragon-working-group Slack.

Roles and Responsibilities

Product Lead

PRODUCT LEAD (vacant)

  • Supports the strategic direction of the system

  • Aids in chunking of work in GitHub

  • Supports blended development initiatives

  • Serves as a champion and advocate among product leaders.

Technical Lead

technical LEAD @Adam Stankiewicz

  • Directs the architectural roadmap

  • Implements the architectural direction: individually, via blended development, or may escalate to theme leadership to assemble a tiger team.

  • Ensures incoming Paragon bugs are triaged and resolved, as needed

    • Leveraging time from the working group to triage and support the design system.

  • Helping to facilitate Paragon Working Group meeting

  • Ensures engineers are supported in contributing to Paragon

  • Ensures pull requests are reviewed in a timely manner. Any frontend engineer at edX is permitted to perform code reviews at the discretion of the technical owner.

  • May implement new component designs when appropriate

Design Lead

Design LEAD @Gabriel Weinberg

  • Drives the design direction of the system.

  • Supports designers using and contributing to Paragon

  • Helps to facilitate Paragon Working Group meeting

  • Fixes or improves design documentation

  • Triage and resolve design bugs

Paragon Working Group

Paragon working Group (informal group of engineers and designers)

  • Provides feedback and approval on proposed design additions, technical additions, and architectural changes

  • May also assist with the responsibilities of the design owner and technical owner

  • Participate in a support and triage rotation to continue to maintain the design system.

  • Support discussion, questions, and learning about the design system

Engineering Squads

engineering squad

Writing and maintaining UI components is a core part of User Interface Development. We want to foster and encourage a culture of writing components needed by a given team, to a standard level of maturity, and then introducing those components directly into the Paragon ecosystem for sharing and re-use.

This development should be done in tandem with, and under the design and technical guidance of the design team and Paragon Technical Owner to ensure that components are as mature and effective as possible.

  • Squads are responsible for the development of components they need.

    • If a squad does not have the frontend expertise to build a component that they need, they should escalate the need to their theme leadership. We recommend that each theme should have at least one frontend expert. Other options for development include: blended development or negotiation with other squads.

  • Reviews pull requests. Any frontend engineer at edX is permitted to perform code reviews at the discretion of the technical owner.

Squad Designers

Squad designer

  • Identify needed components in the course of squad work

  • Design and document new or updated components or design system features in Figma

  • Support engineers building components and design system features from specs in Figma

  • Identify Paragon components and design system features used in design specifications