FDE एंगेजमेंट का मतलब सिर्फ़ चीज़ बनाना (बिल्ड) नहीं है, बल्कि यह पहले संपर्क से लेकर स्टेबल प्रोडक्शन सपोर्ट तक का पूरा सफ़र है। मुश्किल बात यह है कि हर फ़ेज़ का अपना एक “मुख्य रिस्क” होता है और अगले फ़ेज़ में जाने से पहले क्लाइंट को दिखाने के लिए अलग तरह का सबूत चाहिए होता है।
इस स्थिति पर विचार करें। आप नॉर्थब्रिज म्यूचुअल (NorthBridge Mutual) नाम की एक मध्यम आकार की इंश्योरेंस कंपनी में ‘फ़ॉरवर्ड डिप्लॉयड इंजीनियर’ (FDE) हैं। आप एक इंटरनल असिस्टेंट लॉन्च करने की कोशिश कर रहे हैं जो क्लेम एडजस्टर को पॉलिसी की भाषा और पुराने केस खोजने में मदद करेगा। प्लेटफ़ॉर्म टीम चाहती है कि दो हफ़्ते में कुछ काम करने लायक चीज़ तैयार हो जाए, सिक्योरिटी टीम फ़ॉर्मल रिव्यू चाहती है, और बिज़नेस स्पॉन्सर चाहता है कि क्वार्टर के अंत तक एडॉप्शन के आंकड़े मिल जाएं। आपका काम डिस्कवरी, डिलीवरी और सपोर्ट के चरणों से गुज़रना है, बिना यह भूले कि सफलता का असल मतलब क्या है।
उस मुख्य उद्देश्य को ध्यान में रखने के लिए, लाइफ़साइकल को साफ़-साफ़ लिए गए फ़ैसलों की एक सीरीज़ के तौर पर देखें। हर फ़ैसले का एक आउटपुट होता है जिसे आप दिखा सकते हैं, ताकि आप कह सकें, “हम अभी इस स्टेज पर हैं, हमने इस बात पर सहमति बनाई थी, और इसीलिए हम अभी वह दूसरी चीज़ नहीं कर रहे हैं।” ज़्यादातर FDE निर्णय यहीं लिए जाते हैं।
लाइफ़साइकल को चलाना तब सबसे आसान होता है जब आप फ़ेज़ के नाम साफ़ तौर पर बताएं और हर फ़ेज़ के साथ कोई ठोस चीज़ (आर्टिफ़ैक्ट) जोड़ें। उस आर्टिफ़ैक्ट का इस्तेमाल आप तालमेल बिठाने, डिपेंडेंसी को दूर करने और दबाव बढ़ने पर स्कोप का बचाव करने के लिए करते हैं।
आइए एंगेजमेंट के फ़ेज़ और उनसे मिलने वाले आउटपुट पर एक नज़र डालें।
NorthBridge Mutual में, डिस्कवरी तब खत्म होती है जब आप यह लिख सकते हैं कि यूज़र कौन हैं, वे आज क्या करते हैं, और मापने लायक शब्दों में “बेहतर” का क्या मतलब है। डिस्कवरी वह समय है जो आप यूज़र के काम करने के तरीके और सीमाओं को समझने में लगाते हैं, ताकि ऐसा समाधान सुझाया जा सके जिसका असल में इस्तेमाल हो।
स्कोपिंग वह चरण है जहाँ आप उन ज़रूरतों को एक सीमित पहले रिलीज़ में बदलते हैं। स्कोप क्षमताओं और इंटीग्रेशन का वह सटीक सेट है जिसे आप डिलीवर करने के लिए सहमत होते हैं, साथ ही उन चीज़ों की स्पष्ट सूची जो इसमें शामिल नहीं हैं। यहीं पर आप यह भी तय करते हैं कि रिलीज़ के लिए क्या ज़रूरी है, जैसे सुरक्षा मंज़ूरी, डेटा एक्सेस, और कौन सी टीम किस निर्भरता (dependency) की ज़िम्मेदारी लेती है।
डिज़ाइन वह चरण है जहाँ कोड बनने से पहले आप ट्रेड-ऑफ़ (समझौतों) को स्पष्ट करते हैं। सॉल्यूशन डिज़ाइन सिस्टम के शुरू से अंत तक काम करने के तरीके का विवरण है, जिसमें डेटा फ़्लो, यूज़र अनुभव और ऑपरेशनल ज़िम्मेदारी शामिल है; इसे ऐसे स्तर पर तैयार किया जाता है जिसकी सुरक्षा और प्लेटफ़ॉर्म टीमें समीक्षा कर सकें।
इम्प्लीमेंटेशन वह चरण है जहाँ योजना असलियत का रूप लेती है। आपका मुख्य आउटपुट एक काम करने वाला छोटा हिस्सा (thin slice) होता है जो महत्वपूर्ण रास्ते (critical path) को साबित करता है, जैसे सही दस्तावेज़ निकालना और एडजस्टर UI में साइटेशन दिखाना, भले ही वह अभी बहुत आकर्षक न हो।
प्री-लॉन्च वह चरण है जहाँ आप एक निर्माता की तरह सोचना बंद करके एक ऑपरेटर की तरह सोचना शुरू करते हैं। आप तय करते हैं कि आप कैसे मॉनिटर करेंगे, विफलता कैसी दिखेगी, किसे सूचित (page) किया जाएगा, और रोलबैक कैसे काम करेगा।
हैंडऑफ़ वह चरण है जहाँ आप विफलता के एकल बिंदुओं (single points of failure) को कम करते हैं। हैंडऑफ़ ज्ञान और ऑपरेशनल ज़िम्मेदारी का हस्तांतरण है ताकि क्लाइंट टीम हर बदलाव के लिए आपको शामिल किए बिना सिस्टम को चला सके।
प्रोडक्शन सपोर्ट वह चरण है जहाँ विश्वसनीयता बनती या बिगड़ती है। प्रोडक्शन सपोर्ट का काम वास्तविक उपयोग में सिस्टम को सही स्थिति में रखना, घटनाओं (incidents) को संभालना और मूल स्कोप व रिलीज़ लक्ष्यों की रक्षा करते हुए छोटी-मोटी कमियों को ठीक करना है।
लाइफ़साइकल की सख्ती मायने रखती है क्योंकि छोड़ा गया हर चरण बाद में एक आपात स्थिति बन जाता है, और यह आपात स्थिति आमतौर पर FDE पर आती है। यह पैटर्न पहले से ही पता होता है। अगर आप शुरुआत में जल्दबाज़ी करते हैं, तो बाद में आपको दोबारा काम करने और भरोसा खोने की कीमत चुकानी पड़ती है।
हर चरण के हिसाब से सबसे आम विफलता के तरीकों (failure modes) के बारे में जानें।