This month marks Open edX’s second anniversary. Happy anniversary everyone! 🙂
The edX project was launched in May 2012, with its first commit dating back to December 2011. But as a user of the platform, June 1, 2013 looked like Christmas. The code that was powering edx.org was open-sourced!
Of course, changing the license and publishing the code was only a small part of the work involved in turning Open edX into a successful free software project. It also needed to attract and on-board a community of users and contributors — people like me who knew nothing about the technical parts of the project, but would have to be able to use it. Previously, only the internal team needed this knowledge, and when someone joined the team, a newcomer could just get a walk-through from a colleague.
By June 1, 2013, plenty of work had already been done to help newcomers get up to speed. Besides a website listing the available repositories, there was a README with instructions and an installation script. So I gave it a try. And, well… It didn’t exactly work out of the box. What I thought would take 5 minutes to run an installation script became a pretty involved hacking session that took the whole day. Later on, additions made the initial setup and on-boarding much easier — especially the introduction of devstack using Vagrant, the (fully-tested) named releases, and the project documentation. But back then, pretty much everything that could fail, did fail.
After working on a project for a while, it can become difficult to remember the struggles we had to face initially. As a newcomer, we are missing most of the domain knowledge and context that the older contributors take for granted. It’s pretty uncomfortable, so we usually focus on getting out of it as fast as possible by learning insiders’ tricks. We often don’t realize how valuable the eye of a newcomer is. Because we don’t know much about the project when we start, we often think we need to learn more before we can make a valuable contribution. But this is wrong; as a newcomer, we can usually spot issues that are overlooked by more experienced contributors. When we run into a problem, we can be pretty sure that other newcomers will also trip over it later on.
Once my instance of Open edX started, I tried to follow my own advice. I took a few minutes to gather some of the changes I had to make during the day to the installation instructions and script, and sent a couple of PRs. If you look at them, you will see that they are fairly minor: adding a line to the README, and a few edits in the installation script. It ended up being the first contribution to the project, and the reason I get to write this blog post today. But, more importantly, they were a good way to learn about the contribution process of the project, and to save other newcomers from some head-scratching. It was also a very rewarding experience that contributed to getting me more involved in the project. It does give a warm fuzzy feeling when your code benefits the project as a whole, instead of sitting as technical debt in a branch. : )
So, even if you are new to Open edX, or haven’t contributed yet, there is no such thing as not being “good enough.” If you see something that needs fixing or that you can improve, try submitting it! Or simply pick one of the byte-sized tickets for new contributors. Not all your code might end up landing, but if you stick through the review process, it probably will. Plus, the reviewers are friendly, and you will learn a lot.
See you in the pull requests!
Xavier Antoviaque is an Open edX developer and contributor. He is also the founder of OpenCraft, which provides development services and consulting for public institutions and companies using the Open edX platform, including HarvardX, the edX organization itself, McKinsey Academy and the French government (FUN), among others. He is a long-time contributor of free software communities: he co-created the free software game Card Stories, initiated the Ryzom.org campaign, and is a former board member of April, the main free software advocacy organization in France.