What is InnerSource?
Many companies use the term “InnerSource” to describe the process of applying lessons learned from large-scale, distributed, open source projects to proprietary engineering. The concept has been described in a variety of other ways and developers in organizations that already engage with large open source communities may not use the term InnerSource specifically, but rather think of it simply as the way they apply open source methodologies to software development behind their firewall.
Keeping proprietary code within the view and control of a single company, InnerSource differs from classic open source. It does not necessarily involve publicly sharing proprietary software or inviting unauthorized individuals to engage with what is being developed. So, companies can rest assured that any non-public code will remain securely within their environment.
There's so much excitement about InnerSourcing and we see it as just an amazing competitive advantage for Hewlett-Packard. We can see a major opportunity to accelerate time to market and we have the ability to up the game of our workforce because people now have things that are much more open.
Joan Watson, Director, Center of Excellence, Hewlett-Packard Enterprise
How does it work?
Think of InnerSource as an open source community within the context of the enterprise. As with open source, a pattern of inclusion leverages the minds of those in the community to produce high-quality code. But, in the case of InnerSource, the community is scoped to the experiences, knowledge, skills, and abilities of the people and tools within a single enterprise.
GitHub’s core tenets of InnerSource:
- Open: Democratizing access, creating a level playing field for the open sharing of work, ideas, and feedback, and ensuring cultural and strategic alignment
- Transparent: Ensuring the process as well as the product is visible, predominantly by decoupling communications from time and space
- Participative: Sharing work and making it easy for others to discover, use, and contribute
- Collaborative: Working together to incrementally increase quality, distribution of knowledge, and shipping velocity
- Governed: Directing, guiding, and supporting the software community, through standards, patterns, roles, and executive sponsorship
InnerSourcing is as much a cultural shift as it is a technological shift, which can be challenging for some organizations. Like their open source counterparts, InnerSource projects thrive in places where efforts naturally lean toward discoverability and reuse—within small, cross-functional communities of the organization that share similar passions. Throughout development, community managers ensure connections are made among subsets of development teams, without a need to rely on one or a few individuals who are pressed to know it all. They naturally emerge as champions of these small communities and are motivated to become thought leaders within their domains. As with any new or different method, having the right mix of individuals, teams, and resources involved can help ensure success — and, in many cases, the results delivered far outshine any obstacles that may be necessary to overcome.
InnerSource is not new to Bloomberg … our competitive advantage is really in being able to innovate come up with new ideas and get them out to our specialized consumers on a regular basis at the speed that they require it to be competitive in the market.
Panna Pavangadkar, Global Head of Engineering Developer Experience, Bloomberg
Why do companies adopt it?
As businesses move to differentiate their products and services using software and data—or recognize software and data is their product or service—they quickly realize the limitations of the traditional software development methods, process, and tooling. The slow, systematic practice of requirements gathering, team meetings, siloed development teams, and scheduled tasking isn’t delivering software at the speed or quality these enterprises require.
A primary driver for InnerSource adoption is the ability to utilize the best practices of the open source software movement, while keeping collaboration secure within their company. Some of the benefits of InnerSource include increased delivery velocity, smoother collaboration between groups, higher-quality development, and better documentation.
Using InnerSource can help companies become more efficient by:
- Making it easy to find and reuse code on a broad scale, minimizing wasted resources and duplication.
- Driving rapid development, regardless of company size.
- Reducing silos to enable simple, fast collaboration throughout the entire organization—inside and between teams and functions, as well as across teams and business lines.
- Increasing clarity between engineers and management, as well as anyone else with a vested interest.
- Creating a culture of openness, a precursor to open source participation.
- Reinforcing the pride, growth, and job satisfaction felt by team members who help wherever there is a need.
Leading enterprises such as Paypal, Bloomberg, and Walmart practice InnerSource to deliver software for internal use and external consumption. It provides them with a unique competitive advantage and helps them stay relevant by ensuring that they are on the cutting edge of software development.
We see InnerSource as a way to improve efficiency through code reuse. But even beyond that, it's an amazing conduit for learning and exchanging ideas and facilitating innovation within IBM.
Jeff Jagoda, Senior Software Engineer, IBM
Is it right for your organization?
Companies that are committed to building software and tooling to enable their specific business process, or attempting to build a new business enabled by software and data, are the ones most likely to successfully adopt an InnerSource strategy and reap the benefits of better code, delivered faster.
InnerSource Best Practices:
- Realistic vision, articulated shared purpose and clearly defined problems or opportunities being addressed
- Key participants (initiators, catalysts, evangelists) should have collaborative experience/mindset
- Socialization model to help new participants acclimate
- Programmatically facilitated continuous interaction and behavioral consistency
- Start with an intra-organizational group of people with defined shared goals
Organizational culture is an especially critical factor when adopting InnerSource, as implementing this open methodology can mean a significant shift in how individuals see themselves and their responsibilities. The nature of an effective program is collegiate, informal, mentored, self-selecting, and supportive through the lifecycle of its participants.
Some organizations actively encourage the transparent sharing of knowledge, while others consistently reinforce silos of knowledge. InnerSource aims to work across silos and eliminate barriers to collaboration—allowing knowledge to be shared throughout the company. The degree to which an organization supports knowledge-sharing and silo-reducing initiatives can be a good a sign of how prepared it is for InnerSource adoption.
Other indicators of organizational readiness include:
- Open and transparent culture
- Development on a collaborative platform
- Support by all levels of employees
- Participant autonomy
- Open source participation
- Continuous integration practices
- Small, interconnected communities
- Community leadership
Every company is different, and none of these examples should be seen as prerequisites for an organization to begin practicing InnerSource. Many companies choose to start with a pilot program to get the ball rolling and determine how InnerSource can work best for them.
Adopting InnerSource is not something that happens overnight, as it can have an impact across the organization. Successful implementations are built on a foundation of trust—where individuals are encouraged to take ownership and at the same time work together towards a shared goal.
Once you embrace it [InnerSource] and see new teams come on, you show examples of places where not only can people contribute, you unlock bottlenecks.
Jeremy King, Executive Vice President & Chief Technology Officer for Global eCommerce, Walmart
Ready to get started?
Companies looking to adopt the practices of InnerSource often begin by evaluating their development tools and centralizing software development on a single, collaborative platform. GitHub has helped organizations of all sizes realize the benefits of an InnerSource culture, and how to embrace this open way of working. Democratizing access brings a new level of transparency to organizations and (as the largest host of source code in the world) GitHub enables developers to can discover, reuse, and contribute. Collaboration can also go beyond the engineering team to include product managers, designers, copywriters, security teams, and more. Work moves faster and projects get smarter because they start at the point of innovation.
GitHub transformed the way software is built by bringing collaboration and code review directly into the development process, and has spent every year since adding features and products that help developers focus on what they do best. Adopting GitHub at work means new developers can get up to speed in days (not weeks or months), and start making contributions right away. And, giving developers tools they love to use means work isn’t just more efficient, it’s more enjoyable.
InnerSource provides a unique approach to advance development processes, shorten time-to-market, help overcome organizational barriers, enhance software quality, and improve job satisfaction. With roots in the open source best practices of modern software development, GitHub is an ideal partner on your journey to InnerSource success.