Talks
The C Word
Summarized using AI

The C Word

by Pat Allan

In the talk titled "The C Word" presented by Pat Allan at RubyConf AU 2013, the focus is on the significance of community within the Ruby programming language and its ecosystem. Allan engages the audience by questioning the nature of community and its vital elements, promoting the idea that a robust community is essential for growth and innovation in technology.

Key points discussed include:

- The Nature of Community: Ruby's community is characterized by passion, camaraderie, and occasionally disagreements, signaling a vibrant discourse.

- Participation: Allan stresses the importance of active engagement through various events, both in-person and online, where individuals share knowledge and contribute to open source projects.

- Leadership and Encouragement: He highlights the role of informal leaders who foster environments of support and hospitality, encouraging participation, exemplified by an anecdote about a personal experience at Rails Camp.

- Belonging: A sense of belonging is crucial for community health; without this, individuals may not invest time or energy into the community. Allan illustrates this through his own journey from a traditional job to embracing Ruby, with personal stories emphasizing connection and support among members.
- Community Initiatives: He refers to examples of communal gestures, such as fundraisers within co-working spaces to support fellow members, illustrating mutual support and trust as vital to community resilience.
- Bridging and Bonding Social Capital: Two types of social capital are discussed, underscoring the need for diversity in community connections to prevent segregation and promote collaboration.

Allan concludes his talk with a call to action, urging attendees to actively foster a welcoming atmosphere, support each other, and strive for excellence in community interactions, ultimately underlining the motto, "Be excellent to each other." This encapsulates the essence of a thriving Ruby community: participation, support, leadership, and connection are fundamental to its success and evolution.

