Open Source Mentality of Choosing Your Tech Stack

July 4, 2016

When I initially wrote Non-Tech Factors to Consider When Choosing Your Tech Stack, I left out one important conversation point: Open Source.

Steve and Carol got me in the comments.

How should Open Source affect your decision to choose a tech stack?

In a previous life, I used to work for a component vendor. Our company built, sold, and supported a variety of components that saved developers time. I had the opportunity to meet thousands of awesome developers who do the hard work every day in the trenches.

I always questioned why people bought our stuff. The internet at the time was already full of dozens of comparable or better components which were open sourced. Buying our components seemed like an extreme waste of resources.

That was until I understood the value-cost of SUPPORT. One of our customer was a large financial firm who bought hundreds of developer licenses to a library. This library wasn't anything special - but any of those developers could instantly request technical support from the project manager for the library. (Normal people would have to go through traditional support means, but still had good service.)

Imagine same company, same team - they decide to use a popular component that is 100% open source. Same team runs into a technical hurdle: either a flaw in the component, or a flaw in the developer's understanding of the component.

Where does a developer go in this case? Google? Stack-overflow? Github issues?

A common phrase amongst open source maintainers is "we accept pull requests". I used to believe this was mean-spirited, but you have to understand that folks that manage an open source project have lives and other concerns then your bug. Roll up your sleeves and dive in.

You didn't answer the question: How should Open Source affect your decision to choose a tech stack?

In the soft-factors article, I discussed that some developer-types just are not suited to work with new technology. Same goes for open source.

If a developer or team is not comfortable getting their hands dirty in public code, there is NO WAY they should integrate open source software. Don't expect a maintainer to bend over backwards to solve your problem or push you in the right direction. Some do -- but many don't have the bandwidth for that.

There are some exceptions to this though. Consider massive open source projects such as jQuery, Angular, React, and the .NET Framework. These products are open source and accept pull requests, but they are backed by large organizations who have a vested interest in keeping the projects up and running. You cannot pick up a phone and dial support, but you can file an issue and a team of developers will take you seriously.

You are not alone

The general developer community is amazing. There are thousands and thousands of developers out there that will at least attempt to push you in the right direction if you hit a snag in an open source project.

I love open source software, and I greatly take for granted the hard work many people have put into my favorite projects.

Open Source software isn't going away either. The movement is going to grow larger than it is today, and if you are not on the bandwagon as at least an observer, it is going to leave you behind.