- Microsoft Office ने लंबे समय तक अपने आंतरिक source management system Source Depot का उपयोग किया, लेकिन developer experience और तकनीकी नवाचार के लिए Git में बड़े पैमाने पर migration किया
- Source Depot में centralized architecture, धीमी branching, असुविधाजनक workflow जैसी सीमाएँ थीं, और Git में migration के लिए सैकड़ों engineers और कई वर्षों का काम लगा
- migration के दौरान VFS for Git जैसी नई तकनीक का विकास, मौजूदा build/test infrastructure का porting, और parallel system संचालन जैसे बड़े तकनीकी और संगठनात्मक चुनौतियों को पार किया गया
- सफल migration के लिए "Champion"-केंद्रित communication system, साहसी transparency, व्यावहारिक training, और तत्काल rollback strategy जैसे collaborative और human-centric approach पर जोर दिया गया
- migration के बाद onboarding time में कमी, Git preference में वृद्धि (89%), productivity improvement जैसे सकारात्मक परिणाम मिले, और बड़े तकनीकी बदलावों के लिए महत्वपूर्ण सबक सामने आए
Source Depot से Git तक: Microsoft Office के बड़े migration का अनुभव
developer productivity को अधिकतम करने की नई चुनौती
- developer productivity बढ़ाने का काम 'Multiplier work' है, और संगठन जितना बड़ा हो, इसका मूल्य उतना अधिक होता है
- Microsoft Office का Source Depot से Git migration इसका एक प्रतिनिधि उदाहरण था
- यह काम सिर्फ tool बदलने का मामला नहीं था, बल्कि सैकड़ों engineers, जटिल systems, और लंबे समय तक चलने वाला एक विशाल project था
Source Depot: उस दौर की source management कहानी
- 2000 के शुरुआती दशक में Microsoft, Perforce तकनीक पर आधारित अपने version control system Source Depot का संचालन करता था
- Source Depot में धीमी branching, centralization, लंबे code checkout time, और असुविधाजनक merge तरीका (Reverse/Forward Integrate) जैसी वजहों से काम की efficiency सीमित थी
- यह पूरे development infrastructure (build, release, workflow) के साथ गहराई से जुड़ा हुआ था, इसलिए इसे सरलता से बदला नहीं जा सकता था
- Microsoft Office के Git migration के लिए कई साल और सैकड़ों engineers की मेहनत लगी
OneNote से शुरुआत: migration की शुरुआत
- Office engineering organization में Source Depot को maintain और patch करने की लागत और “competitive technology” की ज़रूरत के कारण बड़े पैमाने पर Git migration का निर्णय लिया गया
- Office product suite में release cycle (कई महीने, half-yearly, monthly, insider) के अनुसार development schedule अलग-अलग थे, इसलिए लंबे समय तक Source Depot-Git parallel operation आवश्यक था
- Office version control consistency, build verification, और legacy test infrastructure का porting जैसे कार्य अनिवार्य चुनौती बनकर उभरे
Office का scale और communication strategy
- उस समय Office में 4,000 engineers मिलकर काम करते थे, इसलिए यह एक बेहद बड़ा संगठन था
- हर team में 'Developer Satisfaction Champion' नियुक्त किया गया, और teams को जोड़ने के लिए hub-spoke model के माध्यम से smooth feedback और communication structure तैयार किया गया
- लेखक OneNote के champion थे और उन्होंने इस बड़े migration के केंद्र में महत्वपूर्ण भूमिका निभाई
VFS for Git: विशाल codebase की सीमा को तोड़ना
- codebase इतना बड़ा था कि एक बार git clone करने के लिए 200GB से अधिक space चाहिए होता था, इसलिए GitHub के साथ मिलकर Virtual File System for Git (VFS for Git) विकसित किया गया
- VFS for Git केवल वही files लाने के तरीके पर काम करता था जिनकी वास्तव में ज़रूरत हो, जिससे basic Git की सीमाएँ पार की जा सकीं
- Microsoft Windows के साथ सहयोग करते हुए, version control system की industry-scale सीमाओं को पार करने का अनुभव मिला
migration के चरणबद्ध तरीके
चरण 1: समानांतर ब्रह्मांड (Parallel Universe)
- Source Depot और Git को real-time में synchronize करने वाली bridge service बनाई गई, और दोनों systems के mismatch तथा model difference (branch structure, changelist आदि) से जुड़ी समस्याओं को बार-बार सुधारते हुए आगे बढ़ा गया
- Office main/private branch-sync-build process को 24/7 automated system के रूप में चलाया गया
- तीन बार retry करने के बाद स्थिर रूप से काम करने वाला parallel system तैयार किया गया
चरण 2: equivalence verification
- सभी test suites को दोनों systems पर बार-बार चलाकर यह साबित किया गया कि build results पूरी तरह समान थे
- line ending, uppercase/lowercase, और test result format जैसी सूक्ष्म भिन्नताओं को कई महीनों तक debug करके ठीक किया गया
- 'Green across the board' (दोनों systems में सभी tests pass) हासिल होने के बाद, वास्तविक transition phase में जाने की तैयारी पूरी हुई
human-centric approach
multi-channel, repeated communication
- 4,000+ engineers और दर्जनों teams के schedule को समन्वित करने के लिए, हर team के champion के साथ intensive communication structure बनाया गया
- महत्वपूर्ण घोषणाएँ कम से कम 3 बार (email, Teams, wiki, meeting आदि) दोहराकर साझा की गईं ताकि confusion कम हो
- समस्या आने पर तुरंत और transparent information sharing के ज़रिए trust बनाया गया
Git adoption training और adaptation
- 10 वर्षों तक Source Depot के आदी engineers के लिए hands-on training environment और migration commands guide जैसी चरणबद्ध learning व्यवस्था बनाई गई
- practical video library जैसी सामग्रियों से real scenario-based learning उपलब्ध कराई गई
- इसका मकसद सिर्फ anxiety कम करना और capability बढ़ाना नहीं था, बल्कि मौजूदा workflow के अनुकूलन में मदद देना भी था
rollback strategy और safety mechanism
- वास्तविक transition के समय Director को एक 'red button' दिया गया, ताकि गंभीर समस्या होने पर कभी भी तुरंत rollback किया जा सके
- Source Depot के कुछ पुराने records को लंबे समय तक सुरक्षित रखा गया, ताकि पुराना development history सुरक्षित बना रहे
परिणाम और प्रमुख उपलब्धियाँ
- migration के बाद onboarding time 50% कम हुआ, Git preference 89% दर्ज की गई, build performance बेहतर हुई, और code review efficiency व collaboration बढ़ने जैसी productivity improvements दिखाई दीं
- engineers ने industry में transfer की जा सकने वाली skills सीखने को सकारात्मक रूप से आंका
- नए लोगों को जल्दी productive बनाने की क्षमता भी बढ़ी
बड़े migration से मिले मुख्य सबक
- सिर्फ तकनीक ही नहीं, बल्कि people-centric communication में भी अपेक्षा से कहीं अधिक निवेश करना पड़ता है, तभी सफलता की संभावना बढ़ती है
- parallel system बनाना, पूर्ण equivalence साबित करना, शुरू से मजबूत rollback design रखना, और key people (champions) पर ज़ोर देना महत्वपूर्ण था
- satisfaction जैसे qualitative metrics को साथ मापना अनिवार्य है, और बदलाव की प्रक्रिया में organizational stability और psychological safety की भावना अहम होती है
- बड़े बदलाव का सार पूरे संगठन में लचीले और व्यवस्थित change management में है
निष्कर्ष और आगे का उपयोग
- Office का Git migration कई वर्षों की तैयारी और कई महीनों के execution से पूरा हुआ एक ऐतिहासिक project था
- अंततः यह हज़ारों लोगों के कामकाजी जुड़ाव को बनाए रखते हुए संगठनात्मक बदलाव को सफलतापूर्वक आगे बढ़ाने का उदाहरण बन गया
- cloud migration, monolithic architecture decomposition, framework upgrade जैसे अन्य बड़े बदलावों में भी parallel verification, repeated communication, और fast rollback design समान रूप से लागू किए जा सकते हैं
- तकनीकी विवरण (build infrastructure, offline/contract issues आदि) को यहाँ विस्तार से नहीं लिया गया, लेकिन बड़े तकनीकी बदलावों के लिए strategic और organizational approach ही सबसे महत्वपूर्ण सीख है
3 टिप्पणियां
अगर आप बहुत सारी binary files संभालते हैं, तो git शायद उपयुक्त न हो, लेकिन code-केंद्रित repository के लिए git काफ़ी लगता है।
यह MS के अंदर भी बड़ा बदलाव रहा होगा, लेकिन इसकी वजह से partial clone, sparse checkout जैसी सुविधाएँ और Scalar जैसे टूल्स बाहर भी सार्वजनिक होकर इस्तेमाल के लिए उपलब्ध हुए—यह भी एक अच्छा असर लगता है, haha
Hacker News राय