You are here

Incremental Improvements to Open edX

 Printer Version PDF Version

Picture showing incremental steps (source: <a href="https://www.flickr.com/photos/jeremyfranklin/7587200038/in/photolist-cysoeL-csJBZd-cmMrXf-d2Bksm-8t7ZCC-cwg7kq-bUHor2-8Gjr7F-cSeMuG-83S4sj-bQwSNr-d216wd-8pXfX6-cH4fPY-cyLmHQ-ccDq5q-WWXhf1-d1pe69-bsFz5f-bPXvGc-cQYEeA-9AzuA6-859J6t-86NbYm-cvJ3L1-9sAXbA-8MUHdK-8m2Pb3-7YGZNc-T1iTKc-qcWraK-9k5Fgy-sKvWo-V7hsEw-U6Peiy-UYTKiu-S3Dmwb-U9VvH7-VrTJ9L-5Yf8e9-88YoU4-cAZtX7-8qdBfB-cSRHFE-87mFHd-cwoHY-88L3AL-8Jsimx-85Gsuf-oTDAw8"><i>Simply Incremental</i></a> by Jeremy Franklin - <a href="https://creativecommons.org/licenses/by-nc/2.0/">CC BY-NC 2.0</a>)

Image source: Simply Incremental by Jeremy Franklin - CC BY-NC 2.0

The Open edX Incremental Improvements project has been officially launched!

TL;DR

  • You can learn how to start contributing to Open edX and/or help implement high priority improvements by reading OEP-25
  • Python programmers can find good tasks to start with in INCR-1.
  • Tasks of similar scope for other kinds of contributors are coming soon.

The Open edX platform is a pretty successful open source project, with over a million lines of code added by nearly 700 contributors.  But it could be even more successful if we make it easier to start contributing to the platform, further increasing the pool of contributors who are motivated and enabled to improve it.  Done well, this could not just increase the total number of features the platform has, but also the speed with which specific improvements can be made; large, intimidating projects can often be broken down into small, independent tasks which can be done concurrently by many people.  The Incremental Improvements initiative, described in OEP-25 and linked to the INCR JIRA project, aims to improve both the ease of making a first contribution to the platform and splitting up large, important tasks into small pieces which Open edX contributors of any experience level can help with.

People who are are motivated to start contributing to Open edX often encounter a few barriers which are common to many open source projects:

  • It's not clear what they can do to help.
  • They sometimes choose a first task that requires learning an intimidating amount of context to really even get started.
  • Once they've proposed a contribution, it can sometimes take a while to get feedback on it.
  • Once they do get feedback, the contribution may not be accepted as eagerly as they had hoped.

Meanwhile, experienced contributors to Open edX often face a different set of problems:

  • They can't hope to ever finish all the improvements to the platform that are clearly worth making, given the current number of contributors.
  • Much of their time is taken up with tasks that don't fully leverage their experience and domain knowledge.
  • They need to spend a significant amount of time reviewing large or complex contributions from new community members, and these contributions sometimes arrive unannounced while they're busy with other urgent tasks.
  • They sometimes decline or ask for major changes to such contributions, because the benefits don't seem to outweigh the additional complexity and maintenance burden involved.

There's clearly a disconnect here, where the new and experienced contributors have a lot to offer each other but the processes in place aren't making it easy enough to collaborate effectively.  The Incremental Improvements initiative tries to close this gap by clearly identifying work that new contributors can do to quickly help with high priority projects, giving them all the information they need to get started, and making it easy for more experienced contributors to efficiently request and review such contributions.  By focusing attention on the process of someone making their first small improvement to Open edX, it should highlight things we can do to improve this as well.

The first epic under the INCR project is the update of edx-platform to use Python 3; this will require a huge number of small code changes that usually don't require any real domain knowledge specific to Open edX, just knowledge of Python programming in general.  About 2 dozen tickets have already been written for such tasks, with dozens more to come as the project gains momentum.  Another epic will be added soon for assorted small improvements to the web interface's accessibility, which will include tickets more appropriate for front end web developers.  In time, we plan to add another epic including tickets that don't require any prior computer programming or web development experience.

The Open edX Proposal for Incremental Improvements, OEP-25, has just been approved after more than 2 months of discussion and refinement.  At this point, we encourage anyone who wants to start contributing to Open edX (including new employees of organizations in the Open edX community) to start by working on an INCR ticket.  Experienced contributors are also more than welcome to start working on INCR tickets; there are hundreds more that can be written once there is sufficient demand for them.  Questions about individual tickets should be directed to the Open edX Slack channel mentioned in their parent epic, and feedback about the contribution process itself should be directed to the #dev Slack channel.  We look forward to helping people get started, and making it ever easier to do so!