कल्पना कीजिए कि आप उपयोगकर्ता कहानी 1 जो एक विधि के क्रियान्वयन की आवश्यकता है है:Agile Scenario, जो सही है?
public static void MyMethod(string paramA);
अनेक वर्गों का इस पद्धति का उपयोग किया जाएगा, और MyMethod उपयोगकर्ता कहानी 1 पूरा करने की आवश्यकता है सब कुछ है, लेकिन अधिक कुछ नहीं करता है।
आप यकीन है कि है कि एक और कहानी (उपयोगकर्ता कहानी 2) यात्रा एक भविष्य में आ जाएगा, जिसके साथ विधि की आवश्यकता बन जाएगा हैं:
public static void MyMethod(string paramA, int paramB);
MyMethod करने के लिए पिछले कॉल पुनर्संशोधित करने की आवश्यकता होगी, और MyMethod को कुछ नई कॉल उपयोगकर्ता की कहानी 2 की आवश्यकताओं को पूरा करने के लिए जोड़नी होगी (कहानी 2 के बाद नोट यह केवल paramA के साथ MyMethod को कॉल करने के लिए कभी समझ में नहीं आता है)।
1) केवल लागू:
जब उपयोगकर्ता कहानी 1 पर काम करने के लिए चुस्त सोच है सार्वजनिक शून्य MyMethod (स्ट्रिंग Parama);
2) कार्यान्वयन: सार्वजनिक शून्य MyMethod (स्ट्रिंग paramA, int paramB); - लेकिन अब के लिए दूसरे पैरामीटर के साथ कुछ भी नहीं करें। कॉल इस बिंदु पर दूसरे पैरामीटर में 0 में गुजरता है।
3) कार्यान्वयन: सार्वजनिक शून्य MyMethod (स्ट्रिंग paramA, int paramB); - लेकिन अब के लिए दूसरे पैरामीटर के साथ कुछ भी नहीं करें। कॉल सही मूल्य में पास होते हैं (उपयोगकर्ता की कहानी 2 की अपेक्षा के अनुसार)
4) कार्यान्वयन: सार्वजनिक शून्य MyMethod (स्ट्रिंग paramA, int paramB); - और सभी कॉल पूरी तरह से उपयोगकर्ता की कहानी को कवर करने के लिए 1 और 2
मुझे आपको बहुत पसंद है। एकमात्र चीज जो मैं कहूंगा वह यह है कि एस 1 इंटरैक्शन 1 में है और एस 2 पुनरावृत्ति में है 2. मुझे विश्वास है कि प्रत्येक पुनरावृत्ति के अंत में हमेशा एक शिप करने योग्य उत्पाद होना चाहिए। अब: एक पुनरावृत्ति के बाद यह संभावना नहीं है कि व्यवसाय गर्व को शिप करने में प्रसन्न होगा, लेकिन यह निश्चित रूप से क्यूए में जा सकता है और अच्छी तरह से परीक्षण किया जा सकता है।तो क्या आप दक्षता का लक्ष्य रखते हैं और इसे अभी करते हैं (लेकिन एक छोटा सा मौका है क्योंकि आपको यह गलत लगेगा क्योंकि आवश्यकताएं और/या डिज़ाइन बदल सकता है), या केवल पुनरावृत्ति 1 के लिए आवश्यक है? –
यह भी ध्यान दें कि मैं पुनरावृत्ति के लिए कुछ भी गलत 'करने में विश्वास नहीं करता हूं। उदा। ऐसी चीज को लागू करने में कोई बात नहीं है जिसे कहानी 2 के साथ पूरी तरह से फिर से डिजाइन किया जाना होगा। यदि आप जानते हैं कि क्या हो रहा है जो पागल हो जाएगा। लेकिन क्या आपको एस 1 में अतिरिक्त मील जाना चाहिए ताकि एस 2 के साथ आने पर आप न्यूनतम काम कर सकें? या आप फोकस का पक्ष लेते हैं, यह भी जानते हुए: "भविष्यवाणी बहुत मुश्किल है, खासकर भविष्य के बारे में।" - नील्स बोहर (डेनिश भौतिक विज्ञानी)। –
मैं एक ऐसी विधि में पैरामीटर जोड़ने पर विचार नहीं करता जिसका उपयोग एस 1 में एक अप्रतिबंधित उत्पाद बनाने के लिए नहीं किया गया था। आप इसे अनावश्यक रूप से फूला सकते हैं, लेकिन निश्चित रूप से अभी भी कार्यात्मक। शिप करने योग्य सिर्फ मतलब है पूर्ण हो गया; परीक्षण, दस्तावेज, निर्माण योग्य, और स्थापित करने योग्य। – DancesWithBamboo