- Microsoft Office, uzun süre şirket içi kaynak yönetim sistemi Source Depot'yu kullandıktan sonra, geliştirici deneyimi ve teknik yenilik için Git'e büyük ölçekli bir geçiş gerçekleştirdi
- Source Depot, merkezi yapı, yavaş dallanma, elverişsiz iş akışları nedeniyle üretkenlikte sınırlara sahipti; Git'e geçiş ise yüzlerce mühendisin ve yıllara yayılan çalışmanın sonucu oldu
- Geçiş sürecinde VFS for Git gibi yeni teknolojilerin geliştirilmesi, mevcut derleme/test altyapısının taşınması, sistemlerin paralel işletilmesi gibi büyük teknik ve organizasyonel zorluklar aşıldı
- Başarılı bir geçiş için "champion" odaklı iletişim yapısı, cesur şeffaflık, pratik eğitim ve anında geri alma stratejisi gibi işbirlikçi ve insan odaklı bir yaklaşım vurgulandı
- Geçiş sonrasında onboarding süresinin kısalması, Git tercih oranının artması (%89) ve üretkenlik artışı gibi olumlu sonuçlar elde edildi; aynı zamanda büyük ölçekli teknik değişimlere dair önemli dersler bırakıldı
Source Depot'tan Git'e: Microsoft Office'in büyük ölçekli geçiş deneyimi
Geliştirici üretkenliğini en üst düzeye çıkarma yönünde yeni bir meydan okuma
- Geliştirici üretkenliğini artırma çalışmaları 'Multiplier work' niteliğindedir ve organizasyon büyüdükçe değeri daha da artar
- Microsoft Office'in Source Depot'tan Git'e geçişi bu durumun temsilî örneklerinden biriydi
- Bu çalışma, basit bir araç değişiminden ibaret değildi; yüzlerce mühendisi, karmaşık sistemleri ve uzun bir zaman dilimini kapsayan büyük bir projeydi
Source Depot: o dönemin kaynak yönetimi hikâyesi
- 2000'lerin başında Microsoft, Perforce teknolojisi tabanlı kendi sürüm yönetim sistemi Source Depot'yu işletiyordu
- Source Depot; yavaş dallanma, merkezi yapı, uzun kod checkout süreleri ve elverişsiz birleştirme yöntemi (Reverse/Forward Integrate) nedeniyle iş verimliliğinde sınırlamalar yaratıyordu
- Tüm geliştirme altyapısına (derleme, sürüm, iş akışı) sıkı biçimde bağlı olduğundan, basitçe değiştirilebilecek bir yapı değildi
- Microsoft Office'in Git dönüşümü yıllar ve yüzlerce mühendisin emeğini gerektirdi
OneNote ile başlayan geçiş
- Office mühendislik organizasyonunda Source Depot'nun bakım/yama maliyeti ve “rekabetçi teknoloji” ihtiyacı nedeniyle büyük çaplı Git geçişi kararı alındı
- Office ürün ailesinde sürüm döngüleri (birkaç ayda bir, altı aylık, aylık, insider) farklı olduğu için uzun süreli Source Depot-Git paralel işletimi gerekiyordu
- Office sürüm yönetiminde tutarlılık, derleme doğrulaması ve eski test altyapısının taşınması zorunlu başlıklar olarak öne çıktı
Office'in ölçeği ve iletişim stratejisi
- Office, o dönemde 4.000 mühendisin birlikte çalıştığı devasa bir organizasyondu
- Her ekip için bir 'Developer Satisfaction Champion' belirlendi; ekipleri birbirine bağlayan hub-spoke modeli ile akıcı geri bildirim ve iletişim yapısı kuruldu
- Yazar, OneNote'un champion'ı olarak büyük ölçekli geçiş sahasında kilit bir rol üstlendi
VFS for Git: dev kod tabanının sınırlarını aşmak
- Tek bir git clone işleminin 200GB'den fazla gerektirecek kadar büyük bir kod tabanı söz konusuydu; bu sorun GitHub ile birlikte geliştirilen Virtual File System for Git (VFS for Git) ile çözüldü
- VFS for Git, yalnızca gerçekten kullanılan dosyaları getirerek temel Git'in sınırlarını aştı
- Microsoft Windows ile iş birliği içinde, sektörün en büyük sürüm yönetim sistemlerinden birinin sınırlarını aşan bir deneyim yaşandı
Geçişte aşamalı yaklaşım
1. aşama: Paralel evren (Parallel Universe)
- Source Depot ile Git'i gerçek zamanlı senkronize eden bir bridge servisi kuruldu; iki sistem arasındaki tutarsızlıklar ve model farkları (dal yapısı, changelist vb.) tekrar tekrar iyileştirildi
- Office ana/özel dalları-senkronizasyon-derleme süreci 7/24 otomatik bir sistemle işletildi
- Üç yeniden denemenin ardından kararlı çalışan paralel sistem hayata geçirildi
2. aşama: Eşdeğerlik doğrulaması
- Tüm test suite'leri iki sistemde tekrar tekrar çalıştırılarak derleme sonuçlarının tamamen aynı olduğu kanıtlandı
- Satır sonu biçimi, büyük/küçük harf, test sonuç biçimi gibi ince farklar aylar boyunca debug edilip çözüldü
- 'Green across the board' (her iki sistemde de tüm testler geçti) sonucuyla, gerçek geçiş aşamasına hazır olunduğu doğrulandı
İnsan odaklı yaklaşım
Çok kanallı, tekrar eden iletişim
- 4.000'den fazla mühendis ve onlarca ekibin takvimini hizalamak için, ekip champion'ları üzerinden yoğun bir iletişim sistemi kuruldu
- Önemli duyurular en az 3 kez (e-posta, Teams, wiki, toplantılar vb.) tekrar edilerek karışıklık en aza indirildi
- Sorun çıktığında, anında ve şeffaf bilgi paylaşımı ile güven sağlandı
Git'e geçiş eğitimi ve uyum
- 10 yıl boyunca Source Depot'ya alışmış mühendisler için uygulamalı eğitim ortamı ve geçiş komutları rehberi gibi kademeli bir öğrenme sistemi hazırlandı
- Pratik odaklı video kütüphanesi gibi kaynaklarla gerçek senaryolara dayalı öğrenme sunuldu
- Bu yaklaşım yalnızca kaygıyı azaltmak ve yetkinliği artırmakla kalmadı, mevcut iş akışına uyumu da destekledi
Geri alma stratejisi ve güvenlik önlemleri
- Gerçek geçiş anında Director'a bir 'red button' verildi; ciddi bir sorun halinde her an anında rollback yapılabiliyordu
- Source Depot'taki bazı geçmiş kayıtlar uzun süre korundu ve mevcut geliştirme geçmişi güvenli biçimde muhafaza edildi
Sonuçlar ve başlıca kazanımlar
- Geçiş sonrasında onboarding süresi %50 kısaldı, Git tercih oranının %89 olduğu görüldü, derleme performansı iyileşti; kod inceleme verimliliği ve ekipler arası iş birliği arttı; bunların tümü üretkenlik artışına dönüştü
- Mühendisler, sektörde aktarılabilir beceriler edinmeyi olumlu değerlendirdi
- Yeni çalışanların doğrudan katkı vermesi de daha kolay hale geldi
Büyük ölçekli geçişlerden çıkarılan temel dersler
- Yalnızca teknik unsurlara değil, insan odaklı iletişime de beklenenden çok daha fazla yatırım yapmak başarı için kritiktir
- Paralel sistem kurmak, tam eşdeğerliği kanıtlamak, en baştan sağlam bir rollback tasarlamak ve kilit kişileri (champion'lar) öne çıkarmak önemlidir
- Memnuniyet gibi nitel göstergelerin de birlikte ölçülmesi şarttır; değişim sürecinde organizasyonel istikrar ve psikolojik güvenlik duygusu kritik rol oynar
- Büyük ölçekli değişimin özü, organizasyon genelinde esnek ve sistematik değişim yönetimidir
Sonuç ve gelecekteki uygulamalar
- Office'in Git geçişi, yıllar süren hazırlık ve aylar süren icra ile gerçekleştirilen tarihî bir projeydi
- Sonuçta, binlerce kişinin iş bağlantılarını koruyarak organizasyonel değişimi başarıyla yürüten bir örnek olarak kaldı
- Cloud geçişi, monolitik mimarinin parçalanması, framework yükseltmeleri gibi diğer büyük dönüşümlerde de paralel doğrulama, tekrar eden iletişim ve hızlı rollback tasarımı aynı şekilde uygulanabilir
- Teknik ayrıntılar (derleme altyapısı, offline/sözleşme meseleleri vb.) ayrıca ele alınmamış olsa da, en önemli ders büyük ölçekli teknik değişimlerde stratejik ve organizasyonel yaklaşımın belirleyici olduğudur
3 yorum
İkili dosyalarla çok çalışıyorsanız
gituygun olmayabilir, ancak kod odaklı bir depo söz konusuysagityeterli gibi görünüyor.MS içinde de büyük bir değişim olmuştur ama bunun sayesinde partial clone, sparse checkout gibi özellikler ve Scalar gibi araçların dışarıya da açılıp kullanılabilir hale gelmesi de bence güzel bir etki olmuş gibi haha
Hacker News görüşleri
stash, hunk bazındastage, etkileşimlirebasegibi çeşitli iş akışları da çok seviliyor.lock) koyarak iki kişinin aynı anda değişiklik yapıp birleştirilemez bir durum yaratmasını önlemek gerekiyor; ayrıca bir sanatçının emeğini çöpe atacak zaman kaybını azaltmak için bu şart.cloneişlemi sadece 20 dakika sürüyordu; günler almamış olması büyük şanstı. Yardım edenlerin isimlerini unutmuş olsam da, yeni başlayanların işe kolay adapte olmasına yardım etme tavrını kendi ekibimde sürdürmeye çalışıyorum.