Comic Relief - How and why we made our codebase open source

Open Charity May Meetup

The May 18th Open Charity Meetup looked at two quite different uses and implementations of open source in the charity sector. We had a great turnout and some excellent discussion afterwards, with lots of helpful input from the community on other topics we might want to cover at future events.

For those who couldn’t make it, here’s a summary of the talks.

Comic Relief

First up, we heard from Peter Vanhee, Tech Lead and Caroline Rennie, Senior Product Manager at Comic Relief, about how and why they made their code base open source. Comic Relief has created its own open source platform that now powers and unifies three separate content websites (Comic Relief, Red Nose Day and Sport Relief) through a single code base and set of design patterns. The pattern labs ensure a consistent visual identity across Comic Relief’s web assets and also allow partners to more easily use Comic Relief’s styles.

Based on a customised version of Drupal 8, the team has started open sourcing individual modules of the platform one at a time, collecting feedback from the community as they go. Alongside building the platform, there is the job of putting together documentation so other people can use it.

Challenges

The team spoke about some of the challenges they’ve encountered on this project, particularly around getting buy-in from all key stakeholders internally. This will be a familiar challenge to any charity that is exploring open source - a model that is still quite poorly understood by the majority of people in the sector.

For example, there are always some commercially-minded people in every organisation who want to sell the thing you create. Peter and Caroline argued that it was more beneficial for both the community and the organisation itself to open source their tech. Open source thinking enables the community to build on your achievements, and actually makes the product better as well because it enforces discipline on the development team; devs write better code when they know other people will see it! It also means the tech team gets to do things that would typically have been outsourced, making them more engaged and happy, which in turn leads to lower staff turnover. This last point should help make the business case for open source with more senior members of the charity.

However, a certain amount of due diligence is important before going open. The team recommends:

  • Pick your license
  • Don’t spill your secrets
  • Make sure everyone is comfortable with you going open.

The team also noted that making code open source often entails extra work because you need to make sure it is usable to other people, with sufficient documentation to explain how it works. Sometimes you might have to refactor the code before you open it up, which takes time and resource. But there’s often more reluctance than is warranted to just ship it - it doesn’t matter if it isn’t perfect.

One of the key methodologies that helps tech development stay focused and fast-paced is agile. Instead of a backlog being a never-ending list of features, agile enables an iterative approach where different ideas from the team can be continuously built on what’s already there. For smaller smaller charities, who have no in-house tech teams, it can seem quite time-consuming to follow a specific agile framework such as scrum, but given that this is likely to be the operational day-to-day for the agency development team they are working with, it’s important to have an overview of how these processes work. The premise of constant iteration and test-driven improvement is crucial for the creation of good products and software, and open source is no exception.

What’s next?

Comic Relief is currently undergoing a painful migration from Drupal 7 to the new platform, and as soon as the final legal boxes have been ticked, the code will go live. It’s been a long process but the team are nearly there! And preparing open source-ready code has already brought its advantages. In two months the team has already seen huge time savings - whereas previously a new piece of tech would take weeks to develop and get ready for launch, now the building blocks are already there and ready to go.

This year’s Red Nose Day site was built entirely on the platform, and Red Nose Day USA are now using it as well, which is helping the two strands of Comic Relief become more aligned. The US operation now has its own stand-alone identity and this provides a good example of how other organisations could use the platform.

The team are now looking to engage with other open source communities and hope to see other charities adopt their platform and build new features. Following some initial community feedback, they will look at exploring which governance model is appropriate, and will develop that via engagement with the community. Drupal itself is currently going through a big governance overhaul, as one audience member pointed out, so it’s a timely question to be asking.

Empower Hack - Draw My Life

The second set of speakers was Kriselda (Krissy) Rabino, Tech Lead and Steve Smith, Software Developer on Empower Hack’s Draw My Life - a collection of interrelated open source projects that present a child’s perception of migration and exile through anonymised drawings and data. These then help humanitarian groups on the ground advocate for improved mental health support for refugee children.

 

