As GitHub describes in their case study Vodafone has adopted GitHub Enterprise and Azure DevOps to build a global practice of “innersourcing“.
They interviewed Ben Connolly, Global Director of Cloud Engineering & Head of Digital Engineering, Ahmed El Sayed, Europe Director of Engineering and UK CIO, and DevOps Solutions Owner Stefan Euripidou.
As well as core connectivity Vodafone develops solutions for a wide spectrum of use cases, such as home security, home automation, and other Internet of Things (IoT) products and services. With more than 9,000 developers working across 12 countries the company is rapidly becoming not just a telco but one of the world’s largest software companies.
Global Scale Challenges
However they faced a challenge where each development team at the company chose their own tools, such as some managing source code in GitHub, while others used BitBucket or GitLab. The lack of a unified DevOps platform, along with the geographic separation of the teams, led to inefficiencies, with developers building solutions to problems other teams in other locations had already solved, instead of focusing on innovation.
To address this Vodafone chose to standardize on GitHub Enterprise and Microsoft Azure DevOps. With the majority of its code migrating to a unified DevOps platform, Vodafone’s development efforts operate like a single, global team rather than several disparate companies.
- 400% increase in developer productivity.
- 500 releases per month, up from five per year.
- 50% reduction in code defects and rework.
- 40% expected faster development times for teams that use innersource components in projects.
Vodafone uses both Azure DevOps and GitHub Actions for CI and test automation, providing engineers with faster feedback while code is still fresh in their minds. Likewise, rollbacks happen automatically.
Developers can collaborate on code stored in GitHub while using Azure Boards for project management and Azure Pipelines to deploy applications to their multi-cloud environment. Thanks to integrations between GitHub and Azure DevOps, Vodafone teams can take advantage of all these features from a single interface, creating one global view of the entire application lifecycle, regardless of where in the organization an application is built or what cloud or infrastructure it will be deployed to.
Some teams are embracing GitOps practices to manage cloud infrastructure and automate a wide range of tasks.
Innersourcing
Vodafone adopted a very simple principle to tackle a very complex problem, one which many global scale enterprise software organizations face.
Each country built their own “My Vodafone” app that provides customers with billing information and payment options, and although each country has different regulatory requirements and market needs, most of the application logic for all of the apps is the same. Yet teams in each country were building their own versions of this app from scratch.
To address this Vodafone is accelerating development time by cultivating an “innersource” culture on GitHub and Azure DevOps.
“Now, with GitHub and other Azure DevOps capabilities, we can very simply say two things: if you’re going to build it and it already exists, don’t build it again. And if it doesn’t already exist and you need it, then build it yourself but build it so that everybody can use it,” Connolly said.
The approach paid immediate dividends: A team in Portugal created a URL-shortening service that is now used by teams in multiple countries. While it has taken time for Vodafone’s developers to make the cultural shift to innersource, teams are recognizing that being able to reuse code means more free time to work on other impactful projects.
Vodafone estimates that automation and innersource collaboration have resulted in a fourfold increase in developer productivity based on the number of releases and the quality of output—without the need to increase headcount. The global web engineering team shaved off about 40% of their time to deliver new features and releases whenever the global source library is used.
GitHub provides a foundation for this inter-continental collaboration. Teams will use pull requests as a virtual space to track and discuss changes, and GitHub Pages and Issues enable developers to share documentation, get up-to-speed on projects, and discuss potential improvements, all in the same location. Vodafone uses GitHub Enterprise Managed Users and Teams to help ensure that its developers can work together safely.
These features, implemented with the help of GitHub’s Customer Success, Field Services, and Expert Services teams, enabled Vodafone to build a hybrid cloud/on-premise model to support compliance with data sovereignty laws.
Today, Vodafone developers have a shared library for building infrastructure and web components, with more than 200 different components contributed by teams around the world. Because these components have already been tested and cleared compliance hurdles, teams can put them to use right away.
El Sayed explains. “We’ve given Vodafone developers the opportunity to solve new problems and build things not just for their local market, but for millions of Vodafone customers around the world.”