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