Migration of Legacy Development Flows

Migration of Legacy Development Flows

We recently worked with a Global 500 company, leader in its sector, to overhaul their legacy Source Code Management (SCM) and Continuous Integration (CI) systems.

The company had been using a well-regarded SCM tool, Phacility Phabricator, but the tool was no longer supported by the vendor and the company engaged with us to migrate to GitHub, a modern and popular SCM.

Taking advantage of the migration, the company also wanted to improve their CI pipelines, which were running on-premises with Jenkins, and asked us to migrate parts of this system to GitHub Actions.

Execution

This project was planned and executed carefully because SCM and CI systems are mission-critical for any company where software is a core part of the business.

Developers use these systems daily so it’s important to execute a migration correctly and in a seamless way.

Source Code Management

We worked with the Client to plan the migration and a key decision was whether they needed a completely seamless migration, with both systems running in parallel for a period of time, or they could tolerate a short downtime and clear cut-off.

The Client opted for a clear cut-off, which made the migration easier to execute.

After a few weeks of preparation, where we worked to clean up the existing SCM, execute trial migrations and test the resulting repositories extremely thoroughly, we executed the migration over a weekend, with zero disruption to the development teams.

Continuous Integration

CI systems are systems that execute software builds and run test suites for each set of changes in a software product. They are often complex and the Client’s was no exception.

This particular system had been built over years and was running on Jenkins, interacted with specific on-premises machines and contained a lot of custom logic.

We worked with the Client to identify parts of the system that benefited most from running in a modern CI system like GitHub Actions, and migrated those to self-hosted GitHub runners, while keeping the rest of the jobs running on Jenkins.

Results

The migration was seamless and successful, and led the Client to additional engagements with us. (Thank you!)

If you’d like to discuss a similar migration or adiacent Developer Efficiency projects, feel free to reach out.