Post 6: OSS Motivations

Open-source software represents a remarkable facet of the tech world, where freely accessible and modifiable software is generously shared with the public. These expansive projects are meticulously crafted and sustained by thriving communities of contributors who dedicate their time to write, test, and distribute code. What's even more astonishing is that, in many cases, open-source software surpasses its proprietary counterparts, despite contributors typically working on a voluntary basis, while proprietary software is developed by well-resourced tech giants boasting teams of highly skilled engineers. To fathom this phenomenon, it's imperative to delve into the motivations driving individuals to contribute to open-source projects.

Contemporary literature categorizes these motivations into two main groups: intrinsic and extrinsic. Intrinsic motivations delve into the inner drives of these developers. One of the most prevalent intrinsic motivations is the sheer joy derived from the process – these engineers revel in the thrill of learning new technologies while concurrently contributing to the construction of substantial projects. Conversely, extrinsic motivations encompass external factors. One of the most common extrinsic motivations is the "need for software," where an engineer endeavors to resolve a specific problem by crafting a new piece of software tailored to address it. In practice, many open-source projects are fueled by a combination of these varied motivations, resulting in their inception and continuous evolution.

Drawing from my personal experience with our class's open-source project, I can identify both intrinsic and extrinsic motivations driving my contributions. Externally, the course mandates a specific number of contributions for successful completion and a favorable grade, thus serving as an extrinsic motivator. Internally, I find genuine enjoyment in navigating new code bases and acquiring fresh skills that hold practical value in the industry. The ability to comprehend and contribute to complex code bases is a skill set crucial for my future career. Additionally, the art of collaborating with fellow software developers to devise innovative solutions serves as an invaluable asset. In essence, my motivations for contributing to open-source align with the intrinsic pleasure of learning and the extrinsic drive to excel academically and professionally, echoing the diverse blend of motivations seen in the open-source community.

One of the readings emphasizes that "enjoyment-based intrinsic motivation, namely how creative a person feels when working on the project, is the strongest and most pervasive driver." I reflected on a project that I undertook purely out of enjoyment, even though it wasn't related to programming. Currently, I'm building an information webpage for a nonprofit organization aiming to construct an orphanage in my home country. I started from scratch, learning about deployment tools like Firebase, setting up a GitHub repo, and creating documentation for potential contributors. I didn't receive any payment for this work and did it voluntarily, investing hours to ensure it met industry coding and technical standards. Despite my busy schedule with full-time classes and work, I devoted my limited free time to improving the project. This experience made me realize the intrinsic enjoyment of contributing to a project, even without external rewards like money or recognition.

One of the most significant blockers in my life, which often hinders my motivation to contribute to open-source software (OSS) projects, is time constraints. As a student balancing a part-time job and a demanding full-time class schedule, finding dedicated time for OSS contributions can be exceptionally challenging. Moreover, when I do manage to allocate time for such projects, larger and more established ones can present another hurdle in the form of a lengthy and complex onboarding process. These projects may have evolved over an extended period, resulting in intricate setup procedures. Additionally, they often experience considerable delays in reviewing pull requests due to the high volume of contributions they receive. The meticulous scrutiny required to ensure that a contribution doesn't disrupt other aspects of the project can lead to extended wait times.

To overcome these blockers and bolster my motivation for OSS contributions, I'm exploring several strategies. First, I aim to optimize my time management by creating a structured schedule that allocates specific periods for OSS work. This could involve setting aside dedicated hours during the week or finding pockets of time between classes or work shifts. Additionally, I plan to focus on smaller OSS projects with streamlined onboarding processes, allowing me to dive into contributions more swiftly and efficiently. These projects often have quicker turnaround times for reviewing contributions, which can provide a more rewarding experience. Finally, I'll maintain open communication with project maintainers and teams to gain insight into their review processes, potentially expediting the feedback loop.

Comments

Popular posts from this blog

Runestone - a Deeper Dive

Post 4: Pretext

Post 3: Runestone and Brad Miller