A “ridiculously inclusive” culture

Empower Hack is a volunteer-run organisation that builds technical solutions for underrepresented groups in the refugee community. Working off a premise that inclusive teams = inclusive tech, it goes to great lengths to encourage a diverse and welcoming culture at its hackathons and events. Participants build open source tech that helps a diverse and marginalised community, and the friendly environment encourages people who might otherwise have been too intimidated to attend a hackathon to take part and contribute to the code.

One of the key focuses of Empower Hack is to build collaboratively and create things with others. Draw My Life came out of the very first hackathon in 2015 and was inspired by how children’s art therapy can become a basis for better data around mental health needs for refugee children. It’s always looking for contributors!

So far the team has created a system for field workers to upload images and data from children’s art therapy sessions, which has to be easy to use and lightweight so that it can be used when there isn’t good internet data out in the field. It is currently building a public API so that hacks around the world can connect to each other, and a data feed to send anonymised aggregated data to the UN’s Humanitarian Data Exchange (HDX). And there’s a campaign tool that harnesses the visual power of the images and data to give users the tools to lobby government and campaign for better child mental health.

Harnessing volunteers, open data and partner NGOs

Krissy came to this through being on the board of Women Hack for Nonprofits, a volunteer group that advocates for more women contributing to open source projects. It attracts a lot of beginner coders who want to work on real-life projects to build their skills. Many of the Empower Hack volunteers come through WHFNP, with varying degrees of technical expertise - for example one woman who had never even touched GitHub before made the most Git commits all weekend!

A key ethos of the group is to build on what’s already out there. The Humanitarian Data Exchange is an initiative from the UN that focuses on aggregating all the messy data that comes in from humanitarian agencies and makes it usable and open. It does this through a standardised language called HXL, which uses hashtags to label data, and includes a free, open source API to sanitise your data. They also have lots of Python recipes and you can build data visualisations using HXL that demonstrate the power of the tech.

Ongoing conversations with humanitarian partner organisations in the field help steer the development and focus the team’s efforts. Sometimes at meetups the team will focus on their direction and where they’re going to pilot next.

Making it easy to contribute to open source

It’s all very well encouraging a diverse and enthusiastic group of volunteers to jump into your project, but how can you break down the technical barriers for them to get started, while ensuring work still progresses at a pace? Krissy and Steve advocate communicating explicitly and generously. The ReadMe for Draw My Life assumes no prior level of knowledge and even includes an introduction to the command line for complete coding beginners. With four or five different projects going on at the same time, it’s important to progress several simultaneously. To help keep track of everything, they use progress boards with labels in GitHub that range from beginner-friendly to advanced.

The documentation and templates are as verbose as possible, as you can’t make any assumptions about volunteers’ level of technical skill. The core team also encourages every contributor to document just as thoroughly as they go so it remains inclusive. Always thinking ‘could this be done by a beginner?’ pushes you to add more information until it’s accessible to everyone.

Since the project is based on volunteer work, humanity is important - don’t forget the power of face-to-face conversations. The team structures its work by design sprints to ensure that what they’re building as a product is aligned with the core needs. These help keep volunteers inspired and motivated, and the team has built a dedicated team website to give something back to them for their efforts.

There are some Empower Hacks in the pipeline and if anyone is interested, they can find out more by following them on Twitter or signing up at the website. The team is particularly looking for coders in Ruby on Rails, back-end tech, data analysts, and people that understand how to scale data.

Community announcements

Makerble is a mobile app to help charities track progress towards their intended impact. They’re looking for charities to pilot it. Get in touch at contact@makerble.com.

From the makers of CiviCRM comes CiviHR, an open source HR platform built in a heavily customised version of Drupal. You can download it directly from their GitHub (the documentation needs to be more verbose but it could be helpful).

Emmett Walsh (Armakuni, Makers Academy): Looking for suggestions of resources on effective coaching for inexperienced devs. This could be a future Open Charity event topic! Initial suggestions from the floor included pair programming and CodeBar. Contact him on LinkedIn.