Open to technology, open to the world: Code For Life, an open source project

Lucy is 9 and she has been learning the basics of computer science with her teachers at school for almost three years, ever since the government made Computer Science a part of the primary school curriculum in 2014. Her parents are proud because they know that learning to code will help Lucy understand the world around her, and give her the skills she needs to make an impact. Lucy is happy because she loves to tinker with things and is excited by the idea of building stuff! It sounds magical.

Chris is a software developer keen to provide children with the tools he didn't have when he was younger. He only started learning about computing at university, and thinks it's important kids learn in a fun and engaging way. He also likes to share his knowledge by contributing to open source projects he cares about.

Lucy and Chris have something in common: they are both using Code for Life, a non-profit initiative started by Ocado Technology in 2014. Code for Life delivers free games to teach students computing. The first game, Rapid Router, teachers the basics of logical thinking, Blockly and Python to primary school students.

In 2015, the code base of the project was made open source, and in 2016 more projects were added, such as the code for the iOS version of the Rapid Router game using the Unity game engine.

So why do we find open source important to deliver the Code For Life mission?

Risks and how to prevent them

Open sourcing a software project can be a challenging affair. It requires not only a shift in how developers write code but also implies a better understanding of concepts related  to product ownership and the wider legal implications. Here are some questions we had to answer ourselves when we made our decision to embrace open source:

Q. Does open source mean people can copy the code and make money out of the project?

  1. Well, the license is GNU affero and therefore copylefted. The project is available for free online, so people will most likely keep on using the free games.

Q. Are there any security risks associated with changes in the code base?

  1. The Ocado Technology team regularly performs code reviews to ensure this is not the case. We’ve also implemented automated tests before any contributions are accepted, followed by a manual deployment process before the accepted changes appear online. Contributors have to log in with their GitHub accounts.

    If a vulnerability is introduced that wasn't spotted by tests or reviews, there are penetration tests (tests to find vulnerabilities in websites) performed by third parties on the website twice a year.

    In general, open source projects are actually known to be more secure than proprietary solutions because they promote a culture of collaboration and openness. Linux, Mozilla and Python all rely on being open source, to name a few.


There are also many benefits to adopting an open source strategy for this project:

  • Open source just makes sense for a free project dedicated to helping as many students as possible. Not having this element would restrict access and prevent the initiative from receiving the same volume of contributions, which in turn slows progress.

  • The project is a great way to showcase that good initiatives can work. More specifically, it gives the project the exposure it needs to pave the way to a new approach to education tools, which we hope can then go on to inspire others to start their own education initiatives. When we talk about Code for Life at conferences, attendees can give feedback with just a quick look at the GitHub project. This means we can discuss the initiative openly and write public articles.

  • We can use lots of amazing open source and open source-friendly tools. For instance, some volunteers get access to free open source licences for the professional version of JetBrains; or products like IntelliJ and PyCharm - arguably some of the best IDEs available.

So, if we’ve inspired you to get involved with open source education initiatives, why not take a look at our cool new game and see whether you have any ideas to contribute - feel free to have a look at our github pages!

george smith