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