आप वास्तव में खराब सिस्टम पर कैसे सुधार करना शुरू कर देंगे?वास्तव में खराब सिस्टम में सुधार
यूनिट परीक्षण बनाने और पुन: सक्रिय करने की सलाह देने से पहले मुझे बताएं कि मेरा क्या मतलब है। मैं उन तकनीकों का उपयोग कर सकता था लेकिन यह इस मामले में व्यर्थ होगा।
असल में सिस्टम इतनी टूटी हुई है कि ऐसा करने की ज़रूरत नहीं है।
उदाहरण के लिए सिस्टम को यह पता होना चाहिए कि यह कितने संदेश भेजता है। यह ज्यादातर काम करता है लेकिन कुछ मामलों में यह संदेश काउंटर के मूल्य को बढ़ाने के लिए "भूल जाता है"। समस्या यह है कि अपने स्वयं के कामकाज के साथ कई अन्य मॉड्यूल इस काउंटर पर निर्माण करते हैं कि अगर मैं काउंटर को सही करता हूं तो पूरी तरह से सिस्टम इससे भी बदतर हो जाएगा। समाधान सभी मॉड्यूल को संशोधित करने और अपने स्वयं के सुधारों को हटाने के लिए किया जा सकता है, लेकिन 150+ मॉड्यूल के साथ जो इतना समन्वय की आवश्यकता होगी कि मैं इसे बर्दाश्त नहीं कर सकता।
इससे भी बदतर, कुछ समस्याएं हैं जिनके पास सिस्टम में काम नहीं है, बल्कि लोगों के सिर में कामकाज है। उदाहरण के लिए सिस्टम एक संदेश समूह में चार से अधिक संबंधित संदेशों का प्रतिनिधित्व नहीं कर सकता है। कुछ सेवाओं को एक साथ समूहित पांच संदेशों की आवश्यकता होगी। लेखांकन विभाग इस सीमा के बारे में जानता है और हर बार जब वे इन सेवाओं के लिए संदेश गिनते हैं, तो वे संदेश समूहों की गणना करते हैं और संदेशों की सही संख्या प्राप्त करने के लिए इसे 5/4 तक गुणा करते हैं। इन विचलनों के बारे में बिल्कुल कोई दस्तावेज नहीं है और कोई भी नहीं जानता कि अब सिस्टम में कितनी चीजें मौजूद हैं।
तो आप इस प्रणाली में सुधार करने के लिए कैसे काम करना शुरू कर देंगे? आप किस रणनीति का पालन करेंगे?
कुछ अतिरिक्त चीजें: मैं इस पर काम कर रहे एक-पुरुष-सेना हूं, इसलिए पर्याप्त पुरुषों को किराए पर लेने और सिस्टम को फिर से डिजाइन करने/रीफैक्टर करने का स्वीकार्य उत्तर नहीं है। और कुछ हफ्तों या महीनों में मुझे वास्तव में कुछ दृश्य प्रगति दिखाना चाहिए, इसलिए यह कुछ वर्षों में खुद को रिफैक्टरिंग करने का विकल्प नहीं है।
कुछ तकनीकी विवरण: सिस्टम जावा और PHP में लिखा गया है लेकिन मुझे नहीं लगता कि वास्तव में मायने रखता है। इसके पीछे दो डेटाबेस हैं, ओरेकल और एक पोस्टग्रेएसक्यूएल एक। कोड से पहले उल्लिखित त्रुटियों के अलावा भी गंध आती है, यह वास्तव में बुरी तरह लिखी और दस्तावेज़ीकृत है।
अतिरिक्त जानकारी:
काउंटर मुद्दा एक तुल्यकालन समस्या नहीं है। काउंटर ++ कथन कुछ मॉड्यूल में जोड़े जाते हैं, और कुछ अन्य मॉड्यूल में जोड़े नहीं जाते हैं। एक त्वरित और गंदे फिक्स उन्हें जोड़ना है जहां वे गायब हैं। लंबा समाधान यह है कि इसे मॉड्यूल के लिए एक पहलू बनाना है जिसकी आवश्यकता है, इसे बाद में भूलना असंभव हो जाता है। मुझे इस तरह की चीजों को ठीक करने में कोई समस्या नहीं है, लेकिन अगर मैं यह परिवर्तन करूँगा तो मैं 10 अन्य मॉड्यूल तोड़ दूंगा।
अद्यतन:
मैंने ग्रेग डी का जवाब स्वीकार कर लिया। यहां तक कि अगर मुझे एडम बेलायर की पसंद है, तो यह मुझे यह जानने में मदद नहीं करेगा कि जानना आदर्श होगा। उत्तर के लिए सभी को धन्यवाद।
शुभकामनाएँ! एक टूटी हुई प्रणाली पर काम करने के बारे में मुझे एक चीज है - मैं जो भी करता हूं उससे कुछ भी इससे भी बदतर हो सकता है इससे पहले कि मैंने शुरू किया था। :) –
+1 - यह स्थिति इतनी भयानक है! या यह बेहद भयानक है? – Drew