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

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

Subscribe on YouTube