“ऐसा करने में कितना समय लगेगा?”
“यह परिवर्तन करना कितना कठिन होगा?”
यदि आप क्रोधित और निराश होने लगे हैं, तो आप शायद एक सॉफ्टवेयर डेवलपर हैं। अनुमान दर्दनाक है , खासकर जब वह व्यक्ति आपसे किसी कार्य का अनुमान लगाने के लिए कह रहा हो (चलिए उन्हें 'बॉब' कहते हैं) उसके पास केवल एक मोटा विचार है कि वे क्या मांग रहे हैं। इस दर्द का एक बड़ा कारण बॉब क्या चाहता है और आपको क्या लगता है कि बॉब क्या चाहता है, में अंतर के कारण होता है।
अनुमान लक्ष्य नहीं हैं
एक डेवलपर के रूप में, मैं एक अनुमान के बारे में सोचता हूं, "औसतन, मुझे किसी कार्य को पूरा करने में कितना समय लगेगा?" मैं निराश हूं क्योंकि मेरे पास आमतौर पर उस प्रश्न का उत्तर देने के लिए पर्याप्त जानकारी नहीं होती है, और मुझे पता है कि मैं जो कहता हूं उस पर कायम रहूंगा। मुझे लगता है कि इस अनुमान को हिट करने की मेरी क्षमता मेरे समग्र प्रदर्शन का संकेतक होगी, इसलिए मैं तनावग्रस्त और नाराज हो जाता हूं।
वे एक संचार उपकरण हैं
कोई भी उत्पाद जो जहाज करता है उसमें ऐसी चीजें होती हैं जो उस पर निर्भर करती हैं। कंपनी कितनी बड़ी है, इस पर निर्भर करते हुए, यह मार्केटिंग, प्रचार, व्यवसाय विश्लेषण, भविष्य की उत्पाद योजना या बहुत सी अन्य चीजें हो सकती हैं। इसका मतलब यह है कि बॉब जिस उत्तर की तलाश कर रहा है, वह यह है कि "मैं कब यह मान सकता हूं कि यह काम हो जाएगा, इसलिए मैं उन चीजों की योजना बनाना शुरू कर सकता हूं जो इस पर निर्भर हैं?"
मैं जवाब दे रहा हूं "यह चाहिए द्वारा किया जाएगा...", लेकिन बॉब एक "यह इच्छा . ढूंढ रहा है द्वारा किया जाएगा…”।
डेविड ब्रायंट कोपलैंड के पास एक महान पुस्तक, द सीनियर सॉफ्टवेयर इंजीनियर है, जो इसके बारे में अपने पहले अध्याय में बात करती है:
<ब्लॉकक्वॉट>एक वरिष्ठ सॉफ्टवेयर इंजीनियर पर भरोसा किया जाता है और उससे सबसे महत्वपूर्ण काम करने और उसे मज़बूती से करने की अपेक्षा की जाती है। इसे पूरा करने का तरीका यह है कि आप जो कुछ भी करते हैं उसे परिणामों के वितरण पर केंद्रित करें।
इसे ध्यान में रखते हुए, बॉब से उसकी शर्तों पर मिलना सबसे अच्छा है। इसका मतलब है कि:
-
अनुमान 90% विश्वास पर होना चाहिए, न कि 50%
बॉब जानना चाहता है कि वह कब उन चीजों की योजना बनाना शुरू कर सकता है जो किए जा रहे काम पर निर्भर करती हैं। अगर इसका मतलब यह है कि अनुमान लगाने की जरूरत है (यह शायद करता है), यह ठीक है। अगर इसका मतलब है कि आपको उसे एक या दो घंटे में वापस लाना है, तो वह भी ठीक है।
-
अनुमान समय-से-जहाज, समय-से-परीक्षण-हैंडऑफ़ या समय-से-तैनाती-कतार या किसी अन्य चीज़ पर आधारित होना चाहिए
यह परिणामों के वितरण पर ध्यान केंद्रित करने के लिए वापस जाता है। यदि बॉब किसी प्रोजेक्ट के शिप होने की प्रतीक्षा कर रहा है, तो यह उसके लिए अच्छा नहीं है यदि वह QA में अटका हुआ है। इसका आमतौर पर मतलब है कि अनुमानों को फिर से जोड़ने की जरूरत है, जो ठीक है।
-
सबसे अच्छा अनुमान अक्सर होता है "मैं अभी इसका उत्तर नहीं दे सकता, लेकिन मैं आपसे संपर्क करूंगा।"
यदि अनुमान को छोटे भागों में विभाजित किया जाता है, जिनमें से प्रत्येक को समझना आसान है, तो 90%-विश्वास समय-से-जहाज अनुमान प्राप्त करना बहुत आसान है। कई किताबें सटीक अनुमान लगाने की रणनीति पर चर्चा करती हैं, लेकिन यह इस पोस्ट के दायरे से बाहर है।
क्या होगा यदि मुझे बताया जाए कि मैं पर्याप्त तेजी से नहीं चल रहा हूं?
जहां भी मैंने काम किया है, मुझे बताया गया है कि प्रबंधन चाहता है कि हम तेजी से आगे बढ़ सकें। कोई फर्क नहीं पड़ता कि उत्पाद कितनी तेजी से वितरित किए जाते हैं, भले ही गुणवत्ता पूरी तरह से त्याग दी गई हो, भले ही अनुमान पूरी तरह से पागल हों, भले ही आप दिन में 20 घंटे काम करते हों, प्रबंधन अभी भी चाहता है कि आप तेजी से आगे बढ़ सकें। यह देखना एक डेवलपर का काम है कि यह सिर्फ एक इच्छा है और तेज लेकिन बनाए रखने योग्य गति रखने, अनुमान लगाने योग्य होने, परिणाम देने और गुणवत्ता के उच्च स्तर को बनाए रखने का अपना काम करते हैं।
क्या होगा जब मैं मेरे अनुमानों को प्रफुल्लित करने वाली राशि से हराया और ऐसा लगता है कि मेरे अनुमान अविश्वसनीय रूप से गद्देदार हैं?
मैंने कभी किसी ऐसे व्यक्ति को नहीं देखा है जो नियमित रूप से अधिक अनुमान लगाता है, इसके लिए दंडित किया जाता है, और अगली बार जब आपके पास कोई प्रोजेक्ट होता है जो आपकी अपेक्षा से अधिक लंबा होता है तो यह भुगतान करेगा। किसी दी गई राशि से अधिक आकलन एक ही राशि से कम करके आंकने की तुलना में बहुत बेहतर है (मुझे लगता है कि यह संभवतः नुकसान से बचने के समान है)। अधिकांश समय, एक बैकलॉग होगा और आप अगला कार्य पहले शुरू कर सकते हैं। बढ़िया!
यदि आपने 50% मामले को लक्षित किया है, तो अप्रत्याशित जटिलताएं पूरे उत्पाद शेड्यूल को ध्वस्त कर सकती हैं। आप लगभग आधा समय ऐसा करेंगे! यदि आप 90% मामले को लक्षित करते हैं, भले ही चीजें बुरी तरह से खराब हो जाएं, बाकी शेड्यूल इच्छित के अनुसार काम कर सकता है। उत्पाद समय पर शिप होता है, हर कोई खुश होता है, आपको वेतन वृद्धि और पदोन्नति मिलती है और सभी का सबसे अच्छा इनाम:आपको अधिक अनुमान लगाने के लिए मिलता है!