Refactoring आपके कमरे को चुनने जैसा है।
यदि आप चीजों को चुस्त-दुरुस्त रखते हैं, तो आपके पास एक रैखिक उपरि है, जो एल्गोरिदमोलॉजिस्ट शब्दों में O (n) कोड पर किए जा रहे उत्पादक कार्य की मात्रा के अनुपात में है। यह मानते हुए कि आप अपना 10% समय रिफैक्टरिंग (या अपने कमरे को चुस्त-दुरुस्त रखना) में बिताते हैं, कि 10% एक दिया हुआ है, और यह समय के साथ स्थिर रहेगा।
यदि, हालांकि, आप अपने गंदे कपड़े एक कोने में टॉस करते हैं, और इसे करते रहें, तो जितना समय आप अपने कमरे में बिताते हैं, उतना ही बढ़ता है क्योंकि गंदगी और अधिक जटिल हो जाती है। यह मानते हुए कि गंदे कपड़े धोने का प्रत्येक व्यक्तिगत टुकड़ा आवश्यक सफाई समय में तेजी से योगदान देता है, अब आप एक ओ (ई एन ) स्थिति में हैं।
जो कोई भी एल्गोरिथम जटिलता की अवधारणा में खुदाई कर चुका है, वह देखेगा कि कहीं-कहीं पर विराम बिंदु भी है, यानी संचित करने के लिए गंदे कपड़े धोने की एक अधिकतम मात्रा है; कितना है जो निरंतर कारकों पर निर्भर करता है जो कि बड़े-ओ संकेतन में छोड़ दिए जाते हैं। एक अन्य कारक समय के साथ आपके काम का मूल्य है: यदि आपका काम अब बहुत अधिक मूल्य का है, लेकिन अगले सप्ताह सस्ता है (यानी, इस परियोजना के लिए यह समय सीमा तय है और तीन और हैं, लेकिन उसके बाद, आप ज्यादातर बेकार रहेंगे ), समीकरण पुनर्संरचना नहीं करने के पक्ष में हो सकता है।
और फिर वहाँ जटिलता महत्वपूर्ण द्रव्यमान है। कुछ बिंदु पर, गड़बड़ी ('गंभीर गंदगी', यदि आप करेंगे) तो इतनी खराब हो जाती है कि पूरे कमरे को जला देना और नए कपड़े खरीदना आसान लगता है। वास्तव में यह आम तौर पर नहीं होता है, लेकिन यह इस तरह से दिखाई देता है, और मनोवैज्ञानिक प्रभाव इस चीज़ से निपटने के लिए दस गुना कठिन बना देगा।
और जाहिर है, यदि आप एक ऐसी परियोजना में कदम रखते हैं जो पहले से ही एक विशाल बहु-अनावश्यक गड़बड़ है, तो आपके पास सीमित विकल्प हैं।
टीएल; डीआर: यदि संदेह में, रिफ्लेक्टर। नहीं करने का निर्णय लेने से पहले आपके पास वास्तव में अच्छे सबूत होने चाहिए।