00:00:05.240 Good afternoon, everyone, and thanks for coming along to my talk. I'm pretty stoked to have the privilege to speak at this conference because it's in my hometown and it's on the topic of community.
00:00:16.020 One of the most notable aspects of Ruby is its community—the passion for writing good code, the opinions on how code should behave, the tools it produces, the people it attracts, and yes, occasionally, the arguments and drama.
00:00:27.060 Is this something we should take for granted? Should we actively guide the community to behave in a certain way? What constitutes a healthy community? Can we draw ideas and wisdom from other communities? So many questions—let's see if we can find some answers!
00:00:49.379 A strong and vibrant community is a wonderful thing, and I believe the community that surrounds Ruby is pretty special. Personally, I've drawn immense value from it, and I've tried to contribute back in turn when I can.
00:01:01.140 I want to ensure that this community we've collectively built evolves and improves. To that end, I've been hunting for ideas and examples from outside of Ruby and the programming culture we're so familiar with—ideas that could provide us with valuable insights. I've learned a lot from the writings of Peter Block and Alanda Baton.
00:01:28.799 But before I get to their insights, I want to share a few stories. I am involved in all three stories I will tell you about, but thankfully, I'm just a supporting character in two of them. The first one, however, is all about me, so I apologize in advance.
00:01:56.820 It begins several years ago. From a professional perspective, 2005 was not a great year for me at all. I was subcontracted to a big telecommunications company—I’ll let you guess which one—in a soulless office in the Eastern suburbs of Melbourne. The projects were not particularly interesting, nor was the technology.
00:02:13.080 I actually worked for a Microsoft-focused consultancy, which had an eye on modern approaches. However, classic ASP was the tool of choice for our client, complete with tables, style attributes, and font tags. That was the standard. If I ever got to use C# or ASP.NET, or even CSS, that was a rare thrill.
00:02:51.420 Then a good friend of mine, James Healey, introduced me to a fancy new framework that brought the fun back into web development—Django, or rather, Ruby on Rails. For me, half of the joy came from Ruby itself, such an expressive and direct language, without any pesky semicolons.
00:03:15.060 I found myself trying to implement Ruby and Rails-like approaches into my ASP code. I guess it comes as no surprise that I didn't get very far, especially without any magical metaprogramming. So, I had to content myself with building sites for side projects while begrudgingly accepting Microsoft's limitations in my day job.
00:03:46.980 It was never going to last, though, so I began attending the Melbourne Ruby meetings in the middle of 2006. I quickly became extremely jealous of the people there who were already using Ruby every day and getting paid for it.
00:04:01.799 At the end of that year, I resigned from my job, became a contractor, and then people started paying me to code in Ruby. I was pretty stoked! I immersed myself within the Ruby community, read books and blog posts, attended more Melbourne Ruby meets, and hung out in IRC channels.
00:04:25.919 When Ben Askins announced the very first Rails Camp, I had no hesitation in buying a ticket. Is there anyone else in this room who was there that weekend in Somersby? Yes, there are a few of you around, including Ben himself. That was an amazing weekend.
00:04:56.820 As part of the preparations for the event, there was a Wiki page that anyone could edit, adding their details, where they were coming from, and some ideas for topics they wanted to hear about or present on. Everyone else was putting their details in, so I did the same, not really expecting to speak, as I didn’t think I had the courage.
00:05:30.139 Then I received an email from Tim Lucas—I'm not sure if Tim is in the room, but he's certainly around. Tim encouraged me to prepare a talk on one of the topics I had listed. Speaking in front of my peers was a little nerve-wracking. It may show, but back then, it was terrifying.
00:06:12.060 With Tim’s encouragement, I committed to a topic, put together my ideas on some slides, and much to my surprise and relief, the assembled Rubyists at the camp found my talk somewhat interesting. They even had a few questions!
00:06:41.400 Feeling encouraged, and like I belonged in the Ruby community a little more, a few months later I started my first serious open-source project. I had been looking to implement full-text search for a client’s application, but none of the existing tools were quite what I was after.
00:07:06.180 I was really looking for something a bit smarter, a little more thoughtful. So, I set aside a weekend and built something, then released it to the world. That project, as some of you may have guessed, was Thinking Sphinx.
00:07:27.240 I'm still stunned that it's going strong today—it's been five and a half years, and there have been over a hundred contributors, including Josh's very valuable work. It’s gone through a couple of rewrites, but it's still there, still being used, and I'm still looking after it.
00:07:44.520 That's me. The next story is something a little more recent. If you follow me on Twitter, you’ll know that I work from a co-working space here in Melbourne called Inspire 9. I’m a little noisy on that topic, and anyone who has been to a Ruby meet in Melbourne in the last 12 months will know the space.
00:08:11.520 Everyone else is very much welcome to drop by. We have an open desk policy; if you're in Melbourne, need a desk, or just want to relax, please come visit. We've got a pool table, a table tennis table, amazing bean bags, and pretty good Wi-Fi too.
00:08:46.080 Not only do we hold Ruby meets there, but we have many other events. Just under a year ago, we had a large event, probably about 100 people or so. During that event, our events manager at the time, Keely Nutt, unfortunately had her iPhone stolen off her desk while she was running around sorting out the event.
00:09:01.320 Now, of course, she was quite upset about this, and so were many of the residents. As the dust settled, one of our regulars, Ned Dwyer, decided to ensure that Keely got a replacement iPhone. Ned set up a donation page on Pledge and quietly sent around an email to many of us.
00:09:30.180 Within a couple of hours, we had the money. By the end of the day, Keely had her new iPhone. She was a little shocked but thrilled.
00:09:46.920 Yes, this is a heartwarming story, but that's not why I'm recounting it. You see, not only had Keely lost her iPhone, but we all felt like we'd lost something too. There’s an amazing sense of deep trust at Inspire 9, but that trust had been violated.
00:10:07.680 Ned made it clear when he sent out the email that he was doing this to restore the balance in our community.
00:10:21.839 Okay, something a bit lighter—hands up who likes pancakes! Yeah, I thought there might be a few of you. I am a big fan of pancakes and have a habit of cooking them for my friends quite regularly. This habit comes from my family.
00:10:39.420 See, every year on Pancake Tuesday—which was just last week, if you weren't aware—they invite dozens of friends around and cook up a fantastic and tasty flat feast. The reason for this ritual dates back about 25 years. My parents had recently connected with the Parish of Saint Joseph's in Northcote here in Melbourne and quickly made many friends.
00:11:16.740 When they learned my parents were looking to buy a house in the area, and realizing that houses in Northcote are not cheap, they pulled their resources and provided my mum and dad with enough money to cover a deposit.
00:11:35.160 None of them had massive pools of cash of their own, but this was not a loan; it was a gift to acknowledge the generous support. To celebrate this, my parents brought their friends together for pancakes, which quickly became a tradition. We've been doing this for about 25 years now; we've only missed one year, and that was due to renovations.
00:12:07.740 Many of those same friends come back every year and have become close family friends.
00:12:28.140 So those are three stories from three different communities. However, there are some common threads that highlight three key elements of healthy communities. The first of these is participation. We Rubyists are pretty good at this.
00:12:55.260 There’s no end of events for sharing knowledge and skills—at conferences, through presentations, communal coding, or simply hanging out together. We do plenty of that! There’s also the open-source movement, with the countless gems and scripts we share, document, log issues, and contribute to—building upon and extending from one another.
00:13:25.500 The mantra of 'Don't Repeat Yourself' is one of our favorites, and while standing on the shoulders of our open-source peers is admirable on a macro scale, we should not dismiss how we participate—it’s equally important.
00:13:53.220 The tools we use help manage how we participate; GitHub, in particular, has greatly facilitated contributions to open-source projects. We can have conversations based on a pull request, commit, or even a line of code. Of course, it’s always better if we keep those conversations friendly and civil.
00:14:03.240 For face-to-face interactions, the technology community—and especially the Ruby community—has gained a reputation for constant socializing, often over a few drinks. I think this is a significant part of Ruby's success. In his book, 'Religion for Atheists,' philosopher Alain de Botton notes that both Christianity and Judaism, in their early days, built many of their rituals around meals.
00:14:36.840 How they leveraged the value of this is important—not just for them, but for us as well. It provides an excellent opportunity for members of the community to share ideas, meet new members, and build connections. Many Ruby meets around the world practice this quite well; certainly, the Melbourne meet does.
00:15:09.060 However, I've been surprised that not all do. I've attended meetings where people spend the majority of their time hunched over their laptops coding. While they may produce great code, if you show up not knowing anyone, this can feel a little anti-social and unwelcoming.
00:15:35.100 Some other cities focus solely on sessions, providing no avenues for socializing over a meal or a drink, which feels like a lost opportunity to me. This sentiment is shared by others, as shown in a quote from a tweet I found, emphasizing that I’m not alone in believing there’s room for improvement.
00:16:05.160 One more factor that prompts participation is inviting people to take part. Had Tim not reached out and asked me to prepare a talk for that very first Rails Camp, I probably wouldn’t have done anything. His encouragement helped me gain great value from that event.
00:16:23.040 This brings me to the second element of my checklist for healthy communities: leadership. Tim was doing what every good leader should do by creating a context of hospitality and collective possibility. It sounds a little wanky, but I think it fits.
00:16:49.860 Tim wasn’t in charge; he was just keen to ensure that everyone made the most of that Rails Camp. The fact that he stepped up, even though he wasn't in control of the event, is especially commendable.
00:17:16.680 From what I've read, we should be somewhat wary of centering a community around official leaders; such a focus can be unhealthy. We risk placing all responsibility and blame on these leaders when it suits us, which is convenient when we want to complain.
00:17:37.740 Yet that absolves us from having any role in shaping the community. Continuing down this path may lead us to a culture of dependency and entitlement.
00:17:56.520 Now, don’t get me wrong—organizations like Ruby Australia, which made this event happen and Ruby Central, which facilitates many other events, are valuable and do excellent work. However, they're not in charge of how our community operates, nor are they trying to be.
00:18:14.400 We all need to hold ourselves accountable for the well-being of our community and choose to own and exercise power rather than defer and delegate it to others. Ned's actions at Inspire 9 to restore the balance reflect this sentiment precisely.
00:18:36.180 He’s a resident of the co-working space but did not wait for any official Inspire 9 team member to act. The same applies to the families who supported my parents—this was not initiated by the parish priest or any other official; it was just community members seeing that something could change and standing up to make it happen.
00:18:53.400 For those of us who find ourselves in more formal leadership roles, whether running a conference like this or a Rails Camp, Peter Block offers two great recommendations to focus on. These are his words, not mine: as a leader, you need to shift the context in which people gather. In other words, provide the best possible environment for everyone who is gathered—a place that is welcoming and encouraging.
00:19:30.240 His second point is to listen rather than advocate, defend, or provide answers. As a leader, you're not there to control things; you're there to facilitate and help others get the most out of these gatherings.
00:19:57.180 Ultimately, you're trying to create a place where people feel welcome and valued—in short, a place where they truly belong.
00:20:14.700 Coincidentally, that brings me to the third element of my healthy communities checklist: a sense of belonging. That's really the crux of it all, right? Without feeling a sense of belonging, you won't invest any time in a community. Participation and leadership simply don't come into play.
00:20:54.820 This value has been discussed by Robert Putnam in his book 'Bowling Alone' and other works that cover similar topics about community. A community's well-being relates to the quality of the relationships and cohesion among its members. If you want to wrap this idea up in a buzzword, consider 'social capital.' The stronger the social capital, the stronger the community.
00:21:37.080 There's also an added benefit of enhanced self-worth, which is certainly not a bad thing. The best way to foster this sense of belonging is to focus on hospitality, ensuring that everyone feels equal and is welcomed.
00:22:05.220 Many of you might know Nathan from Inspire 9. Nathan is exceptionally good at this; he can approach a stranger and chat as if they were a long-lost friend, making them feel completely at ease.
00:22:28.020 So, it’s important to focus on establishing connections among people. We shouldn't be afraid of keeping events smaller than they could be; typically, the smaller an event, the stronger the connections.
00:23:06.960 I've certainly found this true in comparing even today's Rails Camps of 150 people versus massive conferences like RailsConf where you'll get a couple of thousand attendees. I definitely find more value at a Rails Camp.
00:23:37.440 Robert Putnam clearly distinguishes between two types of social capital: bonding and bridging. Bonding social capital arises from inward-looking connections composed of like-minded individuals. Conversely, bridging social capital consists of broader mixes of people and tends to look outward.
00:23:57.720 With this distinction of the two types, there's an important caution: a society that relies solely on bonding social capital will eventually become segregated into mutually hostile camps. Pluralistic democracy requires not only bonding but also ample bridging social capital.
00:24:34.740 Recently, Tim Berners-Lee visited Australia and spoke here in Melbourne about how he would change the structure of the web if he had a chance to do it all over again. He discussed his choices concerning HTTP, URIs, and HTML, admitting they weren’t as elegant as he would have liked.
00:24:54.900 However, he doesn't regret his decisions since they were based on existing technologies of the time, allowing other communities to quickly get up and running on the web, encouraging them to give it a shot.
00:25:19.680 I think that worked out quite well. Now we need to put this into practice—what does that look like? Firstly, let's try to complain a little less and take more action.
00:25:47.220 Apologies to King, but we're all in this together! If you think something could be improved, try to be part of fixing it—even if that’s just starting the conversation in a constructive manner. Recently, we experienced a RubyGems vulnerability that elicited many snide remarks on Twitter.
00:26:15.420 However, many Rubyists, including some of you in this room, stepped up to help get everything running again, validating gem files, improving security, and moving things around. It was all volunteer work, but everything on rubygems.org is volunteer work.
00:26:41.220 The contributions from those volunteers were certainly more valuable than complaining on Hacker News—although, I admit, that’s a pretty low bar.
00:27:03.180 I found a quote from Peter Block that resonates: he mentions that in an unhealthy community, the media frames the debates. On the other hand, in a healthy community, we must realize that what the media reports only reflects the conversations that citizens are already having.
00:27:29.880 We can liken Twitter and Hacker News to mainstream media within the tech community, so perhaps it’s worth remembering this next time you refresh those pages. This also flows both ways; if we take the words of trolls and fundamentalists too seriously, we may be misled into thinking there's no value in languages like PHP, Java, C#, JavaScript, or even Ruby.
00:28:05.100 However, we know that's not true; developers can create fantastic sites and tools in any language. Therefore, let’s ensure our behavior reflects that and enhance our bridging social capital.
00:28:34.440 Min Swan should not only apply among Rubyists. There's always room for improving our bonding social capital as well, and we can start right now. Please take a moment to introduce yourself to the people around you, particularly to someone you don’t already know.
00:29:00.060 Now, I'm not done yet—sorry to interrupt, but you can return to your conversations shortly. I appreciate your effort in doing that. I know developers can often be introverts, but that little bit of effort in welcoming others makes an immense difference.
00:29:36.360 So, the next time you’re at a tech meet—whether it’s Ruby or another field, or even if it isn’t tech—if you spot someone who seems lost, maybe sitting by themselves, just wander up and say hello. If for some reason you feel you need someone’s permission to do that, you have mine.
00:29:58.080 Don't forget to encourage others to share their knowledge and ideas, just like Tim did for me back at that first Rails Camp. Even better, assist people in taking their next steps—perhaps by reviewing their code, looking over their talks, or helping them with a conference proposal.
00:30:37.120 If you’re working within a team—and I know many of you are because a lot of you seem to be wearing the same shirts—you have a perfect opportunity to assist the others in your team, especially those who are a little less settled. You can help them by reviewing their work or collaborating with them on a presentation.
00:31:08.460 It doesn’t have to be limited to your company; this can extend to a broader context as well. If you’re still looking for examples of ways to foster community, Tiffany Conroy in Berlin started a site called 'We Are All Awesome' primarily to encourage more women speakers at conferences.
00:31:30.600 She’s done a stellar job, being one of the organizers for JSConf EU, and the site offers plenty of ideas and support to those who haven't engaged much in public speaking at all. So, I’d say it's valuable to practically everyone.
00:31:52.920 At the end of the day, perhaps we should all heed the wisdom of Bill S. Preston, Esquire, and Ted Theodore Logan: 'Be excellent to each other!' The only correct response to that is: 'Party on, dude.' Thank you for listening!
Explore all talks recorded at RubyConf AU 2013
+21