Open Source.NET

Giving Back to the OSS Community

While we often talk of how we can leverage OSS to deliver a higher-quality product, rarely do we talk about how we can give back to the OSS community.

Open-Source Software (OSS) is one of the greatest assets that can be leveraged in software development. Pick a technology, a tier, or a purpose and you're sure to find many OSS projects that can save you time and effort. Or take a look at the tools you use, and think about how much value has been added to your work.

And while we often talk of how we can leverage OSS to deliver a higher-quality product, delivering value that customers need, rarely do we talk about how we can give back to the OSS community.

OSS developers, for the most part, are driven by a passion for their craft. The question "What if...?" is a powerful driving force, constantly providing valuable one-upmanship. Sometimes OSS can become a yoke, with the project's authors attached; pulling the project forward becomes unpaid work. We all can help share the burden of this yoke, but the contributions we can make don't necessarily have to be financial.

I don't want to be paid for my OSS contributions. Why? Because it isn't work. Unlike a typical work environment, I can create anything I want and share it with the world. Everything I'd like to do at work, but is limited by deadlines, bureaucracy or company standards, is now fair game. Being paid turns my side projects into what I am trying not to do.

That doesn't mean, of course, that helping OSS projects financially wouldn't be greatly appreciated; Web hosting and bandwidth can be expensive. But that's only one way to help.

What other ways are there to help OSS developers? Try some of these simple ones:

  • Send the contributors an email thanking them for their work.
  • Tell them how their work has affected yours.
  • Help out on a mailing list.
  • Submit a patch or feature.
  • Create unit/integration tests.
  • If you meet someone whose work you use and appreciate, buy them a coffee, or lunch.
  • Promote their compiled/packaged application, plugin or widget.
  • Is there a paid version of the software? Has your usage been worth the cost of the paid versions? If so, consider that avenue.

One of the best, and seemingly paradoxical, ways to show your appreciation for an OSS project is to fork it, try to replace it, or directly compete with it. Competition is one of the best driving forces.

For example, compare and contrast these Inversion of Control containers: Castle Windsor, StructureMap, Ninject, Spring.NET, Autofac, and Funq. You'll see an amazing shared evolution: Features, extensions, conventions, and APIs moving in lockstep, borrowing features and adapting with the advancements in technology. Each project shows very specific behavior and structure based on what came before it. Each framework enriches the ecosystem and gives a new outlook on how we compose applications.

Taking a look at the tools we use every day, we have a lot to be grateful for -- here's a partial list:

Making someone's day is very simple and can have profound effects. Hearing someone talk about your work positively can give a tremendous push and make a developer's yoke seem much more bearable. We all need positive reinforcement, and to know that what we do is valued and worthwhile. So go out and tell those whose work is of value to you that you appreciate what they do.

About the Author

Ian Davis is the Master Code Ninja for software architecture and development consulting firm IntelliTechture. A C# MVP, Davis is an expert on the .NET Tramework and co-organizer of the Spokane .NET User Group who frequently speaks at industry events. He spends most of his free time as an open source author and advocate, publishing and working on many open source projects.

comments powered by Disqus

Featured

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events