- Microsoft Office telah lama menggunakan Source Depot, sistem manajemen source code internal, lalu melakukan migrasi besar-besaran ke Git demi pengalaman pengembang dan inovasi teknis
- Source Depot memiliki keterbatasan produktivitas karena tersentralisasi, branching lambat, dan alur kerja yang tidak praktis, sehingga perpindahan ke Git membutuhkan ratusan engineer dan pekerjaan selama beberapa tahun
- Dalam proses migrasi, mereka mengatasi tantangan teknis dan organisasi skala besar seperti pengembangan teknologi baru seperti VFS for Git, porting infrastruktur build/test lama, dan pengoperasian sistem paralel
- Untuk keberhasilan migrasi, mereka menekankan pendekatan kolaboratif dan berpusat pada manusia seperti sistem komunikasi berbasis "champion", transparansi yang berani, pelatihan praktis, dan strategi rollback instan
- Setelah migrasi, muncul hasil positif seperti waktu onboarding yang menurun, peningkatan preferensi terhadap Git (89%), dan produktivitas yang lebih baik, sekaligus meninggalkan pelajaran penting tentang perubahan teknis berskala besar
Dari Source Depot ke Git: Pengalaman migrasi skala besar Microsoft Office
Tantangan baru: memaksimalkan produktivitas pengembang
- Upaya meningkatkan produktivitas pengembang adalah 'Multiplier work', dan nilainya makin besar di organisasi berskala besar
- Proyek migrasi Microsoft Office dari Source Depot ke Git menjadi contoh pengalaman yang representatif
- Pekerjaan ini bukan sekadar pergantian alat, melainkan proyek besar yang melibatkan ratusan engineer, sistem yang kompleks, dan waktu yang panjang
Source Depot: kisah pengelolaan source code pada masa itu
- Pada awal 2000-an, Microsoft mengoperasikan Source Depot, sistem version control internal berbasis teknologi Perforce
- Source Depot memiliki keterbatasan efisiensi kerja karena branching yang lambat, sentralisasi, waktu checkout kode yang panjang, serta metode merge yang tidak nyaman (Reverse/Forward Integrate)
- Karena sangat terikat dengan seluruh infrastruktur pengembangan (build, release, workflow), sistem ini tidak bisa begitu saja diganti
- Peralihan Microsoft Office ke Git membutuhkan waktu bertahun-tahun dan upaya ratusan engineer
Dimulai dari OneNote: awal migrasi
- Di organisasi engineering Office, biaya pemeliharaan dan patch Source Depot serta kebutuhan akan “teknologi yang kompetitif” mendorong keputusan migrasi besar-besaran ke Git
- Karena lini produk Office memiliki jadwal pengembangan yang berbeda menurut siklus rilisnya (beberapa bulan, semesteran, bulanan, Insider), diperlukan operasi paralel Source Depot-Git dalam jangka panjang
- Konsistensi version control Office, verifikasi build, dan porting infrastruktur test legacy pun muncul sebagai tugas penting
Skala Office dan strategi komunikasi
- Saat itu, Office adalah organisasi raksasa tempat 4.000 engineer berkolaborasi
- Setiap tim menunjuk 'Developer Satisfaction Champion', lalu membangun struktur feedback dan komunikasi yang lancar melalui model hub-spoke yang menghubungkan tiap tim
- Penulis berperan sebagai champion untuk OneNote dan memegang peran kunci di lapangan dalam migrasi berskala besar ini
VFS for Git: menembus batas codebase raksasa
- Karena satu kali git clone saja membutuhkan lebih dari 200GB, masalah ini diatasi dengan Virtual File System for Git (VFS for Git) yang dikembangkan bersama GitHub
- VFS for Git mengatasi keterbatasan Git standar dengan cara hanya mengambil file yang benar-benar digunakan
- Bersama Microsoft Windows, ini menjadi pengalaman menembus batas sistem version control berskala terbesar di industri
Pendekatan migrasi bertahap
Tahap 1: Parallel Universe
- Mereka membangun layanan bridge yang menyinkronkan Source Depot dan Git secara real-time, lalu berulang kali memperbaiki masalah ketidaksesuaian dan perbedaan model kedua sistem (struktur branch, changelist, dan lain-lain)
- Proses branch utama/private Office-sinkronisasi-build dioperasikan sebagai sistem otomatis 24/7
- Setelah tiga kali percobaan ulang, sistem paralel yang stabil akhirnya berhasil diwujudkan
Tahap 2: verifikasi ekuivalensi
- Seluruh test suite dijalankan berulang di kedua sistem untuk membuktikan bahwa hasil build benar-benar identik
- Perbedaan halus seperti format line ending, huruf besar-kecil, dan format hasil test di-debug serta diselesaikan selama berbulan-bulan
- Dengan capaian 'Green across the board' (test lulus di kedua sistem), mereka siap masuk ke tahap transisi nyata
Pendekatan yang berpusat pada manusia
Komunikasi multi-kanal dan berulang
- Untuk menyelaraskan jadwal 4.000+ engineer dan puluhan tim, dibangun sistem komunikasi intensif bersama champion di tiap tim
- Pengumuman penting disampaikan setidaknya 3 kali (email, Teams, wiki, meeting, dan sebagainya) untuk meminimalkan kebingungan
- Saat masalah muncul, keterbukaan informasi yang langsung dan transparan digunakan untuk membangun kepercayaan
Pelatihan adopsi Git dan proses adaptasi
- Untuk engineer yang telah terbiasa dengan Source Depot selama 10 tahun, disiapkan lingkungan pelatihan berbasis praktik serta panduan perintah transisi sebagai sistem pembelajaran bertahap
- Melalui pustaka video yang berfokus pada praktik nyata, mereka menyediakan pembelajaran berbasis skenario riil
- Pendekatan ini tidak hanya mengurangi kecemasan dan memperkuat kemampuan, tetapi juga membantu adaptasi terhadap workflow yang sudah ada
Strategi rollback dan pengaman
- Saat transisi nyata dilakukan, Director diberi 'red button' sehingga rollback bisa dilakukan kapan saja bila terjadi masalah serius
- Sebagian riwayat lama di Source Depot tetap dipertahankan dalam jangka panjang agar histori pengembangan yang ada tetap aman
Hasil dan pencapaian utama
- Setelah migrasi, terlihat penurunan waktu onboarding sebesar 50%, preferensi terhadap Git sebesar 89%, peningkatan performa build, efisiensi code review, dan kolaborasi yang lebih baik sebagai dampak peningkatan produktivitas
- Para engineer juga menilai positif karena mereka memperoleh keterampilan yang dapat ditransfer di industri
- Kemampuan personel baru untuk langsung berkontribusi juga meningkat
Pelajaran inti dari migrasi skala besar
- Keberhasilan tidak hanya bergantung pada faktor teknis; perlu investasi komunikasi yang berpusat pada manusia jauh lebih besar dari perkiraan
- Penekanan diberikan pada pembangunan sistem paralel, pembuktian ekuivalensi yang sempurna, desain rollback yang tegas sejak awal, dan peran personel kunci (champion)
- Pengukuran paralel atas indikator kualitatif seperti tingkat kepuasan juga mutlak diperlukan, dan dalam proses perubahan, stabilitas organisasi serta rasa aman psikologis sangat penting
- Hakikat perubahan besar adalah manajemen perubahan yang luwes dan sistematis di seluruh organisasi
Penutup dan penerapan ke depan
- Migrasi Git di Office adalah proyek bersejarah yang terwujud melalui persiapan selama bertahun-tahun dan eksekusi selama berbulan-bulan
- Pada akhirnya, ini menjadi contoh keberhasilan mendorong perubahan organisasi sambil menjamin keterhubungan kerja ribuan orang
- Dalam perubahan besar lain seperti migrasi cloud, pemecahan arsitektur monolitik, atau upgrade framework, verifikasi paralel, komunikasi berulang, dan desain rollback cepat dapat diterapkan dengan cara yang sama
- Detail teknis seperti infrastruktur build serta isu offline/kontrak tidak dibahas lebih lanjut, tetapi pelajaran terpenting tetaplah pendekatan strategis dan organisasional terhadap perubahan teknis berskala besar
3 komentar
Kalau banyak menangani file biner, git mungkin kurang cocok, tetapi untuk repositori yang berfokus pada kode, sepertinya git sudah cukup memadai.
Mungkin ini juga perubahan besar di internal MS, tetapi efek positifnya adalah fitur seperti partial clone, sparse checkout, dan alat seperti Scalar juga jadi dipublikasikan ke luar sehingga bisa digunakan oleh publik haha
Komentar Hacker News