यहाँ एक पृष्ठभूमि के एक बिट - हम आरएडी डेवलपर्स की एक छोटी टीम (5) एक बड़ी गैर-सॉफ्टवेयर कंपनी में आंतरिक सॉफ्टवेयर विकास के लिए जिम्मेदार हैं। "आंतरिक सॉफ़्टवेयर" एक डेस्कटॉप .NET अनुप्रयोग से भिन्न होता है जो MSSQL सर्वर का उपयोग करके MS Word दस्तावेजों और टेम्प्लेट की पृष्ठभूमि पर चल रहे पायथन स्क्रिप्ट के बैकएंड के रूप में होता है - प्रौद्योगिकियों का एक चिड़ियाघर।
पूरी टीम उपयोगकर्ताओं से आवश्यकताओं को प्राप्त करने में सक्षम होती है, इसे कोड करती है, इसका परीक्षण करती है और उत्पादन में तैनात करती है। एक बार उत्पादन में सॉफ्टवेयर के बाद इसे दूसरी टीम द्वारा देखा जा रहा है लेकिन अगर कुछ गलत हो जाता है तो हमें हस्तक्षेप करना आसान होता है।
सभी अब तक अच्छे लगते हैं, लेकिन एक समस्या है - एक आरएडी टीम होने के नाते जिसे हमें अक्सर जारी करना पड़ता है, और हमारे द्वारा एक या दो अनुप्रयोगों के नए संस्करण जारी किए बिना कोई दिन नहीं होता है (या यह एक स्क्रिप्ट हो सकती है, अद्यतन शब्द दस्तावेज़ , सी ++ कंसोल ऐप, आदि) उत्पादन में। हम एक विकास परीक्षण करते हैं और UAT वातावरण में सॉफ्टवेयर चलाने की सुविधा देकर एंड-यूजर्स को भी शामिल करते हैं ...
... लेकिन बग वैसे भी उत्पादन में रेंग रहे हैं। उपयोगकर्ता समझते हैं कि ये बग और सामयिक अस्थिरता वह मूल्य है जो वे प्राप्त करने के लिए भुगतान कर रहे हैं जो वे वास्तव में जल्दी चाहते हैं, लेकिन साथ ही साथ यह हमें सोच रहा है - शायद हम अपने विकास में सुधार कर सकते हैं या स्थिरता को बेहतर बनाने के लिए एक अभ्यास जारी कर सकते हैं सॉफ्टवेयर और एक नई कार्यक्षमता जोड़ते समय हम बगों की संख्या को कम करते हैं।
अच्छी बात है - हमारे पास वास्तव में पहली प्रक्रिया में बहुत अधिक प्रक्रियाएं नहीं हैं, इसलिए सुधार करना शुरू करना आसान होना चाहिए, बुरी बात - एक छोटी सी रेड टीम होने के नाते हमारे पास वास्तव में लागू करने के लिए अधिक समय और संसाधन नहीं हैं। कुछ बड़ा, लेकिन हम निम्नलिखित पहलों के बारे में सोच रहे हैं और किसी भी प्रतिक्रिया, सुझाव, संकेत और सुझावों का स्वागत करेंगे।
वर्तमान में कुछ एप्लिकेशन उपयोगकर्ता स्वीकृति परीक्षण को दरकिनार कर सीधे डेवलपर परीक्षण के बाद उत्पादन में जारी किए जा रहे हैं। उस प्रथा को बंद किया जाना चाहिए और यहां तक कि एक छोटे से बदलाव को एक अंतिम-उपयोगकर्ता द्वारा परीक्षण किया जाना चाहिए। प्रत्येक एप्लिकेशन में अंतिम उपयोगकर्ताओं से एक समर्पित बीटा-टेस्टर होगा। बीटा-टेस्टर के नई रिलीज के ठीक बाद ही इसे टेस्ट से प्रोडक्शन के माहौल में प्रमोट किया जाता है।
हम कोड की समीक्षा नहीं करते हैं - लेकिन हम बदलावों की जांच करने से पहले कोड समीक्षा करना शुरू कर देंगे। मैं "रोलआउट रिव्यू" के बारे में भी सोच रहा था - मूल रूप से डेवलपर्स में से एक को बैठकर दूसरी घड़ी के साथ बैठना पड़ता है, सॉफ्टवेयर रोलआउट (कॉपी बायनेरिज़, अपडेट कॉन्फिग, डेटाबेस में नई तालिका जोड़ना) आदि - यह आमतौर पर केवल 5-10 मिनट लगते हैं, इसलिए इसमें "रोलआउट समीक्षा" का समय नहीं लगेगा।
रोलबैक समय को कम करने के लिए कैसे करें जब एक नई रिलीज उत्पादन से पुलआउट होने और एक अच्छे पिछले संस्करण द्वारा प्रतिस्थापित करने के लिए पर्याप्त छोटी साबित हो। हम सभी रिलीज़ के इतिहास (बायनेरिज़ के रूप में) को एक संस्करण में वापस जाना आसान बनाते हैं - और हालांकि यह जल्दी है "पिछले संस्करणों बायनेरिज़ के साथ एक नए जारी किए गए बायनेरिज़ को अधिलेखित करें" यह अभी भी एक मैनुअल प्रक्रिया है जो त्रुटि प्रवण है और कई बार "क्या होगा अगर रोलबैक विफल हो जाएगा और छोटी गाड़ी के बजाय सिस्टम को बेकार कर देगा"।
यह वह जगह है जहां हम अपने विचारों से बाहर भाग गए और हम इन पर आपकी प्रतिक्रिया प्राप्त करना चाहते हैं और यदि आप कुछ सरल रिलीज / देव प्रक्रिया सुधार सलाह साझा कर सकते हैं - तो यह भयानक होगा।