3.5. Product Owner#

The product owner has two main responsibilities: approving user-facing features and improvements from a product point of view, and prioritizing pull request reviews.

When a contributor is interested in developing a new feature, or enhancing an existing one, they can engage in a dialogue with the product team about the feature: why it is needed, what does it do, etc. Product owners are expected to fully engage in this process and treat contributors like customers. If the idea is good but the implementation idea is poor, direct them to a better solution. If the feature is not something we can support at this time, provide a detailed explanation of why that is.

Approving work involves more than just giving the idea a go-ahead. There are a number of factors to consider.

  • What level of support will edX provide? Unsupported, provisional, or supported?

  • Will edx.org use the feature? Does it need configuration support?

  • How much documentation is needed for the feature? Will edX write the documentation, or should the contributor provide it?

  • Does the work require other review, such as user experience, design, accessibility, internationalization, training, or customer support?

The earlier in the process these other roles are involved, the better the process will work, and the better the final product will be.

A product owner is responsible for prioritizing pull requests from contributors, and keeping them informed when prioritization slips. Pull requests that are ready to be prioritized in the next sprint will have a “Awaiting Prioritization” label on their JIRA review tickets. At every product review meeting (which should happen each sprint), pull requests awaiting prioritization should either be included in the sprint for the appropriate team as a commitment to get the pull request reviewed, or the product owner must inform the author of the pull request that the pull request is still queued and is not being ignored. Contributors should be treated as customers, and if their pull requests are delayed then they should be informed of that, just as a product owner would inform any customer when that customer’s requests are delayed.