The biggest tech companies in the world seem, at last, sold on the value of open source. But how do you keep each of the ecosystems or projects going - and ensure that there will be a network of open source maintainers and contributors for the years to come?
GitHub runs an extensive worldwide student programme with 120 'campus experts' in 26 countries, many of them developing nations. We sat down with program manager for GitHub Education Joe Nash to learn more.
"With our students we try to do a little bit more than give them free GitHub, because what does a first year computer science student do with GitHub?" says Nash, speaking with Techworld during the Github Universe conference in San Francisco this week.
"They don't know what collaboration on code is yet. So we do partnerships with some fantastic organisations like Heroku, Jetbrains, AWS, and we get them to give their products for free to students as well - so that when a student joins GitHub they get everything they could possibly need to learn to be a developer."
Learning to be a developer in 2018 is expensive. Nash points out that in a cloud-centric world, you can't just go and build an app - it has to be on the cloud. If you want to do machine learning, the student needs compute power. All of this translates to a high barrier for entry.
"The student developer pack gets them over $12,000 dollars of credit to do whatever they need to do," Nash says. "That's one part of what I do."
The other is more a question of mentorship and organisation. The company has outreach programmes to find potential 'campus experts', students that will be trained and supported to build developer communities in their universities. While would-be developers in big cities with a thriving tech scene might be used to hackathons or similar events, students in rural Oklahoma might not have access to those, Nash says.
"So we train students to provide those spaces," he explains. "They make clubs and events where they are teaching students things they need to learn to get into the industry, alongside the work the teachers are already doing, and building those spaces for peer learning basically."
The process to becoming a campus expert starts with training, and explaining to the students the ins and outs of what building a community actually means. They cover topics like 'what is community', and work with them to analyse their own communities and build plans to improve on it.
"They learn the important skills that they need, so they learn about public speaking, they learn about workshop development, they learn about inclusivity and diversity and how to make inclusive spaces, they learn about Git obviously," says Nash. "By the time they come out of that training they have all the skills they need to go and be successful, but also to level up their peers and provide them the workshops or whatever it is they need."
Part of GitHub's outreach programme means engaging with or sponsoring student-led developer conferences and hackathons. Every year in the USA alone, 60,000 students attend student-run hackathons. Some of these are like companies in their own right, adds Nash, such as the University of Berkeley's Cal Hacks, which has 50 students each year involved in the organisation of the event and a budget of at least a quarter of a million dollars.
As this is a global initiative however there are significantly different challenges country to country.
"[In the US] they're well resourced schools, they're students who have access to the job opportunities in the first place to know that they need to learn these things, then we come to these regions where the industry is nascent or it hasn't yet grown up," says Nash. "When we're funding events in the US, we are giving them money for pizza. When we look at funding things in Nigeria, we are giving them money for diesel so they can run electricity for out of hours workshops. A very different set of challenges.
"You encounter the way the economic situation and what drives competition is also very different. India is a great example - in the US students go in hackathons and they're largely doing that to get a job or level up their skills. In India, hackathons are still big, but what's even bigger are algorithmic programming competitions.
"The recruitment industry just want the top five people, the top five programmers all the time - and that's really hurt the students in that it's forced collaboration out of their gatherings. When they get together it's not to collaborate or work on projects or to work on open source, it's to complete this algorithm a little faster than somebody else so they can get a job."
That cut-throat economic situation is a real challenge for organisations like GitHub that are trying to encourage interest in collaborative developer communities. Not only is there a very different level of material support that needs to be provided, a different approach to mentorship is also necessary.
Another example of extremely different material conditions were those faced by one of GitHub's campus experts in Cameroon, Konrad Djimeli. During a period of civil turbulence that's the subject of a recent documentary - Black Out - Cameroon's government shut down internet access for the English speaking half of the country.
"They had an education system basically halted due to disputes between the English and the French speaking part, and they cut off all the internet to the English speaking half," says Nash. "That's where Konrad was and where Konrad's community was. So they're in a situation where their teachers are all on strike, education has shut down, they've go no internet so they can't self-educate, and so this guy had to try and keep his community going and keep them learning.
"There's a significant portion of time where Konrad was the education system for his group. He went out to rural areas and gave workshops on electronics... At the time Google Summer of Code was going on - every year Google pays a bunch of students to work on open source projects and it's got quite a lengthy application process - Konrad led mentoring sessions for a bunch of those students to help them get into Google Summer of Code."
One of the students turned out to be the youngest ever winner in one of Google's competitions, Google Code In.
"So this guy had not only all the challenges that normally come from leading a tech community in a developing nation but also the complete collapse of the education system. It was over 180 days in the end before they got the internet back, and he used to commute two hours to the French capital in order to get internet to join our webinars."
Nash also points to a campus expert in India who is currently organising an unprecedented 5,000-person student hackathon in India's national stadium, and an expert in Sri Lanka that "visited literally every Sri Lankan university" to give a GitHub workshop. An early campus expert in Taiwan, Peter, visited universities around that country, while Amy runs a conference in the UK, the 300-person Women in Technology conference.
"It's hard to pin exact stories because there's so many of them," says Nash. "A lot of these groups, especially when we get a density of campus experts in the region, they tend to self organise. The Mexican folks - there's about seven campus experts in Mexico now - they realised that there are other group organisations outside of us and we should go and support those.
"So every week all the Mexican campus experts have a call where they go down to all the student hackathons happening in the region that weekend, and they distribute themselves to make sure that every one of them gets support and mentorship. It's awesome."
Another significant challenge is that developers might be reticent to the idea of contributing code that the Silicon Valley companies then go and use for free - it is a little more abstract to communicate the value of open source when to be an open source developer, says Nash, requires "fundamentally a lot of privilege to engage in, [to say:] 'hey, not only am I going to do my day job or whatever I need to do with my family, but also I'm going to build this project for someone else'."
"It's something we encounter a lot in certain developing regions, where open source is in a really interesting place economically right now," adds Nash. "Where it's being produced and used by a lot of companies like Microsoft, Facebook, Google - who are the top three contributors to GitHub - and they're doing massive projects like React.
"But the majority of open source is still projects that are being done by developers in their free time, and they aren't getting funded.
"We have encountered certain regions that are starting to come into tech and encounter open source for the first time. Although open source is enormously beneficial for them in terms of getting hold of the resources they need, at the same time there is this economic discrepancy we need to get a hold of. We as a western community can't be going to regions like India and China and saying: hey, open source is great, you should put all your free time into doing this."
Nash mentions a conversation he had with a seasoned developer in Shanghai, who said that developers in Shanghai or in China in general are not engaging with open source so much at the moment because they are often one generation away from poverty.
"To them that economic discrepancy between 'I need to provide for my family' and the memory of not being able to do that is very recent and real to me," says Nash. "But there are going to be companies in the States that are going to use my code for free that I'm going to write in my free time?
"That's something we feel here in the States as well. We're increasingly seeing from the developer communities here that this isn't sustainable - if we want this to be sustainable we need to do more to support open source maintainers."
There are initiatives to do this - for example the Sustain OSS conference, Maintainerati, and Source Road for example. But according to Nash those conversations are taking place in America and then being "left at the door to export open source elsewhere".
"If our developers are struggling to make this work, how are we making it work for people overseas?" he asks. "I think that's a huge challenge the open source community needs to get over.
"Fundamentally it's super important to how open source is going to continue to evolve - open source isn't equitable if only western developers can participate in it, that doesn't work."
Of course, one of the benefits is that open source is a good path to building a brand, providing access to jobs and potential. Nash points again to Konrad, who after a Summer of Code position working on Kubernetes, it has been "impossible" to get hold of him because he's busy taking part in conferences and so on.
"That one touch of open source helped his career take off," Nash says. "And that's great. But if we solve sustainability to let more people have the chance to do that - if we're not just relying on Google funding all these interns every summer - lots more people will have that opportunity and it will be a lot more equitable."
There are a couple potential paths forward for this, for example Henry Zhu who maintains Babel.js now does so full time through being supported by Patreon. Nash believes that the acceptance of the subscription fee model ports "surprisingly well" to supporting open source maintainers, for example through Patreon or Code Fund.
"They're saying you as a developer, use this open source project in your day to day, you or your company should throw them a beer once in a while, throw them five dollars," Nash says.
Unlike the old model of a one-off payment for software, this kind of model relies on paying out of a moral obligation. "I think that's where things are moving to - basically it's less about charity and more about recognising the value that these open source maintainers generate, and if you're using that in your own work or your company is using that you should give back to it.
"We see a lot of companies doing this now... GitHub is enormously dependent on the Git project, we give back to that in numerous ways, and one of them is to actually hire people on the payroll whose sole job is to help that project," says Nash, adding that GitHub also sponsors the annual Git Merge conference.
"Finding maintainers is one of the biggest challenges and if we help Git find new maintainers by making that space then we are contributing back to it and more companies need to start doing this. A lot of them are starting to do it for their own projects - Facebook with React, Microsoft and Visual Studio Code, Google with their whole Chrome ecosystem... But all of these companies are using hundreds of other open source projects, and it's that connection we haven't completely got to."
An interesting salve came out of Google earlier this year, where the company extended its employee incentive scheme - where one employee can nominate another for a bonus - to open source contributors and maintainers.
"Any employee can say hey, this open source maintainer is someone who maintains something I use in my everyday work, they're really important to Google, we should throw them something," says Nash. "Which was a really interesting programme, and definitely something I'd like to see other companies replicate."