Journey to GitHub: Ensuring Developer Happiness Every Step of the Way

LinkedIn Engineering Team
11 min readintermediate
--
View Original

Overview

The article discusses LinkedIn's transition from monolithic repositories to GitHub, focusing on enhancing developer satisfaction through improved tools and workflows. It outlines the evaluation process for selecting GitHub, the migration strategy, and the measures taken to ensure a smooth transition for developers.

What You'll Learn

1

How to evaluate source code management platforms based on scalability and performance

2

Why a gradual migration approach can reduce risks during repository transitions

3

How to implement custom workflows that enhance developer productivity on GitHub

Prerequisites & Requirements

  • Understanding of source code management systems
  • Familiarity with Git and GitHub functionalities(optional)

Key Questions Answered

What were the key criteria for choosing GitHub as LinkedIn's SCM?
LinkedIn evaluated GitHub based on over 150 requirements across six pillars: scalability, performance, visibility, reliability, extensibility, and security. Key factors included the ability to handle over 34,000 repositories, continuous integration jobs, and compliance with security policies.
How did LinkedIn ensure developer happiness during the migration to GitHub?
LinkedIn focused on developer happiness by involving them in the migration process, providing a self-serve migration tool, and implementing custom workflows that included automated static analysis and peer review notifications. This approach helped maintain productivity and satisfaction throughout the transition.
What tools did LinkedIn build to facilitate the migration to GitHub?
LinkedIn developed a self-serve migration tool with a command line interface (CLI) that guided teams through the migration process, ensuring that repository metadata was preserved. Additionally, they created Cloud Bridge to manage webhooks and GitHub Apps, enhancing integration and reliability.
What metrics did LinkedIn use to measure developer satisfaction post-migration?
LinkedIn tracked Customer Satisfaction (CSAT) scores to gauge developer happiness with the new GitHub platform. The CSAT score improved from a range of 3.3 - 3.8 before migration to over 4.49 after implementing GitHub, indicating a significant increase in satisfaction.

Key Statistics & Figures

Number of repositories at LinkedIn
34,000
LinkedIn's scale necessitated a robust SCM solution capable of handling a vast number of repositories.
Annual commits by active contributors
200,000
This volume of contributions highlighted the need for an efficient SCM system to manage code effectively.
CSAT score after GitHub adoption
4.49
This score reflects a significant improvement in developer satisfaction compared to the previous range of 3.3 - 3.8.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implement a gradual migration strategy to minimize disruption during transitions.
Migrating all repositories at once can lead to significant issues, including tool incompatibility and operational downtime. A phased approach allows teams to adapt and ensures that all necessary tools are compatible with the new system.
2
Utilize automation tools to streamline workflows and enhance developer productivity.
By integrating static analysis tools and automated notifications for code reviews, LinkedIn reduced the manual workload on developers, allowing them to focus on more complex tasks while maintaining compliance with security standards.
3
Regularly gather feedback from developers to assess satisfaction and improve processes.
Using CSAT scores and direct testimonials from developers helped LinkedIn identify areas for improvement and adjust their workflows and tools to better meet developer needs.

Common Pitfalls

1
Rushing the migration process can lead to tool incompatibility and operational disruptions.
A big bang approach may seem efficient but often results in unforeseen issues that can halt development. A gradual migration allows for testing and adjustments, ensuring a smoother transition.

Related Concepts

Source Code Management
Developer Experience
Continuous Integration
Automated Workflows