2021-09 Committers Survey Results

Core Contributor Committer Survey (9/2021) Results

A survey was run over the first two weeks of September 2021, and asked the 15 members of the Committer pilot program questions in three categories: Overall Program Satisfaction, Declaration of Commitment to the Program, and Platform Tech (focusing on Boundaries, Extensions, Events, & Standards). Results are summarized in this doc; we did not look at how individuals answered any particular question, but rather at what the broader themes were.

At a glance:

  • 14/15 Committers responded

  • Program NPS of 72

  • 12/14 feel they are sometimes or frequently able to work faster as a result of Committer status

  • 20 hour per month contributions:

    • 4/14 say they do not contribute 20 hours/month

    • The rest say they are sometimes or frequently able to

    • The majority of the 20 hour time is spent writing, reviewing, or merging code; a small handful of hours is additionally spent on working groups, communications, & documentation

    • Average 3-5 OSPR reviews per month

      • A few indicated they also review edX-authored PRs & didn’t count those as OSPRs

Deeper Dive: Overall Program Satisfaction

Question: What did being a Committer enable you to do?

Lots of disparate answers here, but all very positive.

  • Iterate faster by not having to wait weeks on reviews & merges

  • Sense of satisfaction and respect at being granted ownership & being seen as an authority for the repos I have access to

  • More motivated and empowered to help out the broader community; pulled in more frequently to OSPRs (positively)

  • Seen as a partner with the edX.org organization: I have a more direct line of communication with edX & my technical decisions are listened to and respected.

Question: What could be improved about the Program?

Lots of answers here ranging from broad to actionable, critical to gentle. Themes are: Onboarding/Documentation, how edX blocks progress, Committer ownership, and inter-Committer coordination.

  • Onboarding of Committers needs to be smoother, with clearer, advertiseable criteria for joining, clear onboarding steps, training courses that don’t include edX-specific language like “OGSP”, and possibly a Committer-specific course covering topics related to “how to be a good maintainer” (beyond just knowing the codebase)

    • Similarly, how can we do a better job documenting potential edx-platform failure modes? For example, what do I do when e2e tests fail on a branch I merged?

    • How do I know when to merge?

  • Product review is the single biggest blocker. More resourcing/attention there is desperately needed; this continues to be a source of frustration.

    • Similarly, edX’s business needs rather than overarching platform needs seems to be the biggest hindrance to a healthy community

  • Can we narrow down ownership scope of edx-platform, perhaps by djangoapp?

  • How can we increase Committer write/review access to more repos (called out: ecommerce, discovery, analytics, frontend-*, edx-platform).

    • Similarly, there is only 1 Committer on many repos, which makes getting review from edX just as hard as it is without being a Committer

  • Theme: Coordination of Committers with one another

    • Can we somehow expose what all Committers are working on, perhaps a board, so we can coordinate efforts?

    • Can we surface & advertise statistics around how Comitters are contributing?

    • How can Committers communicate more effectively, especially outside of working groups?

    • How can we get Committers more involved in both each other’s work and the community’s (particularly open PRs)?

Question: Any other thoughts (open-ended)?

  • I enjoy the program, and feel that edX’s investment in an Open edX team has greatly improved the overall experience

  • Confusion around why Open edX is open source, when the vast majority of its policies and procedures privilege one organization / “is still by far a one-way upstream project”. Does this discourage potential contributors?

  • Are we still in the pilot phase of the Committer program? When will we move forward with the suggestions/phases brought up previously?

  • I really enjoy being a community liaison, that community members who don’t have a direct line into edX come to me as an expert.

Deeper Dive: Declaration of Commitment to the Program

Question: if you review OSPRs, how do you find out about them? If you don’t, why not?

  • (11x) I get tagged by the author (often members of my own team or community members - primarily, BTR members) or the Open edX team

  • (4x) I watch the PRs that are opened in the repos I have write access to

  • (2x) I look at the Jira board; often I do not find unassigned tickets tagged for CC review

  • (1x) I have scaled back my involvement in some repos post-Blended project, primarily because I am no longer tagged for review.

  • (1x) I really struggle with a lack of time to get to my 20h/month

Deeper Dive: Platform Tech

Question: Which aspects of BEES (Boundaries, Extensions, Events, Standards) are working for you?

  • (8x) I do not know what this means/what the question is asking/no answer

  • Not sure if this abstract notion trickles down to day-to-day work

  • Boundaries: Splitting the monolith into smaller components/repos. Proposals around extracting things, better separation between LMS & Studio.

  • Extensions: Open edX plugins (and looking forward to the hook events to make this extension more capable), LTI, backend Django plugins are working really well

  • Standards: Generally a strong suit of the platform - drives quality.

    • Embracing LTI as a standard to follow

    • (3x) DEPR/ADRs/OEPs

Question: Which aspects of BEES (Boundaries, Extensions, Events, Standards) need improvements?

  • (8x) don’t know/no answer/”BEES” is not referenced anywhere that I can find, either in documentation or PR descriptions/comments.

  • Really doesn’t apply to PRs I create or review.

  • Boundaries - Not always sure why certain boundaries were put in place the way they were. There’s some ambiguity around where boundaries should/shouldn’t be. Small components in their own repos don’t adequately provide READMEs to explain why they exist in the way that they do.

  • Extensions - What JS & Python APIs exist and how stable are they?; no elaboration

  • Events - Confusion/lack of knowledge about event bus; no elaboration

  • Standards - Lack of knowledge around what standards exist (ex: Caliper Analytics). Lack of consolidated documentation, particularly “how things work”, what standards are being followed, and what ADRs have been added/changed (“ADR changelog” as a recommendation)

Question: Which part(s) of the platform would you like to be more flexible and extensible? What would that enable you to do/create?

  • Overall: Feeling that the platform has not been designed with extensibility in mind, and extensibility as an afterthought/in response to community complaints does not feel great

  • Theming & overall UI - many responses

    • Theming needs to be easier, more dynamic, & broad in scope

    • It’s not clear how to customize/override MFEs as we could do with templates

  • Ability to write frontend plugins in MFEs

  • Stable platform core with a solid API layer that enables Open edX consumers to build IDA services without touching the core

  • Removing edX-specific code everywhere, specifically removing tightly-coupled code that’s only used on edX.org

  • “I would like to see more extensibility and flexibility in the way the 5 primary interactions (register/login/enrolling/grading/giving_certs) work.”

  • Scalable approaches to codejail, error logging

  • XBlocks