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.
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.
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:
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:
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:
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:
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:
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.