Contributing

Summarized using AI

Open Source Survival Guide

Mike Moore • March 31, 2016 • Earth

In the video titled 'Open Source Survival Guide,' Mike Moore discusses essential strategies for thriving in the open-source software development community, emphasizing the importance of collaboration and effective documentation. He categorizes open-source users into three types: maintainers, collaborators, and consumers, and introduces the Dreyfus model of skill acquisition to explain the journey from novice to expert within this context. The key points discussed include:

  • Types of Open Source Users: Understanding the roles of maintainers, collaborators, and consumers helps illuminate the relationships within the community.
  • Skill Acquisition: Moore illustrates the Dreyfus model, detailing the five stages of skill development and how experience shapes contributions to open source.
  • Documentation Challenges: A major focus of the talk is the inadequacy of existing documentation, which often leaves newcomers at a disadvantage. He highlights the need for accessible guides and clear, comprehensive resources.
  • Improving Documentation: Moore proposes practical improvements, such as ensuring projects have a well-structured README file, identifying gaps in existing documentation, and treating documentation as a critical component of contributions.
  • Encouraging Contributions: By creating a contributing file and fostering mentorship, open-source projects can cultivate an inviting atmosphere for new contributors.
  • Effective Communication: The necessity of clear communication in remote collaborations is stressed, along with the importance of empathy in conflict resolution.
  • Interpersonal Skills: Moore asserts that in addition to technical skills, strong interpersonal skills are vital for successful collaboration in the open-source ecosystem.

In conclusion, the survival guide emphasizes that successful contributions to open-source projects rely not only on coding skills but also on fostering a supportive community, improving documentation practices, and engaging in respectful communication. Moore encourages participants to ask questions and engage in discussions to further their understanding and contributions to open-source software.

Open Source Survival Guide
Mike Moore • March 31, 2016 • Earth

Collaboration is the key for successful software development. It works best when code can be understood and contributed to by many. Sometimes we think the unwritten rules for successful online collaboration are obvious, but experience has shown again and again that it is not. So let's discuss these rules and write them down so we have them. We will discuss how to make successful code contributions to the projects we all rely on, and offer some strategies for encouraging contributions on our own projects.

Ruby on Ales 2016

