मैं एक ऐसी परियोजना पर रहा हूं जिसकी समस्या है, और इसका प्रभावी ढंग से निपटारा नहीं हुआ है।
कोड की स्थानीय गुणवत्ता - पैकेज के पैमाने पर, कहें - बुरा नहीं था। लेकिन बड़े पैमाने पर समस्याएं थीं; पैकेज के बीच तर्क (लेकिन कोड नहीं) की नकल की तरह चीजें, बैच रीकंप्यूशन नौकरियों का उपयोग जहां हमें घटना-संचालित दृष्टिकोणों का उपयोग करना चाहिए, सिस्टम को गलत जगह पर अलग सेवाओं में विभाजित करना आदि।
इनमें से कोई भी समस्या नहीं हो सकती एक वर्ग या पैकेज को दोबारा सुधारकर तय किया जाए। नतीजतन, वे घटनाओं के सामान्य पाठ्यक्रम में कभी नहीं हुआ। हमने छोटे पैमाने पर रिफैक्टरिंग की - एक सुविधा जोड़ने के दौरान, हम शुरू करने से पहले उस क्षेत्र में दोबारा प्रतिक्रिया देंगे, और फिर समाप्त होने के बाद (साथ ही साथ हम अच्छे कोड लिखने के लिए कुछ प्रयास कर रहे थे)। लेकिन इससे बड़ी, वास्तुशिल्प चिंताओं को फिर से हासिल नहीं किया गया।
हम सभी समस्याओं के प्रति सचेत थे, हमारे पास हमारी प्रक्रिया में कुछ भी नहीं था जो हमें उन्हें ठीक करने देता है।
एक उल्लेखनीय जीत हमने वहां की थी जहां दो दूरस्थ रूप से संबंधित मॉड्यूल के बीच दोहराव था। अनिवार्य रूप से, गणना के कुछ सेट के परिणाम दिखाते हुए एक वेब पेज प्रस्तुत करने के लिए कोड था, और समान गणना करने वाली रिपोर्ट जेनरेट करने के लिए पृष्ठभूमि कार्य भी था। गणना कोड साझा किया गया था, लेकिन गणना सेट करने के लिए कोड नहीं था; एक उपयोगकर्ता की दृश्य प्राथमिकताओं द्वारा संचालित किया गया था, जबकि दूसरा कॉन्फ़िगर किए गए रिपोर्टिंग नौकरी द्वारा संचालित था। हमारे पास कार्यान्वित करने की एक विशेषता थी जिसमें गणनाओं के लिए एक नया पहलू जोड़ने में शामिल होता, जिसका अर्थ है कि दोनों प्रकार की कॉन्फ़िगरेशन में और अधिक आइटम जोड़ना और फिर गणना सेटअप कोड के दोनों सेटों में व्यावसायिक तर्क जोड़ना शामिल था। हम उत्पाद प्रबंधक (हमारे ग्राहक प्रॉक्सी) को काम के लिए पर्याप्त समय के लिए सहमत होने में कामयाब रहे, जिसे हम उपयोगकर्ता दृश्य वरीयताओं और कॉन्फ़िगर किए गए रिपोर्टिंग नौकरी के विचारों को एकजुट करने के लिए दोबारा प्रतिक्रिया दे सकते थे, इसलिए डुप्लिकेशन के पक्षों में से एक को फेंकना, फिर सुविधा लागू करें। इसे दो बार लागू करने से अधिक समय लगा, लेकिन उत्पाद प्रबंधक यह समझने के लिए पर्याप्त बुद्धिमान था कि इससे हमें दोनों पृष्ठों और रिपोर्टों को और अधिक तेज़ी से फैलाने वाली भविष्य की सुविधाओं को लागू करने दिया जाएगा।
प्रक्रिया में तंत्र जिसने हम इसे किया था, रिफैक्टरिंग के काम के लिए कहानियां लिख रहा था। अनिवार्य रूप से, "एक उत्पाद प्रबंधक के रूप में, मैं पृष्ठों और रिपोर्टों को सामान्य गणना सेटअप कोड का उपयोग करना चाहता हूं, ताकि मैं सुविधाओं को और अधिक तेज़ी से जोड़ सकूं"। यह पूरी तरह से एक उचित प्रकार की कहानी नहीं है, लेकिन यह प्रणाली में लगाया गया है, और यह काम किया।
मुझे लगता है कि अगर इस परियोजना का चलना थोड़ा स्वस्थ रहा है, तो इस तरह की कहानियों की एक स्थिर धारा होती। हम स्वीकार करेंगे कि हमारे पास बहुत सारे वास्तुशिल्प ऋण थे, और इसका भुगतान करने के लिए काम का मूल्य था, और हमारे समय का एक निश्चित अंश आवंटित किया गया था, शायद लगभग 20% (जो वास्तव में एक समय में एक जोड़ी का मतलब होगा)। इसके बाद हम ग्राहक-उन्मुख काम के लिए किए गए विशेषताओं/महाकाव्य, कहानियां और कार्यों को उत्पन्न कर सकते थे। ये उत्पाद प्रबंधकों की बजाय स्वयं टीम से उत्पन्न होंगे।
अफसोस की बात है कि विकास और उत्पाद प्रबंधन पक्षों के बीच पर्याप्त संचार और विश्वास नहीं था कि यह संभव था; हम उत्पाद को कह सकते हैं कि हमें कोई समस्या थी, यह महत्वपूर्ण था, और यह तय करने में इतना समय लगेगा, और वे नहीं जानते कि यह सच है या नहीं।इस प्रकार, वे आम तौर पर ऐसा करने के लिए समय निर्धारित करने के इच्छुक नहीं थे। दुख की बात यह थी कि हर कोई इस समझौते में था कि समस्याएं थीं और उन्हें ठीक करना अच्छा होगा, हम वास्तव में इसे करने पर एक बाधा उत्पन्न कर चुके थे।
मैं इस सवाल को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि परियोजना प्रबंधन ऑफ-विषय है। ऐसे प्रश्न पूछे जाने चाहिए [https://pm.stackexchange.com/](https://pm.stackexchange.com/) – BDL
मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि ऐसे प्रश्न पूछे जाने चाहिए https://pm.stackexchange.com/ –