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