00:00:13.370 Hello everyone, I'm Mike Moore, and today I'm going to talk about open source and how to survive in it. This is an open source survival guide, and it's going to be a little bit different from the other talks I've given. I must admit; I'm extraordinarily nervous about going first. So, if everyone could have a drink to lessen the awkwardness, that would be great. I personally don’t drink, so I’m enjoying a nice mug of root beer instead.
00:00:39.960 Let me introduce myself properly. My name is Mike Moore, and my handle everywhere is "blowmaj" or however you want to say it. If you're attending Ruby on Ales for the first time, welcome! That's amazing, and I love this conference. I’ve spoken here a couple of times before, and here’s a picture of me that I often use.
00:01:08.070 Last year, during my talk, I established that I'm a pretty big deal. If you were here last year, you might think, 'Oh no, not another one of these talks!' But please don't worry; this one will be different. Just a heads-up, that was my last pun, so everything will be fine from here on out.
00:01:28.590 This is a shirt I printed myself that features Rainbow Dash holding a beer, which I absolutely love. In my mind, I’m the only one who brings My Little Pony references into this space. I really want to petition for an MLP beer emoji to be added to the Slack channel, so if you're feeling up to it, please talk to the organizers and let them know. I plan to use that emoji a lot throughout this conference.
00:02:16.879 Now, I had originally planned to discuss a lot of tips and tricks regarding open source software, but the talk has evolved a bit. Over the past 18 months, I’ve been a full-time productive member of society working on open-source software, so feel free to ask me questions during this talk. I think that would be awesome! Ask me anything from how I got my job to why my beard looks so magnificent. I promise I’ll do my best to answer.
00:02:59.060 I believe there are three types of open source users: maintainers, collaborators, and consumers. Maintainers are those who contribute to the libraries that we use and manage them; collaborators contribute as well; and then there are consumers, which includes most of us. A very few actually maintain or spend all their time working on open-source software. Understanding this separation can help us discuss how these different groups relate to each other and why it matters.
00:04:11.870 To dig deeper, who here is familiar with the Dreyfus model of skill acquisition? Just a few people? Great! This means I can provide some insights you maybe didn't know. The Dreyfus model breaks down skill acquisition into five levels: novice, advanced beginner, competent, proficient, and expert.
00:05:01.900 Let’s take a moment to apply this. My wife is a nurse, and we often discuss how nurses behave at various levels of expertise. When she graduated, she was a novice, intimidated and afraid of making mistakes. She would strictly follow the duties outlined on her list without questioning them. That's a classic novice approach—rigid adherence to rules without any discretion.
00:06:05.540 As she gained experience, she moved into advanced beginner and then to competent, where she started to develop some situational awareness. By the time she reached proficiency, she was better able to prioritize tasks and adapt her approach, eventually moving into the expert category where she relied more on intuition and experience than a strict list of tasks.
00:06:38.440 Expert nurses recognize patterns based on experience rather than written checklists. They understand the context of a situation and can manage their responses intuitively, rather than just following guidelines. This, I believe, relates to how we function in open source. The more you engage with it, the more you become comfortable with contributing in various ways, whether through code or documentation.
00:08:27.440 Documentation is a huge topic in open source, and it’s an issue we need to address. Many contributors struggle with the lack of guidance or resources available. Chris Smith expressed that the absence of a smooth learning resource without sudden jumps in complexity poses a blocker for many. Similarly, Joshua Richardson mentioned that incomplete or poorly written documentation complicates understanding and implementation.
00:09:00.400 In my outreach efforts, I mostly hear suggestions from others saying we should start supplementing documentation, but they struggle to understand how. There’s an overarching problem: documentation is often assumed to be written for individuals with a certain level of expertise, which creates barriers for newcomers. We need more accessible how-to guides and step-by-step examples.
00:10:00.440 I strongly believe that over the past 18 months, the most significant issue we face in the open-source community is documentation. Many people go directly to GitHub for resources, which can be overwhelming. Often, they'll have to read the source code without the necessary context.
00:11:00.180 So, what can we do about this? The first step is ensuring that our documentation covers the basics: what the library does, how to install it, and examples of how to use it. Right now, many open-source libraries lack these foundational aspects.
00:12:00.530 We can improve documentation in many ways. Every project should have an effective README file, which is often the first contact users will have with the library. It should be structured to explain the library's purpose, guide users about its fit for their needs, and provide simple code examples.
00:12:55.760 For those who have experience and want to improve documentation, identify gaps or missing information as you interact with libraries. If you notice an issue, consider contributing back by writing documentation that fills those gaps. We must treat documentation as an integral part of open-source contributions.
00:14:09.690 To effectively foster the correct environment for new contributors, add a contributing file to your repository that outlines how others can get involved. Explain how to set up the development environment, contact guidelines, and answer potential questions upfront to reduce ambiguity.
00:15:46.250 Focusing on mentorship can also enhance documentation practices. Pair programming, particularly online, can facilitate knowledge transfer and help potential new contributors feel welcomed into the community.
00:16:28.250 Communication plays a crucial role in open source, particularly when dealing with remote contributors. We need to be patient and make an effort to communicate clearly and effectively to address issues as they arise.
00:17:02.500 In engaging with others, it's vital to remember that we all share a common goal: to build something great. When conflicts arise, recognize the humanity behind the other side, and approach situations with empathy. This understanding can help break the cycle of resentment that often permeates open-source projects.
00:18:06.000 Open source should, at its essence, foster cooperation and understanding. When we shift our perspective to see each other as real people rather than problems to be solved, we move towards healing tensions.
00:18:56.170 I want to emphasize that being wrong isn't scary; it’s all about actively listening and learning from one another. Make a collective effort to treat each other well; this openness is essential for surviving in the open-source world. Remember, just as significant as the technical skills we refine are the interpersonal skills necessary to thrive.
00:19:52.170 Thank you for listening. Let’s take some time for questions. I'm here to help you with any queries or discussions regarding open-source software, collaboration, or anything else that you've been thinking about.
Explore all talks recorded at Ruby on Ales 2016
+5