ऐसा लगता है कि आपकी समस्याएं अधिक सामान्य हैं।
रिफैक्टिंग मुद्दा एक लक्षण और समस्या के हिस्से से संभावित राहत दोनों है।
सॉफ्टवेयर लीड और टीम टीम के समय को आवंटित करते हैं
मेरे अनुभव से, मुझे लगता है कि आप एक समस्या का सामना कर सकते हैं जिसे मैं कहता हूं, "हर कोई एक सॉफ्टवेयर प्रबंधक है।" उत्पाद प्रबंधक, परियोजना प्रबंधक और कभी-कभी सिस्टम इंजीनियर और परीक्षक सूक्ष्म प्रबंधन करने वाले डेवलपर्स के लिए कुख्यात हो सकते हैं, जिनके पास पहले से ही एक अनुभवी सॉफ्टवेयर प्रबंधक है। आपकी टीम में आपके कुछ सदस्य भी हो सकते हैं जो मानते हैं कि उनकी भूमिका का प्रबंधन करना है।
यदि आप सॉफ्टवेयर मैनेजर हैं, तो आप जो रिफैक्टिंग चाहते हैं, उसके लिए असाइनमेंट बनाएं, या बेहतर अभी तक, आपकी टीम ने आपके अनुमोदन के लिए आपको रिफैक्टिंग का प्रस्ताव दिया है। इसलिए, जैसा कि micromanage नहीं है, आपके पास आयु / लेखक / आकार / कोड के संदर्भ के बारे में दिशा-निर्देश हो सकते हैं जिन्हें फिर से शुरू किया जा सकता है जिन्हें स्वतंत्र रूप से बनाम आवश्यकता की स्वीकृति दी जा सकती है। यदि आपकी टीम का कोई सदस्य जटिल पुराने कोड के चार बड़े वर्गों को बड़े पैमाने पर रिफलेक्टर करना चाहता है, तो उसने यह नहीं लिखा कि उसकी सुविधा का हिस्सा नहीं है, उसका दो सप्ताह का मोड़ आपकी समस्या है, इसलिए आपको ना कहने का मौका चाहिए।
आप चारों ओर छींक सकते हैं, लेकिन मुझे लगता है कि विश्लेषण, डिजाइन, कोडिंग, परीक्षण के कई रूपों (कम से कम इकाई और एकीकरण) के लिए समय के साथ सावधानीपूर्वक अपने अनुमानों का निर्माण करना बेहतर है, ऐतिहासिक रूप से और दृष्टिकोण की कमी के अनुसार, रिफैक्टिंग और जोखिम। कार्य से जुड़ा अनुभव या स्पष्टता। यदि आप अपनी टीम के कामकाज के बारे में बहुत खुले हैं (या आपकी टीम के सदस्य हैं), तो संचार चैनलों को संकीर्ण करना बुद्धिमानी हो सकती है, इसलिए वे आपके माध्यम से जाते हैं और संसाधनों और परिणामों पर चर्चा करते हैं, न कि तरीकों के बारे में।
प्रारंभिक परियोजना विकल्प रिफैक्टरिंग के लिए एक दुष्चक्र बनाते हैं
सॉफ्टवेयर रखरखाव कठिन है। यदि संगठन में अन्य लोग आपके खर्च पर चुनाव कर रहे हैं तो यह दोगुना कठिन है। यह गलत है, लेकिन यह नया नहीं है। इसे बैरी बोहम ने संबोधित किया है जो हमारे महान सॉफ्टवेयर लेखकों में से एक है जो एक प्रबंधन मॉडल को आगे रखता है जिसे वह थ्योरी डब्ल्यू के रूप में वर्णित करता है।
http://csse.usc.edu/csse/TECHRPTS/1989/usccse89-500/usccse89-500.pdf
अक्सर सॉफ़्टवेयर डेवलपर्स को थ्योरी-एक्स प्रबंधन दृष्टिकोण के तहत उत्पादन करने के लिए हथौड़ा दिया जाता है जो कहता है कि श्रमिक मूल रूप से आलसी हैं और जब तक प्रस्तुत नहीं किया जाता है, तब तक प्रदर्शन नहीं करेंगे। बोहम ने अपने प्रस्तावित मॉडल का सारांश और विरोधाभास इस प्रकार है:
"एक प्रबंधक (थ्योरी X), एक कोच (थ्योरी वाई), या एक सूत्रधार (थ्योरी जेड) के रूप में एक प्रबंधक की भूमिका निभाने के बजाय, थ्योरी डब्ल्यू अपने विभिन्न निर्वाचन क्षेत्रों के बीच एक वार्ताकार के रूप में एक प्रबंधक की प्राथमिक भूमिका, और परियोजना समाधान का एक पैकेट तैयार करता है। सभी पक्षों के लिए जीत की स्थिति के साथ, इसके अलावा, प्रबंधक एक लक्ष्य-सेटर भी है, लक्ष्यों के प्रति प्रगति की निगरानी, और दिन-प्रतिदिन जीत-हार या हार-हार परियोजना संघर्षों में एक कार्यकर्ता, उनका सामना करने, और उन्हें जीत-जीत की स्थितियों में बदल रहा है। ”
क्विक एंड डर्टी अक्सर जस्ट डर्टी होती है
बोहेम इस बात की ओर इशारा करता है कि रखरखाव टीम में डेवलपर्स के लिए चीजें इतनी दयनीय हैं।
"एक त्वरित और मैला उत्पाद का निर्माण, सॉफ़्टवेयर डेवलपर और ग्राहक के लिए एक कम-लागत, निकट-अवधि" जीत "हो सकता है, लेकिन यह उपयोगकर्ता और अनुचर के लिए एक '' हार 'होगा।" कृपया ध्यान दें कि बोहेम के मॉडल में, ग्राहक एक अंतिम उपयोगकर्ता के बजाय एक अनुबंध व्यवस्थापक के अधिक है। ज्यादातर कंपनियों में, उत्पाद प्रबंधक को ग्राहक सरोगेट के रूप में सोचते हैं, या शायद वह व्यक्ति जो अपनी फीचर सूची के लिए उत्पाद खरीदता है।
मेरा समाधान मूल विकास टीम (या कम से कम मूल लीड) को तब तक जारी नहीं करना होगा जब तक कि कोड को कम से कम कोड मानकों को पूरा करने के लिए फिर से चालू नहीं किया जाता है।
ग्राहक के लिए, मुझे लगता है कि उत्पाद प्रबंधक को ग्राहक सरोगेट के रूप में गिनना उचित है, और कुछ त्वरित और गंदे देने के लिए पुरस्कृत लोगों के समूह को निश्चित रूप से विस्तारित किया जा सकता है, इसलिए चीजों को गलत तरीके से करने के लिए एक बड़ा निर्वाचन क्षेत्र है।
Refactoring परक्राम्य नहीं है
कृपया सॉफ़्टवेयर मैनेजर के रूप में अपनी भूमिका से पीछे न हटें। प्रक्रिया और उत्पाद सुधार में अपनी टीम के समय का उपयोग करने के लिए आपके पास अधिकार और विवेक होना चाहिए। उस भूमिका में, आपको अपनी टीम को और अधिक पेशेवर बनाने के लिए अपने विकल्पों पर बातचीत करने की आवश्यकता हो सकती है। हालांकि, प्रक्रिया के संबंध में, विपणन के साथ बातचीत न करें, क्योंकि मेरे अनुभव में, यह एक हारने वाला खेल है। इंजीनियरिंग प्रबंधन के साथ बातचीत। यह दिखाता है कि आपके पास दृष्टि है। एक पेशेवर सॉफ्टवेयर टीम का निर्माण उनकी भूमिका का एक विस्तार है, और एक जीत के रूप में देखा जाना बहुत अधिक संभावना है।