Over the course of my career I have been fortunate to work with many organization of various sizes on a variety of projects. All of these projects had open source software at their core and most of them contributed what they could back to open source. Recently, I was working on a greenfield project using open source software within a large organization. After the MVP phase of the project Organization leadership was interested in learning what lead to project success and how they could apply it to other teams across the organization. Upon reflection I started to see a similarity to our teams ways of working and open source communities and development. Below are some insights into how Open source principals can help organizations save money, reduce technical debt, and bust internal silos.
Save Money & Better Spend Budgets
I recently delivered a talk on Headless Omni-Channel Web Platforms at Florida Drupal Camp. One of the key benefits highlighted in the presentation was how you can save money by implementing this type of web platform. At it's heart the idea behind this comes from open source software development. Different groups within an organization can use their budget to contribute features or functionality needed to a core software or platform. They can also team up with other groups to pool dollars for more complex features. When the feature development is done it's added to the core software or platform and available for all to use. Using this core principle of open source can provide mutual benefits to groups within an organization. Allowing the sharing of features and functionality and collectively benefiting from each others spending to improve the software or platform.
Another aspect of this approach that saves money and allows for continuous improvement is the ability to test and develop a feature or functionality once and reuse it over and over again. We see this time and time again when developing a web platform that uses a component based design system as a starting point. Users of the platform can reuse components or features developed by other users. That have already been tested in a number of ways such as user experience, accessibility, and even security testing.
This simple idea faces opposition in many organizations as budgets are coveted and protected by the individual groups. Groups don't want to give up their budgets to support the core software or platform. In some cases a differing of priority and opinion can add fuel to the siloing in many organizations.
Deduce Technical Debt
Similarly to the point above reducing technical debt is something many organizations strive to achieve. Implementing an organization wide core software or platform and using open source principles can help to reduce technical debt. By allowing development teams to think fully about a feature and factor in how it impacts not just the group building it, but the wider organization. This plus collaboration with other groups within an organization can help to reduce the need for rebuilding or adding additional functionality in the future.
Sometimes organizations struggle with this type of collaboration and thinking because of internal competitiveness. Some organization foster a culture where being the first to build a feature or come up with an idea is rewarded. This can lead to groups not working together or sharing ideas. Again fostering silos within the organization and greatly hindering innovation.
Faster Time to Market
One of the terms I hear all the time is "Faster time to market". Everyone wants to get their thing out faster and easier. This is often a benefit of a core software or platform, as internal groups can reuse existing, tested, and proven features and functionality. Instead of building their own from scratch each time. Think of it this way, If your group is staring a project and they could start from 80% complete instead of 0% complete would you do it? I'm thinking yes. Now pile on the super hero feeling of adding needed functionality for other users. It's a win, win win!
Another great open source principle that can help your organization is a release schedule which can help to build excitement around future releases. When your organization implements a core software or platform the users of that software or platform are invested in when updates come out. This can be communicated to them with a release schedule and roadmap. These two tools can help users to get excited about new features and plan their own roadmaps accordingly. Also it can help to build appreciation for other teams and pride for teams building new features. This can really unify an organization and allow for an organizational sense of team and accomplishment while providing structure and a plan for the future.
A Core Team & Governance
To overcome the above noted obstacles and make applying open source principles within your organization a success. I have found you need two key items a core team and solid organizational governance. A core team will allow for one team to maintain and manage your organizations core software or platform. They will be responsible for maintaining the solution and ensuring new features and functionality are being added wisely. This team can help to reduce cost to internal groups as well as inform groups of roadmap features. The core team needs to be supported by strong organizational governance. This governance will provide groups within the organization with a common direction and organizational support to succeed. This organizational governance can mimic open source governance and principles in a number of ways. The most basic and highest level principle being community and the idea of working together to a common goal.
In closing adopting an organizational governance based on open source principles can lead your organization to reduce cost, lower technical debt, increase team collaboration, foster innovation, and above all propel your organization forward together.