Skip to content
Cobalt Rentals

How Shell uses GitHub

Hero image for the story: Shell

Shell puts energy where it's needed—from oil and natural gas to hydrogen fuel cells to electric vehicle charging stations. The company currently sells around 230 terawatt-hours of electricity a year to more than 15 million customers worldwide and aims to increase that to 560 terawatt-hours by 2030, bringing power to 100 million people in Africa and Asia currently without electricity.

Location: London, England
Industry: Energy
GitHub Seats: 4,013

Unifying developer resources through innersource

The energy industry is digitizing rapidly amidst the quest to power the world while reaching net-zero emissions. Software is key to greening the grid, and Shell needed their developers to focus on innovation. If one developer solved a problem, they wanted all their developers to benefit from that solution instead of wasting resources on it again and again. That led Shell to embrace the innersource ethos, where developers share code, documentation, and other resources internally and allow teams from different parts of the organization to contribute improvements to shared projects.

With innersource, developers are freed from working on issues that other teams have already solved, and anyone in the organization can improve on those solutions—to the benefit of the whole company. "If you look at industry standards, the more code developer teams share, the better they are able to collaborate," says DevOps Transformation Lead Sherin Mirza.

Centralizing tools and practices

GitHub Enterprise provides a central hub for innersource projects and a unified platform for managing DevSecOps through GitHub Actions and Dependabot. Shell uses a wide variety of source code management and CI/CD tools but is progressively migrating projects to GitHub. "We try not to be too opinionated or force people to use particular tools," Mirza says. "But we're shifting towards GitHub so that all employees can find code in one place."

Shell recognized that innovation and collaboration emerge organically from the right combination of culture, process, and technology. They enlisted GitHub Professional Services to implement a plan to promote innersource and ensure best practices are in place to aid utilization and growth. By focusing on cultivating an innersource culture with high-value, low-barrier seed projects and key high-interest communities, Shell has been able to increase the number of innersourced projects, grow the number and size of subject-matter communities, enable knowledge sharing, and rally teams around Shell's greater mission while producing more secure code.

Shell has more than 6,000 repos on GitHub so far. "This is still the beginning," Mirza says. "GitHub is the perfect platform to help the Shell developer community share their work and adopt software engineering best practices."

Developer portal and knowledge sharing

Mirza's team maintains a Shell developer portal that acts as a one-stop shop for code, documentation, training, guidelines, and other information. The platform uses GitHub as a backend. Anyone who wants to contribute to documentation or guidelines for a project—such as the custom distribution of React used at Shell—can open a pull request and, once accepted, see their changes appear on the portal instantly. More than 80 developers have already contributed content to the portal. "Without GitHub, we couldn't even think about achieving this sort of collaboration," says Cloud DevOps Assistant Lead Julio Silveira.

Expanding collaboration beyond software engineers

It's not just developers collaborating at Shell. "We have a lot of people who write code as part of their job, but aren't software engineers," Silveira says. "For example, we have people who work in data science or DevOps who build innersource projects on GitHub." DevOps engineers, for example, share many infrastructure-as-code projects. "Almost all of our AWS and Azure templates, Terraform configuration files, and GitHub Actions are available as innersource on GitHub," Silveira says.

Accelerating CI/CD migration with GitHub Actions

GitHub Actions are increasingly important at Shell. Mirza hopes to fully migrate Shell's CI/CD from Jenkins and CircleCI to Actions. Innersource is driving that shift. Teams are sharing their custom Actions on GitHub itself so other teams can either reuse them or use them as a starting point for creating their own. "Shareability is a big part of why we've been able to drive adoption so quickly," Mirza says. "Developers are really excited about GitHub Actions and eager to share what they've learned. It's a great application of the Innersource ethos."

Strengthening security and compliance

Security scans are one of the most common applications of Actions so far. "GitHub is wonderful from an enterprise compliance perspective," Mirza says. "Thanks to Dependabot, we were able to act very quickly to mitigate the Log4j vulnerability because we could easily see which repos were affected." Without an automated tool like Dependabot to surface security issues, teams would have to check their repos manually to see which ones were vulnerable. Dependabot automatically generates pull requests for vulnerable repos, instantly kicking off the process to fix the issue. Without Dependabot, it could have taken Shell days, weeks, or even months longer to patch vulnerabilities.

Improving communication and collaboration

Beyond code and documentation, GitHub has become a vital place for technical conversations at Shell. "GitHub really enhanced our communications," Silveira says. "Before, it was easy for conversations to get lost in emails. Now, with pull requests and issues, conversations happen in the same place developers do their work. It helps keep communications in the right context and makes it easier to find relevant information later."

"Opening an issue is often far more important than contributing code," Mirza says. "It's the first step in improving a product or starting a dialog. It's the starting point for collaboration."

GitHub is driving more collaboration at Shell as developers securely share code. Thanks to automations powered by Actions and shared innersource libraries, developers are spending more time on new products and features, keeping Shell ahead of the curve as the energy industry transforms.

"Most new developers already know GitHub and want to use it, so that helps with recruiting and retention," says Julio Silveira. "Internally, developers get excited because if they don't know GitHub already, they want to learn it."