Software companies have long realized the economic and strategic value of using and contributing code to external open source projects. But they're much slower to understand and apply the same open source methods of collaboration to their own projects internally, said Phil Odence, vice president of business development at Black Duck Software in a Collaboration Summit presentation today.
Companies that take the practices, processes, culture and methods from the open source world and apply them to internal software projects can see the same competitive advantages that participating in open source projects provide, including lower development costs, faster time to market, better code, increased innovation, improved collaboration, and better retention, Odence said.
“The most important thing about open source may not be the technology, but the methods it's bringing inside the firewall of corporations,” Odence said. “It's really hard to do, for some companies more than others, but the payoff can be huge.”
With the creation of its open source group last year, Samsung began working to transform its company culture to this “inner source” approach, in addition to vastly increasing its open source participation, said Guy Martin, open source strategist at Samsung Research America, in the presentation. That involves getting developers who work across teams and geographies to communicate better, as well as adopt common tools and methods for software development. The company's approach to user involvement in the development process and employee staffing and incentives are also being revised.
“This is a big cultural change,” Martin said.
To developers accustomed to working in a more traditional, siloed and hierarchical management structure, adopting a peer review process for code, for example, can be a difficult adjustment, he said. “Telling coders that you're not going to lose face because your patch was rejected... It's hard not to take that feedback personally.”
How to get started
To successfully transition to an open source collaborative process, companies must first have a vision for what they want to accomplish and establish some processes for participation, Odence said. Then they can introduce the tools and technologies for collaboration.
Start by defining clear community goals, then identify seed collaborators who can act as mentors in the open source culture, Martin said. Then choose a small project to start implementing the new methods and deploy the inner source platform he said. Some essential components of an inner source collaboration model include:
- Open communication – via IRC, mailing lists and wikis and open archives of the decision-making process. The benefits are greater visibility and open planning between teams, faster resolution of dependencies and an enhanced documentation process.
- User involvement. In an open source model source code is available outside of the development team, requirements are published, and bug tracking is open. This empowers early users to find and fix bugs.
- Peer review. Patches are reviewed in small chunks and contributors and reviewers aren't necessarily part of your product team. There's a consistent review cycle and commit privileges are centralized. All code is reviewed before it's committed. This improves code quality and you attract a much wider range of contributors.
“We had to put together a job description for what a project maintainer was,” Martin said. “It wasn't a familiar job in Samsung because everyone has access to a project repository and so we don't find bugs before integration.”
- New staffing procedures. Each project has a clear owner or owners, but if there's something you can contribute to and there's justification for how it helps your role, you can contribute to that and there are incentives built into participation.