जवाब का एक हिस्सा रिफैक्टरिंग है ।
सबसे पहले, यह सुनिश्चित करने के लिए इकाई परीक्षण शुरू करें कि आप गलती से अपने परिवर्तनों के साथ कुछ भी तोड़ न दें। फिर डिज़ाइन को सुधारना शुरू करें, छोटे चरणों में दोहराव आदि को हटाएं, प्रत्येक चरण के बाद अपनी इकाई परीक्षणों को चलाएं, यदि कोई भी परीक्षण विफल हो जाता है, तो किसी भी समस्या को ठीक करना, या यदि आप आसानी से हल कर सकते हैं तो किसी बड़ी समस्या में भाग लेने पर तुरंत पुन: भेजना।
दूसरा हिस्सा शिक्षा है ।
लोगों को सिखाया जाना चाहिए कि वे बुरे कोड को पीछे न छोड़ें। यह निश्चित रूप से एक दीर्घकालिक लड़ाई है, क्योंकि आदतों और विचार प्रक्रियाओं को बदलना मुश्किल है (कभी-कभी असंभव भी) । हालांकि, इसके बिना, आप बस खराब कोड की अंतहीन आपूर्ति प्राप्त करना जारी रखेंगे।
आप अच्छी और बुरी कोडिंग आदतों के बारे में चर्चा खोलने और पूर्व की खूबियों को फैलाने के लिए समूह कोड समीक्षा करने का विकल्प चुन सकते हैं। यह कहने के लिए पर्याप्त नहीं है कि "आपको (नहीं) इस तरह कोड लिखना चाहिए", आपको तर्क और कठिन तथ्यों वाले लोगों को समझाने की जरूरत है। जैसे "यदि आपके पास विधि का यह टुकड़ा कोडबेस एन बार से अधिक डुप्लिकेट है , तो आपको क्या लगता है कि संभावना है कि यदि उस विधि में बग पाया जाता है, तो यह विधि कोड की प्रत्येक प्रतिलिपि में तय हो जाएगा?"
आपकी कंपनी को सलाहकारों के लिए प्रोत्साहन और स्वीकृति मानदंडों को संशोधित करने की भी आवश्यकता हो सकती है - अगर वे मैला कोड लिखने के साथ दूर हो सकते हैं, तो वे निश्चित रूप से आसान रास्ता चुनते रहेंगे। यदि कंपनी दीर्घकालिक स्थिरता पर "फास्ट डिलीवरी" का महत्व रखती है, तो कुछ भी नहीं बदलेगा :-( इसलिए आपको प्रबंधन के साथ इस पर भी चर्चा करने की आवश्यकता हो सकती है। उन्हें समझने का एक तरीका यह है: कोड को साफ रखने का मतलब है, फिर से भरना समझें और बनाए रखें। रिफैक्टरिंग को स्वीकार करना आपके क्रेडिट कार्ड पर ऋण जमा करने जैसा है। आप इसके साथ थोड़ी देर के लिए दूर हो सकते हैं, लेकिन यदि आप अपनी खरीद की आदतों और ऋणों को सक्रिय रूप से प्रबंधित नहीं कर रहे हैं, तो यह अनिवार्य रूप से एक दिन आपके कंधों पर उखड़ जाएगा। एक सॉफ्टवेयर परियोजना के जीवन में, दिवालियापन तब होता है जब यह परियोजना अस्वीकार्य हो जाती है: मौजूदा कोडबेस में एक नई सुविधा जोड़ने की तुलना में इसे स्क्रैच से फिर से लिखना आसान हो जाता है। या उपयोगकर्ता समर्थन और सुविधाओं के अवर स्तर से इतना तंग आ जाते हैं कि वे बस प्रतियोगिता में बदल जाते हैं।