RubyConf AU 2017
Open Source: Power and the Passion

http://www.rubyconf.org.au

Especially as Rubyists, Open Source is one of the foundation pillars of our industry. You probably use the power of open source software every day: in the code you write, the tools you build with, the servers you deploy to.

But perhaps it’s not quite the stable foundation we were hoping for? This talk will cover the various strengths and weaknesses of both open source and our reliance upon it, so we can trade in our assumptions for a greater awareness of the issues. Then together, we can find a path towards a more sustainable open source ecosystem.

RubyConf AU 2017

00:00:02.940 Good afternoon everyone, as Mel mentioned.
00:00:09.750 My name is Pat, and yes, I live here in Melbourne. I'm currently the CTO of a mental health-focused social enterprise called Limbo, which is focused on making mental health care more acceptable and accessible.
00:00:18.460 This is going to be a little subtle, but perhaps you'll pick up on the accidental pattern that I'm using in my presentation. Well, too fast, particularly the tidal power and the passion. Alright, I don't want to overdo it.
00:00:34.780 On a more serious note, I would like to begin by acknowledging that this event takes place on the occupied land of the Wurundjeri people, who are part of the Kulin Nation.
00:00:37.629 I greatly appreciate the Welcome to Country from Alderaan Jones. As we gather at the conference, we must recognize that we haven't been very good at listening to or learning from the oldest living culture in the world. This morning's welcome serves as a small marker to increase our awareness, so I pay my respects to all elders, past and present, as well as to any Aboriginal or Torres Strait Islanders present here today.
00:01:22.719 When I've given this talk in the past, it's mostly been overseas, where there are relatively few Australians. The audience has typically been familiar with such acknowledgments. They also, unlike Mel, don't spot the fact that my talk's name is stolen from the title of a Midnight Oil song. I’m thinking the audience here may be slightly more familiar with them, but if you haven't got the reference, don't worry; I'm not going to be delving further into their back catalog. I'm certainly not going to start dancing.
00:01:40.899 Instead, my focus will be on open source and its strengths and weaknesses. I will discuss whether it's sustainable and how we can improve things. I realize that the term 'open source' is used in many ways, but I don't want to get caught up in semantics. So maybe we take the definition from Open Source.org.
00:01:57.489 They say that open source software is software that can be freely used, changed, and shared in modified or unmodified form by anyone. Not bad. Though I am a fan of Mario Exiled’s preferred definition, which emphasizes that modern open source is about building and collaborating in public. I like that definition, but it is a bit more focused on the 'how' rather than the 'what.'
00:03:01.880 At every level of what we do, we rely on open source software. Our text editors are open source. Our programming languages are open source. Our gems, our package managers, our web servers, and most of our production operating systems; they’re all open source. But why do we use all these different pieces of open source software? Well, through them, we get to stand on the shoulders of some pretty smart giants.
00:03:32.060 Using open source software gives us an amazing productivity boost. There are so many things that we don't need to build that we actually need, and it saves us a lot of time. Of course, software is not perfect, but when things break, we at least have the option of trying to fix them ourselves. Honestly, it also saves us a lot of money. It can also provide a sense of community, with groups of people working together and helping each other. The collaboration aspect that Nadia has referenced is a key part of the ecosystem.
00:05:06.730 All in all, open source is a source—no pun intended—of great power for our industry and for all of us as individual software developers. The fact that this has been done together, a massive effort of collaboration crossing borders and beliefs, is wonderful. Developers around the world have built all of these things not because they had to, though sometimes they did, and not because they were paid to, although thankfully sometimes they were, but because they wanted to.
00:05:21.169 Creating things is a source of joy for many of us, and problem-solving can be a lot of fun too. Many pieces of open-source software come from scratching our own itches—solving our own problems. What that means, though, is that open source offers are often built in our own spare time. And that's fine because our code is more than our work; code is our passion.
00:06:10.600 Okay, maybe that's not always true, and I'm well aware that passion is a problematic term when mixed with work. I'm also aware that many of us may not have contributed to the open-source ecosystem, and that's okay. I've gone searching for statistics and haven't had much luck, but it wouldn't surprise me if no more than ten percent of all developers have ever written any open source code. Again, that is completely understandable.
00:06:40.650 I mean, some of us have kids to look after; some of us have second jobs. Not everyone is earning Silicon Valley money. Some of us have other commitments, and some of us just aren't quite sure how to start. Not everyone has the expertise needed, and contributions require time, understanding, and energy. Having all three of those in the same moment is a tough ask, especially when it's not your own project. Then there are bigger cultural problems at play as well. As this quote from Sarah may reflect, when it comes to finding time, most people aren't paid to work on open source, so again, it usually needs to come from our own spare time. And that is not a privilege that everyone has.
00:07:46.260 Yes, I am using the word 'privilege' deliberately here. Privilege is not a bad thing, but it must be acknowledged and recognized so we can adapt accordingly. This open-source privilege is why relying on GitHub profiles and activity metrics for hiring judgments is flawed. We know that many people aren't in a position to contribute to open source, so using contributions as a metric for determining who is a good developer is a really bad idea. On top of that, we know that the tech industry has a diversity problem; it's clear at most of the events, even this one, although things are getting better in some ways.
00:09:02.990 Our focus on open source contributions, an area dominated by privileged white men, only exacerbates that problem. Giving away our hard work and our valuable time for free is the very height of privilege. But there's a bit more to it than that. I mean, here in Australia, whether you like it or not, we live in a capitalist society, and writing open-source software does not pay the bills for most of us. So giving away our hard work and valuable time for free is inherently a political action. If you look back at the history of our industry, perhaps this political aspect of open source isn't so surprising.
00:10:27.790 The GNU Public License, the GPL, which has been around since 1989, mandates that any code you write that uses or is a modification of GPL-licensed code must also be released under the same license. Essentially, everything GPL code touches must also be GPL. It's a free software virus, if you like, and that's not a bad thing; it's not necessarily a good thing either, but it is their goal. The goal is that it should be free to view, modify, and redistribute all open-source code for all software in the world.
00:12:43.970 There's an interesting juxtaposition in some countries, particularly in the US, but also here at times in Australia, a movement to increase the minimum wage and to ensure that internships are always paid. People should definitely be paid fairly for their time and their effort. But open source software is different somehow. Maybe it's because most of us are already well-paid, but again, that privilege is just shining through. Giving away our code for free is only part of the problem. Because, as well as freely sharing our own code, we also use others' code. We rely upon it, and not just code either—APIs and services, tools like RubyGems, npm, Homebrew apps.
00:13:49.340 While the open-source code behind those services is free, the services required to run them are not. I don't know if you've been following the install bummer in the last little while; you might know this stat, but for everyone else, the servers and infrastructure for RubyGems cost upwards of twenty-five thousand US dollars per month. That figure does not include the developer time required to maintain those services.
00:14:45.000 That distinction is important because when we rely on these services, we're not just expecting people to spend their time writing code, but also providing support: answering questions and addressing security issues, and maintaining servers to keep them secure. For those of us who may end up running such services, there is joy in having the right combination of skill and luck to build something like RubyGems—a service that others start relying upon.
00:16:07.510 It's also worth recognizing the emotional labor involved in supporting open source projects. If you're not familiar with the concept, emotional labor is when people manage their own feelings as part of their work, which is particularly common in service roles. Open-source maintainers face this challenge too, in their interactions with others via support requests and patches, and they are often expected to be polite and helpful, even in the face of rudeness and impatience.
00:17:03.080 Oh wait, this is the internet; that’s certainly not going to be a problem. In our industry, just like in society more broadly, we’re often terrible at recognizing and appreciating this emotional labor. You’ll often see open source described with the label "free as in speech" rather than "free as in beer." But I think the more appropriate label, first suggested by Jacob Spatz of Bootstrap, is "free as in puppy," which better indicates the energy and commitment required to contribute to the community.
00:18:26.870 Now, these are broad strokes that I’ve been laying down. There are, of course, caveats and exceptions. We do have some companies that pay their employees to work on open source. Thank you. We have companies that pay maintainers directly to support new features. Thank you. We even have companies that pay for the servers required for these services. Thank you. This is all greatly appreciated. Still, many of these open-source services have become critical infrastructure for our work. They are incredibly important, and we expect them to always be there, working, yet we don't pay for them.
00:19:38.840 I wonder, do we value open source less because we don’t pay for it? Now, there is other infrastructure in our everyday lives, away from the keyboard, that we rely upon as well: things like roads, welfare systems, and government hospitals. We do pay for those, albeit indirectly, through our taxes.
00:20:09.600 So, should we be paying a 'Ruby Tax?' Now, I'm not suggesting that everyone should pay to use the system. There is most definitely value in keeping things free. We want to keep that barrier to entry as low as possible for anyone trying to learn how to code. However, if everything is free for everyone, then the good times aren’t going to last long.
00:21:29.200 Two quotes from Nadia Eghbal: 'Tax systems allow for some people to pay and not others.' Those who don't earn a large amount of money don’t have to pay tax, while those who do pay tax—unless they spend their money on sneaky accountants and lawyers instead. We have Ruby Together, which is perhaps the closest thing we currently have to a Ruby Tax. You sign up as a member, pay a monthly fee, and all those funds are pooled together. They go towards maintenance, support, and new features for Bundler, RubyGems, and other critical Ruby infrastructure.
00:22:55.390 That is just one approach to improving the sustainability of our industry. There are other possibilities: you can pay for pro editions of gems like Sidekiq, or you could pay open-source maintainers directly for support. Or you could investigate micropayment systems like GitTip and so on.
00:24:20.240 You probably weren't expecting to think about money and taxes today. Here, and I know I am hopping on a bit about the financial side, but let's be clear; this is just one part of a broader picture. The overarching goal, I feel, is to have a sustainable ecosystem for our industry. Currently, it's not unfair to say that what we've got now has been built on the broken and burnt-out minds of once-passionate developers.
00:25:34.430 Lindsay Be has shared some excellent thoughts on this topic on Twitter about a year ago. The overall point is that this is not a financial problem; it is a cultural problem. I shouldn’t be singular; these are cultural problems. Unfortunately, there is more than one.
00:26:52.340 Let's recap: we have an open-source ecosystem built on top of privilege. Again, that privilege isn't bad; the fact that it underpins everything is the problem. We have become entitled; we are so used to not paying for anything and to not valuing people's time and labor. This entitlement leads to contributor burnout, as made clear here by Aaron last year on Twitter. Our collective entitlement has also led us to rely upon everyday infrastructure that we don’t pay for.
00:27:26.680 All the bad news aside, don't despair; there are good and happy things. Many large successful businesses support open-source software financially—thank you to companies like Heroku, GitHub, and many others.
00:27:59.780 In the Ruby community, as I've already mentioned, we are blessed with Ruby Together, looking after RubyGems, Bundler, and other essential tools. We also have programs like Rails Girls Summer of Code, which quite clearly helps tackle the lack of diversity in our industry, while also paying women to work on open source. I believe that it addresses the privilege inherent in the ecosystem as well.
00:29:00.460 However, we can't just step back and applaud these groups for their fine work. Yes, we should applaud them, but we also need to roll up our sleeves and contribute. For those of you who lead development teams or run your own company, please get your organization to support the groups I've mentioned or others like them financially. You are certainly adding value through their hard work, so it would be nice to give back a little.
00:30:14.200 Alongside that, it would be wonderful if you could allow your team to work on open-source projects on company time. It doesn’t have to be a day a week or anything specific; I know there are many demands on your time, but we need to reinforce that the open-source ecosystem is a shared platform and deserves some attention from as many developers as possible.
00:31:34.630 If I jump back to what I originally quoted from Maria, stating that open source is both about building and collaborating, I think we are doing okay at the building part. It’s not perfect, but I think we've got that piece down. The collaborating side, on the other hand, has room for improvement.
00:32:30.720 Anyone here who maintains open-source projects has great opportunities to move the needle a little bit. I recommend actively seeking out contributions; part of why maintainers experience burnout is that we're not very good at sharing the load. I speak from experience—investing time and effort into making it easier for others to help you is probably worth it in the long run, especially if your project is somewhat popular.
00:33:15.440 There's also an excellent blog post from Charlotte Spencer on this topic. For those of you who were at the conference last year, you would have seen early Meredith speaking on the topic of feedback. While aimed at software teams, it was filled with valuable wisdom that is immediately applicable to open-source collaboration.
00:34:32.040 Jumping back to my previous statistic—that only ten percent of developers already contribute to open source—I’ve been making many suggestions focused on that 10 percent. So, what advice can I offer to everyone else? First, it's worth acknowledging that helping out can be daunting, especially if it's your first time—it's scary. So, try searching for the low-hanging fruit: things as simple as writing a detailed bug report when you find a bug, or sending a patch to improve the documentation if you find it lacking.
00:35:54.020 Both are extremely valuable contributions. There’s also a tool called 'Your First PR' created by Charlotte Spencer that can help individuals keep an eye on things they might be able to contribute to, even if they’re just beginning. But mostly, don’t be afraid to start something. I won’t promise that you’ll finish it; it’s scary, and you might get distracted, but at the very least, I think you'll learn something, which is incredibly valuable for you and the community.
00:37:34.310 Look, I know all these are small steps, and they relate mostly to contribution. Yet, wasn’t I making the point that having a strong focus on contributions is unhealthy? Yes, I still believe that, and it’s really tough to find the right balance between these different factors. Because, and maybe it's obvious, I don’t really know what the answers are. I wish I could stand here and provide a solution and solve everything, but these are big cultural changes, and cultural changes are hard.
00:39:14.110 Let me be clear: I still believe in open source. Here’s an analogy to help make the concept work. Most of us are familiar with technical debt, where you take shortcuts to get code working now, but those shortcuts make maintaining the code later more difficult. My friend Vidya Elzinga from CultureAMP has repurposed that idea, creating the concept of diversity debt.
00:40:06.060 You might rush things when building a company by hiring only privileged white men because they're easy to find. Instead, you can put in the effort to create an inclusive culture by being thoughtful about your hiring practices and working hard to build diverse teams. In both contexts, avoiding such debts requires actively thinking about the best ways forward and acting accordingly.
00:41:49.710 In a similar manner, the broader open-source community has a diversity debt for sure, but we’ve also got a sustainability debt. We have moved fast, built very cool things, but our foundational support is shaky. Just like with technical debt, there's only so far we can go with shaky foundations. It's time to start refactoring. It's time to start paying back that debt.
00:43:19.780 Now, knowing what the problems are is a key step to finding the solution. This is a big part of why I wanted to give this talk—to get your wonderful and intelligent minds thinking about these problems, if you weren't already, and to see what solutions you can suggest.
00:43:45.950 I want you to ponder this; your perspective matters. Awareness is a powerful thing. It helps us to be more empathetic, to be more compassionate, and I hope you have a little more awareness now about our community, how we work, and what we do.
00:44:09.010 I look forward to hearing your contributions in this journey towards making open source, our industry, and our community more sustainable. Thank you very much for listening, and have an amazing conference. Thank you!