How Adopting Open Source Can Benefit Your Custom Software Project
You’re driving down the street and you hear a noise – something’s wrong. You bring your car to the shop and the mechanic says, “look, we need to replace the gear shaft.” You’re not totally sure about the details, you just want this fixed, and quickly, without costing too much money.
The mechanic continues, “we’ll need to specially hire a designer to draft the part, hire a shop to build it, communicate the specs, and then negotiate a timeline and budget. We’ll let you know when you might see your car again.”
You would never accept this.
And you don’t have to, because there are companies outside of your car’s maker that specialize in building and distributing parts that work for your car. This helps you get your car fixed faster, cheaper, and back on the road without compromising quality.
This story illustrates a similar need in software that gave rise to the Open Source Software (OSS) movement. We’ll talk briefly about what OSS is and then highlight five principles that demonstrate why adopting it for your custom software project could be a good idea.
What is Open Source (OSS)?
Agnes Nduta with FreeCodeCamp says in her brief history of Open Source, “[a]t its core, open source is an idea. It’s a concept that revolves around access. You can access someone else’s source code (or even a company’s). This way, you can customize it for your use case, find bugs, and fix them too. Better still, you can share your ‘version’ of the source code with others in addition to the original.”
OSS still has standards around safety, security, and quality, but the creator of the code is no longer the bottleneck to bug fixes, improvements, and customization.
Let’s now look at five principles within this big idea that have an impact on your custom software project.
Principle 1: Transparency
OSS says:
“Whether we're developing software or solving a business problem, we all have access to the information and materials necessary for doing our best work. And when these materials are accessible, we can build upon each other's ideas and discoveries. We can make more effective decisions and understand how decisions affect us.”
Two ways that the principle impacts custom software projects:
- Public code repositories allow qualified engineers outside the organization to inspect the code
- Documentation is required for any changes to source code and is public
Principle 2: Collaboration
OSS says:
“When we're free to participate, we can enhance each other's work in unanticipated ways. When we can modify what others have shared, we unlock new possibilities. By initiating new projects together, we can solve problems that no one can solve alone. And when we implement open standards, we enable others to contribute in the future.”
Two ways that the principle impacts custom software projects:
- Any developer can submit a pull request if they feel they’ve discovered a bug or otherwise wish to improve the tool -- you’ll see everyone from novices looking to brush up skills to the often world-class engineers who wrote the source code collaborating
- Contributors are motivated by a desire to see the best possible product and there is no waiting around for the code owners to decide your request is important enough to address
Principle 3: Delivery / Release Early and Often
OSS says:
“Rapid prototypes can lead to rapid discoveries. An iterative approach leads to better solutions faster. When you're free to experiment, you can look at problems in new ways and seek answers in new places. You can learn by doing.”
A way that the principle impacts custom software projects:
- When you have a request and it is enacted quickly, it can then get tested and debugged faster – meaning you’re able to use it more quickly
Principle 4: Inclusive Meritocracy
OSS says:
“Good ideas can come from anywhere, and the best ideas should win. Only by including diverse perspectives in our conversations can we be certain we've identified the best ideas, and decision-makers continually seek those perspectives. We may not operate by consensus, but successful work determines which projects gather support and effort from the community.”
Two ways that the principle impacts custom software projects:
- Open source software can be freely shared and modified – good ideas are lifted up and improved upon
- Under many OSS licenses libraries can be used in commercial products without having to pay anyone (for example, TSL does not have to pay Meta to use React in our software projects)
Principle 5: Community
OSS says:
“Communities form when different people unite around a common purpose. Shared values guide decision making, and community goals supersede individual interests and agendas.”
A way that the principle impacts custom software projects:
- OSS libraries are maintained primarily as practice for less experienced developers, and as labor of love for the more experienced developers
Top takeaway
This brief, surface level walk through of OSS should hopefully get you thinking about how your business and idea might benefit. To be clear, certain pieces of your business’ code should not be open source – while Meta makes their React coding language open source, they certainly don’t publish everything they make internally.
But OSS is like ensuring you can get a high quality car part quickly, install it, and get back on the road. It's the result of many hands working together to make light work -- and even improve upon the ideas of the car maker's original designs. TSL commits to open source in our software projects where appropriate, and we are happy to chat with you about it anytime.