YAGNI का अर्थ है कि चीजें तब की जाती हैं जब उन्हें पूरा करने की आवश्यकता होती है और पहले नहीं। इसका मतलब यह नहीं है कि वे कभी भी काम नहीं करते हैं, तब तक नहीं जब तक कि उन्हें कभी ज़रूरत न हो। इसका मतलब है कि आप केवल वही करते हैं जो ग्राहक को तत्काल व्यावसायिक मूल्य देता है । क्या तात्कालिक व्यापार मूल्य का मतलब हर ग्राहक और हर परियोजना के लिए व्यक्तिपरक है।
किसी भी स्थिति में, आप YAGNI के साथ कुछ भी नहीं खो सकते हैं ।
दूसरे मामले में, आप समय लेखन कोड खो देते हैं जो कभी उपयोग नहीं किया जाता है, और कोड के लिए परीक्षण लिखना जो कभी उपयोग नहीं किया जाता है, और कोड के लिए प्रलेखन लिखना जो कभी उपयोग नहीं किया जाता है, और कोड का रखरखाव जो कभी उपयोग नहीं किया जाता है, लोग सोच रहे हैं कि यह कोड क्या करता है , और यदि यह कभी भी उपयोग किया जाता है, तो विज्ञापन nauseum।
उदाहरण
अगर मैं एक प्रोटोटाइप या अवधारणा के प्रमाण पर काम कर रहा हूं या किसी एप्लिकेशन के 1.0 संस्करण पर काम कर रहा हूं, तो मुझे फेसबुक के स्तर को मापने के लिए डिज़ाइन की आवश्यकता नहीं है। नरक मुझे फेसबुक के स्तर के पैमाने के लिए एक डिजाइन की आवश्यकता नहीं है, जब तक मैं यह देखना शुरू नहीं करता कि मेरे पास उस तरह का ट्रैफ़िक है।
क्या आपको लगता है कि जुकरबर्ग ने फेसबुक के पहले संस्करण को 500 मिलियन उपयोगकर्ताओं के पैमाने पर डिज़ाइन किया था? नहीं, उसने ऐसा करने के लिए डिज़ाइन किया और बनाया कि उसे केवल करने की ज़रूरत है और नहीं। यदि उसने पहले दिन से 500 मिलियन उपयोगकर्ताओं के लिए डिज़ाइन को झरना करने की कोशिश की होती, तो फेसबुक शायद कभी भी जारी नहीं होता।
चीजों को करने का व्यावहारिक तरीका यह है कि उसने यह कैसे किया। उन्होंने PHP और MySQL के साथ शुरुआत की, और बिजनेस वैल्यू के आधार पर आवश्यकतानुसार पुन: डिज़ाइन और रीवोट किया , लाखों उपयोगकर्ताओं के लिए स्केलिंग जबरदस्त व्यावसायिक मूल्य की थी, लेकिन दिन 0. पर नहीं। 0 पर अभी-अभी कुछ लॉन्च करना जबरदस्त व्यावसायिक मूल्य था।
उन्होंने पुन: डिजाइन और पुनर्लेखन की योजना बनाई । जो कि रसोई के सिंक के लिए योजना बनाने की तुलना में एक अलग मानसिकता है और कभी भी पूर्ण रूप से उपयोगी कुछ भी विकसित या वितरित नहीं करता है।
कोड आधार के लिए जीवन के अंत पर योजना बनाना, और फिर से लिखना फुर्तीला और भविष्य का प्रमाण है। "लचीले" के कुछ अपरिभाषित लक्ष्य के साथ आने की कोशिश बस हर बार असफलता में समाप्त होती है। आप बिना किसी आवश्यकता के डिजाइन कर रहे हैं और समय बर्बाद कर रहे हैं आप विकसित हो सकते हैं जो कि उन सुविधाओं के बारे में इच्छाधारी सपने देखने के बजाय व्यावसायिक मूल्य का है जो कभी भी उपयोग नहीं किए जाएंगे।