Movatterモバイル変換


[0]ホーム

URL:


Skip to contentSkip to sidebar
/Blog
Try GitHub CopilotAttend GitHub Universe

Solving the innersource discovery problem

Imagine you’re in an organization with over 2,000 repositories across several different product lines. It can be daunting task to find the right project.

|
|4 minutes
  • Share:

Innersource is the practice of creating reusable code for the purpose of sharing within the boundaries of an organization. Innersource at scale within an organization can be difficult to accomplish for many reasons, but one common challenge is the “discovery problem,” best described as the challenge of spreading awareness about what opportunities or existing innersource projects exist in an organization.

Understanding the problem

Imagine for a moment that you’re in an organization with over 2,000 repositories across several different product lines. You’re about to start a new project and are looking for reusable code within your organization that might help you meet your tight project deadline. In this situation, it can be a very daunting task to search for all the right terms or determine if a project is even written in a reusable, modular way.

This discovery problem is an important one to solve for organizations. What typically occurs when an engineer creates some reusable software is they share that project with their limited network which typically includes colleagues on the same project as well as various support teams. But, the best case scenario here would be for the author to share the reusable project with other product lines or functional teams to maximize the visibility and access. This gap in awareness exists because common organizational structures today emphasize team groupings based on what product is being developed rather than grouping people with similar job roles together.

Given the structural nature of this obstacle, the solution should also be structural. Encouraging more networking can be helpful, but alone it doesn’t provide lasting results. Instead, I suggest focusing on solutions that can live beyond personnel changes and can be included in standard software development processes. Below are some general best practices, as well as a specific project I’ve seen success with.

Building better discoverability

Improving discoverability requires a multi-faceted approach in order to include the structural and cultural components. Here are some helpful practices to keep in mind while addressing the discoverability problem.

  • Start an innersource community of practice. Starting a regular meeting or establishing a channel for those who work on innersource projects can help practitioners collaborate. This aids in preventing rework and giving participants a sense of team beyond their direct team. Communities of practice go beyond networking alone by creating a discussion space that is not tied to personal relationships. More information is available on how to start a community of practice atopensource.com.
  • Identify strategic opportunities. Spend time identifying what groups might work in similar roles even if they’re distant on an org chart. Bringing these folks together through networking events, brown bag knowledge sharing, and brainstorm sessions can tease out the strategic areas to pursue innersource projects.
  • Standardize tooling. A major obstacle to discoverability is a lack of shared technology and tools. Standardizing tooling can help ensure that those looking to share code will not need to “port” it to their preferred language or framework.

Using a project portal

There are also some tactical things you can do to encourage innersource adoption. I’ve found that building a project portal is a good way to get people involved and increase project visibility. SAP released a beautiful project calledSAP InnerSource Project Portal that helps address this challenge. The project portal lists all projects within an organization on a single searchable website with an easy to use interface.

This not only helps innersource projects to gain exposure across an organization, but also increases the potential for new contributors to improve the project.

As you can read from theirREADME.md, the only additional pieces needed to get this project running are hosting, and an innersource crawler. Hosting provides private access to the organization users to be able to view and use the website, and the innersource crawler provides the necessary information about which repositories should be listed. Luckily, GitHub recently announcedprivate pages, which fits perfectly as the hosting piece. This makes hosting aone-click setup in the settings tab of the repository.

As for the innersource crawler, I have createda project to handle that part. Then I use thisGitHub Action that takes therepos.json created by the crawler and feeds it to the project portal website. If you wish to have all repositories that are internally visible included in your InnerSource Portal, then theea-repo-list is a great option for this.

If you prefer a different look you could also check out the alternative solution calledEnterprise Showcase. This solution provides a static website hosted on GitHub Pages that displays all of your internally visible projects in one easy to use location.

If discoverability is a problem that your organization is facing in its innersource journey, I would encourage you to try out the practices I’ve outlined in this post. And if you’re keen to get started right away, you can fork theSAP portal repo and theinnersource crawler repo, make your configuration changes to fit your organization, and run theGitHub Action on your crawler repo fork.


Written by

More onGitHub Actions

When to choose GitHub-Hosted runners or self-hosted runners with GitHub Actions

Comparing GitHub-hosted vs self-hosted runners for your CI/CD workflows? This deep dive explores important factors to consider when making this critical infrastructure decision for your development team.

5 GitHub Actions every maintainer needs to know

With these actions, you can keep your open source projects organized, minimize repetitive and manual tasks, and focus more on writing code.

Get free access to GitHub Enterprise Choose from two trial plans designed to help your business grow.Start a free trial

Related posts

CI/CD

When to choose GitHub-Hosted runners or self-hosted runners with GitHub Actions

Comparing GitHub-hosted vs self-hosted runners for your CI/CD workflows? This deep dive explores important factors to consider when making this critical infrastructure decision for your development team.

DevSecOps

Enhance build security and reach SLSA Level 3 with GitHub Artifact Attestations

Learn how GitHub Artifact Attestations can enhance your build security and help your organization achieve SLSA Level 3. This post breaks down the basics of SLSA, explains the importance of artifact attestations, and provides a step-by-step guide to securing your build process.

CI/CD

Streamlining your MLOps pipeline with GitHub Actions and Arm64 runners

Explore how Arm’s optimized performance and cost-efficient architecture, coupled with PyTorch, can enhance machine learning operations, from model training to deployment and learn how to leverage CI/CD for machine learning workflows, while reducing time, cost, and errors in the process.

Explore more from GitHub

Docs

Docs

Everything you need to master GitHub, all in one place.

Go to Docs
GitHub

GitHub

Build what’s next on GitHub, the place for anyone from anywhere to build anything.

Start building
Customer stories

Customer stories

Meet the companies and engineering teams that build with GitHub.

Learn more
GitHub Universe 2025

GitHub Universe 2025

Last chance: Save $700 on your IRL pass to Universe and join us on Oct. 28-29 in San Francisco.

Register now

We do newsletters, too

Discover tips, technical guides, and best practices in our biweekly newsletter just for devs.


[8]ページ先頭

©2009-2025 Movatter.jp