जब आपसे अनुमान पूछा जाए तो कैसे प्रतिक्रिया दें?


652

हम, प्रोग्रामर के रूप में, लगातार पूछा जा रहा है कि 'कितना समय लगेगा'?

और आप जानते हैं, स्थिति लगभग हमेशा ही ऐसी होती है:

  • आवश्यकताएँ स्पष्ट नहीं हैं। किसी ने सभी निहितार्थों का गहन विश्लेषण नहीं किया है।
  • नई सुविधा संभवत: आपके कोड में आपके द्वारा की गई कुछ मान्यताओं को तोड़ देगी और आप तुरंत उन सभी चीजों के बारे में सोचना शुरू कर देंगे जिन्हें आपको रिफ्लेक्टर करना पड़ सकता है।
  • आपके पास पिछले असाइनमेंट से करने के लिए अन्य चीजें हैं और आपको एक अनुमान के साथ आना होगा जो उस अन्य काम को ध्यान में रखता है।
  • 'किया' परिभाषा शायद अस्पष्ट है: यह कब किया जाएगा? 'किया' के रूप में बस इसे पूरा करने में कोडिंग, या 'किया' के रूप में "उपयोगकर्ताओं को यह उपयोग कर रहे हैं"?
  • कोई फर्क नहीं पड़ता कि आप इन सभी चीजों के प्रति कितने सचेत हैं, कभी-कभी आपके "प्रोग्रामर का गौरव" आपको मूल रूप से लगने वाले समय की तुलना में कम समय देता है। विशेष रूप से जब आप समय सीमा और प्रबंधन की उम्मीदों का दबाव महसूस करते हैं।

इनमें से कई संगठनात्मक या सांस्कृतिक मुद्दे हैं जिन्हें हल करना आसान और आसान नहीं है, लेकिन अंत में वास्तविकता यह है कि आपसे एक अनुमान लगाया जा रहा है और वे आपसे उचित उत्तर देने की अपेक्षा करते हैं। यह आपकी नौकरी का हिस्सा है। आप बस यह नहीं कह सकते: मुझे नहीं पता।

नतीजतन, मैं हमेशा यह अनुमान लगाकर समाप्त कर देता हूं कि मुझे बाद में एहसास हुआ कि मैं पूरा नहीं कर सकता। यह अनगिनत बार हुआ है, और मैं हमेशा वादा करता हूं कि यह फिर से नहीं होगा। लेकिन यह करता है।

एक अनुमान लगाने और देने के लिए आपकी व्यक्तिगत प्रक्रिया क्या है? आपने किन तकनीकों को उपयोगी पाया है?



4
यदि आवश्यकताएं इतनी स्पष्ट नहीं हैं, तो आप 50% त्रुटि मार्जिन (व्यापक श्रेणी) के साथ अनुमान लगा सकते हैं। यदि आवश्यकताएँ स्पष्ट हैं, तो आप 20% त्रुटि मार्जिन के साथ अनुमान लगा सकते हैं। एक और अच्छी रणनीति जो मेरे लिए काम करती है वह है एक परियोजना को चरणों में विभाजित करना। इस तरह से अनुमान लगाना आसान है और आपको केवल पहले चरण का अनुमान लगाना होगा। जब आप अगले चरण का अनुमान लगाने वाले होते हैं, तो आपको परियोजना की बेहतर समझ होती है। साथ ही, आपके और आपके ठेकेदार के बीच विश्वास बेहतर होना चाहिए। मैं हमेशा अपनी मान्यताओं और पूर्वधारणाओं को भी लिखता हूं। कभी भी लिखो "यह IE8 या उच्चतर पर काम करेगा", विशिष्ट हो।
फ्रांसिस्को गोल्डनस्टीन

सर्जियो, "नतीजतन, मैं हमेशा यह अनुमान लगाकर समाप्त कर देता हूं कि मुझे बाद में एहसास हुआ कि मैं पूरा नहीं कर सकता। यह अनगिनत बार हुआ है, और मैं हमेशा वादा करता हूं कि यह फिर से नहीं होगा। लेकिन यह होता है।" आज आप कितना सुधार महसूस करते हैं?
रेमीगिजस पनकेविउसियस

4
@ r.pankevicius ईमानदारी से, मैंने अभी अनुमान देना बंद कर दिया है: rclayton.silvrback.com/software-estimation-is-a-losing-game
Sergio Acosta

2
मुझे लगता है कि "अनुमान" और "समय सीमा" के बीच की बारीकियों को देखना भी महत्वपूर्ण है। एक अनुमान एक प्रतिबद्धता नहीं है, इसलिए एक छोटी सी त्रुटि भी समस्याग्रस्त नहीं होनी चाहिए। मैंने इस बारे में एक लंबा ब्लॉग पोस्ट लिखा है कि कोई भी इसमें दिलचस्पी रखता है: marcgg.com/blog/2015/08/27/deadlines-estimates-software-startup
marcgg

जवाबों:


390

से व्यावहारिक प्रोग्रामर: जर्नीमैन से मास्टर करने के लिए :

क्या कहना है जब एक अनुमान के लिए पूछा

आप कहते हैं, "मैं तुम्हारे पास वापस आऊंगा।"

आप लगभग हमेशा बेहतर परिणाम प्राप्त करते हैं यदि आप इस प्रक्रिया को धीमा करते हैं और इस खंड में वर्णित चरणों से गुजरने में कुछ समय बिताते हैं। कॉफी मशीन पर दिए गए अनुमान (कॉफी की तरह) आपको परेशान करने के लिए वापस आएंगे।

अनुभाग में, लेखक निम्नलिखित प्रक्रिया का सुझाव देते हैं:

  • उस सटीकता को निर्धारित करें जिसकी आपको आवश्यकता है। अवधि के आधार पर, आप अनुमान को विभिन्न सटीकता में उद्धृत कर सकते हैं। "5 से 6 महीने" कहना "150 दिन" कहने की तुलना में अलग है। यदि आप 7 वें महीने में थोड़ा खिसकते हैं, तो आप अभी भी बहुत सटीक हैं। लेकिन अगर आप 180 वें या 210 वें दिन खिसक जाते हैं, तो ऐसा नहीं है।
  • सुनिश्चित करें कि आप पूछ रहे हैं कि क्या पूछा जा रहा है। समस्या का दायरा निर्धारित करें।
  • सिस्टम को मॉडल करें। एक मॉडल एक मानसिक मॉडल, आरेख, या मौजूदा डेटा रिकॉर्ड हो सकता है। इस मॉडल का विरोध करें और घटकों से अनुमान बनाएं। प्रत्येक मान के लिए मान और त्रुटि पर्वतमाला (+/-) निर्दिष्ट करें।
  • अपने मॉडल के आधार पर अनुमान की गणना करें।
  • अपने अनुमानों को ट्रैक करें। जिस समस्या का आप अनुमान लगा रहे हैं, उसके बारे में जानकारी, और वास्तविक मूल्यों के बारे में जानकारी दर्ज करें।
  • आपके अनुमान में शामिल होने वाली अन्य चीजें आवश्यकताओं और विनिर्देशों को विकसित कर रही हैं या आवश्यकताओं के विनिर्देशों में बदलाव कर रही हैं, डिजाइन दस्तावेज और विनिर्देशों, परीक्षण (इकाई, एकीकरण, और स्वीकृति) को बनाने या अपडेट करने, परिवर्तन के साथ उपयोगकर्ता के मैनुअल या आरईएडीएमई बनाने या अपडेट करने की। यदि 2 या अधिक लोग एक साथ काम करते हैं, तो संचार का ओवरहेड (फोन कॉल, ईमेल, मीटिंग) और स्रोत कोड को मर्ज करना है। यदि यह एक लंबा काम है, तो डिलीवरी की तारीख चुनने पर अन्य काम, टाइम ऑफ (अवकाश, छुट्टी, बीमार समय), मीटिंग्स और अन्य ओवरहेड कार्यों जैसी चीजों का हिसाब रखें।

32
यह मैककोनेल्स के "ब्लैक आर्ट ऑफ़ सॉफ्टवेयर एस्टीमेशन" का भी एक बड़ा हिस्सा है। इसे कभी भी बंद न करें
पॉल नाथन

12
मैं मैककोनेल पुस्तक की अत्यधिक अनुशंसा करता हूं। यदि संभव हो, तो किसी से भी पूछें, जिसे आप से अनुमान लगाने के लिए उसका अनुमान लगाने की प्रश्नोत्तरी लेने की आवश्यकता है: कोडिंगहोरर / बीलॉग / 2006 / 06/… आप इसे एक गेम के रूप में प्रस्तुत कर सकते हैं, लेकिन यह अक्सर संदेश को प्राप्त करने में मदद करता है।
पैड्सलेकर

130
आप हमेशा कह सकते हैं "मैं आपके पास वापस आऊंगा।" यदि कोई कहता है "ठीक है, मुझे एक उत्तर की आवश्यकता है," कहो "यदि मैं आपको अभी उत्तर देता हूं, तो यह एक झूठ होगा। मेरे पास अभी पर्याप्त जानकारी नहीं है। मेरे लिए कुछ बनाना मेरे लिए यह एक असहमति होगी। मौके पर पहुंचें। "
एंडी लेस्टर

15
@AndyLester - बहुत सारी स्थितियाँ उत्पन्न होती हैं जहाँ अगर आप अब जवाब नहीं देते हैं, तो कोई और करेगा, और या तो प्रोजेक्ट और उनके साथ पैसा ले जाएगा, या फिर भी एक अनुमान को याद करने के लिए अंत में आप पर दोष लगाएगा, आपके पास कुछ भी नहीं था से सम्बंधित। यह बेकार है, और यह गलत है, लेकिन यह दुर्भाग्य से वास्तविकता है।
जोरिस टिम्मरमैन

3
@ThomasOwens मैं एक अनुबंध के लिए शूटिंग-से-हिप कूल्हे का उपयोग कभी नहीं करता, लेकिन मैं अनुबंध स्तर से पहले उन अनुमानों का उपयोग करता हूं। ग्राहक को अपने छोटे-से-छोटे समय को समर्पित करने के लिए मुझे परिमाण के कुछ प्रकार के आदेश देने होंगे। शुरू।
जोरिस टिम्मरमैन

170

सॉफ्टवेयर इंजीनियरिंग में सॉफ्टवेयर का आकलन सबसे मुश्किल एकल काम है - एक दूसरी दूसरी आवश्यकताएं हैं।

उन्हें बनाने के लिए बहुत सारी रणनीति है, सभी पहले अच्छी आवश्यकताओं को प्राप्त करने पर आधारित हैं। लेकिन जब आपकी पीठ दीवार के खिलाफ होती है और वे आपको बेहतर विवरण देने से मना कर देते हैं, तो इसे नकली करें:

  1. आपके पास जो आवश्यकताएं हैं, उन पर एक अच्छी नज़र डालें।
  2. वे क्या चाहते हैं के अपने सबसे अच्छे अनुमान के आधार पर अंतराल में भरने के लिए धारणाएं बनाएं
  3. अपनी सभी मान्यताओं को लिख लें
  4. उन्हें बैठने, पढ़ने और अपनी मान्यताओं से सहमत होने के लिए (या, यदि आप भाग्यशाली हैं, तो उन्हें देने और आपको वास्तविक आवश्यकताओं को देने के लिए)।
  5. अब आपके पास विस्तृत आवश्यकताएं हैं जिनसे आप अनुमान लगा सकते हैं।

यह मेरी माँ की तरह है जब मैं एक बच्चा था तो धमकी देता था "जल्दी करो और कुछ कपड़े उठाओ, या मैं उन्हें तुम्हारे लिए बाहर निकाल दूंगा!"


मैंने आपके 3 अंक से संबंधित एक अनुवर्ती प्रश्न पूछा। programmers.stackexchange.com/questions/132970/…
k0pernikus

अच्छी आवश्यकताओं को लिखने में कितना समय लगता है?
mmehl

142

मैंने एक ऐसे व्यक्ति के लिए विकास किया, जो सटीक अनुमानों के बारे में जानना चाहता था। हमने जो काम किया, जो बहुत अच्छा काम किया, वह यह था:

  • मैंने उस समय के लिए बिल किया जब मैंने अनुमान लगाया था। यह मेरे बिल के लगभग 20-25% पर आ गया।
  • मैंने कार्यों की अत्यंत विस्तृत जांच की। कूल्हे से कोई शूटिंग नहीं। मैं कोड में गया, पता लगाया गया कि किन लाइनों को बदलने की आवश्यकता है, कार्यक्रम के अन्य हिस्सों को क्या प्रभावित करेगा, मुझे यह सुनिश्चित करने के लिए कितना परीक्षण करना होगा कि चीजें अभी भी काम करती हैं। मैं .1 घंटे (6 मिनट) की इकाइयों में प्रत्येक टुकड़े का अनुमान लगाता हूँ।
  • मैंने उस विस्तृत विराम के साथ प्रत्येक कार्य के लिए उसे अपना अनुमान भेजा।

20-25% बिलिंग बहुत पसंद है।

लेकिन उन्होंने मुझे XYZ को बदलने के लिए कहा, यह सोचते हुए कि लगभग 2 घंटे लगेंगे। विस्तृत आकलन के 1 घंटे में, मुझे लगता है कि यह 8.5 घंटे लगेगा। इसलिए वह तय करेंगे कि क्या यह वेतन 8.5 घंटे का था। यदि नहीं, तो उसने 7.5 घंटे बचाए, अगर मैं बिना किसी अनुमान के इसे कर लेता, तो उसकी कीमत क्या होती।

और अगर वह 8.5 घंटे का निवेश करना चाहता था , तो मैंने जो अनुमान लगाया था, उसके लिए मैंने जो विस्तार कार्य किया था, वह मुझे वैसे भी करना था।

मैंने पाया कि इस पद्धति के साथ मैं ज्यादातर कार्यों को समय पर या बहुत जल्दी पूरा करने में सक्षम था, बिना भारी भीड़भाड़ के। क्योंकि समय इतनी सूक्ष्मता से टूट गया था, मैं जल्दी बता सकता था कि क्या मैं फिसल रहा था। यदि मैं बाधाओं को मारता हूं ताकि 3 घंटे के बाद मैं बता सकूं कि मेरा 8.5-घंटे का कार्य 12 होने वाला था, तो मैं उसके बारे में बात कर सकता था इससे पहले कि अधिक समय बीत जाए ताकि वह फिर से मूल्यांकन कर सके और यदि वह लागत के बारे में चिंतित था ।

क्या वह निकेल-और-डिमिंग था? नहीं, मैंने इसे अपने पैसे को लागू करने के रूप में देखा, जहां उन्होंने सबसे अधिक लाभ देखा। और मुझे अनुमान लगाने में अनुभव प्राप्त करने में खुशी हुई, जो मैं हमेशा भयानक था।


12
यह एक बहुत ही पर्याप्त तकनीक की तरह लगता है। वास्तव में, जब आप अपनी खुद की कंपनी के लिए एक अनुमान लगा रहे हैं, तो आपके वेतन के हिस्से के रूप में अनुमान समय का भुगतान किया जा रहा है। मुझे डर है, हालांकि, समस्या यह है कि अधिकांश संगठन उन लोगों की तुलना में बहुत बड़े कार्यों का अनुमान चाहते हैं जिन्हें .1 घंटे के समय में व्यक्त किया जा सकता है। आपके उत्तर के लिए धन्यवाद। (क्या आप सॉफ्टवेयर बोर्ड पर जॉयल से एक ही क्युरेलसा हैं?)
सर्जियो एकोस्टा

1
हाँ, वही।
क्युरेलसा

@SergioAcosta बिंदु यह है कि आप विश्लेषण / अनुमान समय का उपयोग कार्य को छोटे टुकड़ों में तोड़ने के लिए करते हैं। यह सबसे अच्छा उत्तर है, इहो।
निमचम्प्सकी

7
तो अगर यह 5 महीने की परियोजना की तरह है तो आपको एक महीने या उससे अधिक समय के लिए इसका आकलन करना चाहिए। संभवतः प्रबंधक यह स्वीकार नहीं करेंगे कि :)
डेरियस .V

@ डेरियस.वी, आप एक अच्छा बिंदु बनाते हैं। इस मामले में ग्राहक के निर्णय पूरे प्रोजेक्ट के लिए हां या नहीं विशेष रूप से नहीं थे, संपूर्ण परियोजना के लिए हां या नहीं। यह तकनीक निश्चित रूप से अधिक चुनौतीपूर्ण है यदि संपूर्ण परियोजना करना या न करना समग्र अनुमान पर निर्भर करता है। दूसरी ओर, यदि आप किसी परियोजना के लिए छह महीने के लिए बजट दे रहे हैं, लेकिन परियोजना को वास्तव में एक साल लग सकता है, तो क्या आप छह महीने के बाद, या दो या तीन के बाद पता करेंगे?
Kyralessa

64

हमसे अक्सर मीटिंग के दौरान "बॉलपार्क अनुमान" के लिए पूछा जाता है जहाँ हमें बहुत व्यापक और स्पष्ट विचार दिए जाते हैं कि वे क्या करना चाहते हैं। मैं हमेशा कहता हूं, "यदि आप आज उत्तर चाहते हैं तो यह एक वर्ष और एक मिलियन डॉलर है। यदि आप मुझे बहुत अधिक विवरण देना चाहते हैं और उनकी समीक्षा के लिए कुछ समय देना चाहते हैं तो मैं आपके लिए उन नंबरों को परिष्कृत कर सकता हूं।"

वे लगभग हमेशा बिंदु प्राप्त करते हैं।


7
जब वे कहते हैं कि यह बहुत अधिक है, तो मैं एक मिनट के लिए सोचने का नाटक करता हूं, फिर कहते हैं, "आप सही हैं! यह 18 महीने और 2 मिलियन है"।
साइबर फंक्शन

55

यह इस बात पर निर्भर करता है कि अनुमान किस लिए है।

एक व्यापार के मामले के लिए एक प्रारंभिक, उच्च-स्तरीय अनुमान के लिए फिर प्रमुख बातें हैं:

  1. स्पीड। जो भी तरीका आप इस्तेमाल करते हैं उसे जल्दी करने की जरूरत है। संपूर्ण बिंदु यह है कि हितधारक सुनिश्चित नहीं हैं यदि यह परियोजना करने के लायक भी है - यही कारण है कि उन्हें व्यवसाय के मामले के लिए संख्याओं की आवश्यकता है। यदि व्यावसायिक मामला ठोस था, तो उन्हें आपके अनुमानों की आवश्यकता नहीं होगी। इन परियोजनाओं के थोक आगे नहीं बढ़ेंगे, इसलिए यह महत्वपूर्ण है कि बहुत अधिक प्रयास अनुमान प्रदान करने में खर्च नहीं किए जाते हैं।
  2. एक सीमा दें। इसे व्यापक बनाएं। आपके पास आवश्यकताओं का विश्लेषण करने, हितधारकों के साथ कार्यशाला, मान्य मान्यताओं के लिए समय नहीं है। एक विस्तृत श्रृंखला अनुमान के प्राप्तकर्ता को बताती है "सॉफ्टवेयर परियोजनाएं स्वाभाविक रूप से जटिल और जोखिम भरी हैं - यदि आप एक उचित अनुमान चाहते हैं तो आपको मुझे अधिक विवरण और अधिक समय देने की आवश्यकता है"। एक एकल संख्या या एक संकीर्ण सीमा देने के साथ समस्या यह है कि यह आपको किसी भी वास्तविक विश्लेषण से पहले उम्मीदों को स्थापित करके एक कोने में पेंट करता है।

मैं एक तुलनीय परियोजना है कि "लगता है" एक ही लेने के लिए सबसे अच्छी तकनीक पाते हैं। "फील" पूरी तरह से व्यक्तिपरक है - लेकिन इस तरह के अनुमान के साथ मेरा अनुभव बताता है कि आप उद्देश्य माप नहीं पाएंगे। फिर एक विस्तृत श्रृंखला प्रदान करें। मैंने कुछ किताबें पढ़ी हैं, जो कहती हैं कि -50% से + 100% की सीमा अच्छी है, लेकिन यह कई कारकों पर निर्भर करता है।

एक विस्तृत, निम्न-स्तरीय अनुमान के लिए:

  1. आपको आधार रेखा चाहिए। यदि आधार रेखा स्थिर नहीं है तो अनुमान निरर्थक है।
  2. बॉटम अप सबसे अच्छा है। एक विस्तृत कार्य ब्रेकडाउन प्राप्त करें, प्रत्येक घटक का अनुमान लगाएं और फिर इसे बड़ी संख्या में रोल करें। मुझे लगता है कि पोकर एक बड़ी तकनीक है।
  3. दस्तावेज़ आकस्मिकता। यह स्पष्ट करें कि कोई आकस्मिकता (यदि कोई है) जोड़ी गई है। क्या इसे प्रत्येक पंक्ति वस्तु में जोड़ा जाता है? या पूरे अनुमान के लिए? या विशिष्ट जोखिमों के लिए? या कोई नहीं है?
  4. अपनी मान्यताओं का वर्णन करें। समय सीमा को देखते हुए अधिक से अधिक मान्य करें।
  5. अनुमान में स्पष्ट रूप से शामिल और बहिष्कृत राज्य। उदाहरण के लिए, समीक्षा शामिल है? क्या तकनीकी देरी शामिल हैं?

25

अंधेरे पक्ष से कुछ सलाह जिन्होंने कठिन तरीका सीखा।

आवश्यकताएँ स्पष्ट नहीं हैं। किसी ने सभी निहितार्थों का गहन विश्लेषण नहीं किया है।

इस बिंदु पर एक अनुमान मत करो। एक का अनुमान नहीं है कि दुश्मन संख्या के बारे में कोई सुराग नहीं के साथ एक युद्ध जीतने के लिए कितने सैनिकों की आवश्यकता है। अनुमान स्काउटिंग के बाद किया जाता है। यह तब तक है जब तक आप पहले से ही इस दुश्मन से नहीं लड़ते।

नई सुविधा संभवत: आपके कोड में आपके द्वारा की गई कुछ मान्यताओं को तोड़ देगी और आप तुरंत उन सभी चीजों के बारे में सोचना शुरू कर देंगे जिन्हें आपको रिफ्लेक्टर करना पड़ सकता है।

जब तक आप दूसरों से इस क्षेत्र के बारे में विशेषज्ञता की अपेक्षा करते हैं, तब तक यह आपकी जिम्मेदारी है।

आपके पास पिछले असाइनमेंट से करने के लिए अन्य चीजें हैं और आपको एक अनुमान के साथ आना होगा जो उस अन्य काम को ध्यान में रखता है।

ऊपर के समान, यहां तक ​​कि अप्रत्याशित कार्य के लिए भी, जो एक निकटवर्ती गैर-विद्यमान परीक्षण प्रक्रिया के साथ एक स्लो टीम मेट द्वारा बनाया गया है, जो आपके कोड को गड़बड़ करने का कारण बनता है जिसे आप पहले से पूरी तरह से अनुमान नहीं लगा सकते हैं। यह मौसम का पूर्वानुमान है।

'किया' परिभाषा शायद अस्पष्ट है: यह कब किया जाएगा? 'किया' के रूप में बस इसे पूरा करने में कोडिंग, या 'किया' के रूप में "उपयोगकर्ताओं को यह उपयोग कर रहे हैं"?

यहां उपयोगकर्ता की आवश्यकता को समझें, उपयोगकर्ता की तरह सोचें। यदि आपके साथी कुछ "होने" का अनुमान लगाते हैं, तो ऐसा न करें, क्योंकि नंगेपन वर्कफ़्लो के साथ कुछ बुनियादी कार्यक्षमता जो कि कोई उपयोगकर्ता संभवतः बर्दाश्त नहीं कर सकता है, जिसे वे "किए गए" मानते हैं । उपयोगकर्ता के दृष्टिकोण से इसके बारे में सोचें, क्योंकि यह वह सब क्लाइंट है जिसके लिए आप आम तौर पर अनुमान लगा रहे हैं। पूर्ण उपयोगकर्ता-अंत आवश्यकताओं के प्रति अनुमान लगाना, नंगेपन वाली तकनीकी आवश्यकताओं की ओर नहीं। और महसूस करें कि आपके ग्राहक अनुमान लगाने के बारे में यहाँ पूरी तरह से गलत हैं कि वे चीजों को कैसे कहते हैं और आप जो कहते हैं उसके तकनीकी पहलुओं को समझते हैं।

कोई फर्क नहीं पड़ता कि आप इन सभी चीजों के प्रति कितने सचेत हैं, कभी-कभी आपके "प्रोग्रामर का गौरव" आपको मूल रूप से लगने वाले समय की तुलना में कम समय देता है। विशेष रूप से जब आप समय सीमा और प्रबंधन की उम्मीदों का दबाव महसूस करते हैं।

यह मत करो! आप एक स्व-प्रेरित कठिन कार्यकर्ता की तरह आवाज़ निकालते हैं और संभवतः वह जो आसानी से ज़बरदस्ती करने के लिए देता है।

यहां समस्या यह है: मान लीजिए कि आप और जो ने एक ही कार्य के लिए समय अनुमान लगाया है (लेकिन दो अलग-अलग कर्मचारियों के बीच, एक समय में दोनों अनुमानों से अनजान)। आप अनुमानित रूप से अनुमान लगाते हैं, "एक सप्ताह" । यह ठीक है, आपको लगता है कि, आप सप्ताह में 100+ घंटे से अधिक काम करेंगे, जब तक कि भुगतान न हो जाए। अब तुम तीन दिन लेट हो गए।

इस बीच, जो 5 महीने का अनुमान लगाता है। आपको लगता है कि यह हास्यास्पद है, आपको लगता है कि आप इसे एक सप्ताह में खींच सकते हैं। जो काम कितना करता है? सप्ताह में 10 घंटे? ... सिवाय इसके कि वह ठीक 5 महीने में समय पर खत्म हो जाता है।

लगता है कि जो जैकस के रूप में माना जाता है? यह सही है, आप। जो एक महान कार्यकर्ता की तरह लगता है, अब आप अविश्वसनीय लगते हैं। इससे कोई फर्क नहीं पड़ता कि आपने जो समय लिया, उस समय के ~ 7% में एक और भी बेहतर परिणाम प्राप्त हो सकता है। क्या मायने रखता है कि आप एक सप्ताह के अनुमान से 3 दिन दूर थे।

तंग अनुमान के पक्ष में कभी नहीं। शिथिल अनुमान के पक्ष में त्रुटि। आपकी कंपनी में निर्माण करने के लिए एक प्रतिष्ठा है, और यह आपके अनुमानों की लंबाई पर आधारित नहीं होने जा रहा है, जितना कि आपके अनुमानों की सटीकता। एक अनुमान के साथ सटीक होना आसान है जो बहुत लंबा है, आपको बस समस्या पर काम करने और इसे बेहतर ढंग से हल करने के लिए अधिक समय मिलेगा। एक अनुमान है कि बहुत कम सांस लेने की जगह नहीं है, आप या तो इसे पूरी तरह से पूरा करते हैं या आप खराब हो जाते हैं।


2
यह एक महान जवाब है, यह मुझे चीजों का अनुमान लगाने और विचार करने के लिए बहुत उपयोगी अंतर्दृष्टि देता है, धन्यवाद
mboullouz

18

"दो हफ्ते!"

गंभीरता से। मेरा पहला अनुमान हमेशा दो सप्ताह का होता है। क्योंकि मेरे पास कुछ प्रकार का विचित्र मानसिक ब्लॉक है जो मुझे लगता है कि सब कुछ ऐसा लगता है जैसे यह दो सप्ताह होगा।

मैं इसके चारों ओर काम करने की कोशिश करता हूं, वास्तव में सोचने की कोशिश करता हूं कि मुझे कितना समय लगता है कि कुछ ले जाएगा, सभी संभावित परेशानी स्पॉट और बिट्स की पहचान करने की कोशिश कर रहा है जो मेरे लिए बहुत सटीक रूप से ब्लैक-बॉक्स-वाई दिखते हैं। और यह पहचानने की कोशिश करें कि यदि मेरा उत्तर "दो सप्ताह!" है, तो मैं संभवतः ऐसा करने में विफल रहा हूं।

बहुत अच्छे हर अच्छे प्रबंधक को मैंने "दो सप्ताह!" एक जवाब के रूप में जिसके जवाब में एक हल्के मौखिक दलाल-थप्पड़ की आवश्यकता होती है।


3
संभवत: इसीलिए अधिकांश टीमें 2 सप्ताह की दौड़ लगाती हैं :)
क्रिस्टियान ई।

17

एक ब्लॉग प्रविष्टि है जो यह बताती है कि आपके पिछले अनुमान कितने सही हैं, इसका रिकॉर्ड रखना है, और फिर अगली बार जब आप किसी से कहेंगे "यह दो सप्ताह होगा", तो आप अपने पिछले इतिहास को देख सकते हैं और देख सकते हैं कि यह कितना लंबा है वास्तव में पिछली बार आपने कहा था "यह दो सप्ताह का होगा"।

मैंने खुद इसकी कोशिश नहीं की है, लेकिन मैं यह देखना चाहता हूं कि मेरे अनुमान कितने सही हैं।


2
जोएल का फोगबुग उस पर आगे बढ़ता है और आपके डेटा का विश्लेषण करता है ताकि आप साक्ष्य आधारित शेड्यूलिंग का उपयोग कर सकें। यानी, प्रत्येक डेवलपर प्रवेश करता है कि उन्हें लगता है कि प्रत्येक कार्य में कितना समय लगेगा, और बाद में, उस कार्य में कितना समय लगा, और यह बताता है कि प्रत्येक डेवलपर अपने अनुमानों के साथ सटीक तिथि के लिए प्रायिकता वक्र बनाने के लिए कितना सही है।
क्रिस बकेट

हाँ, तो कुछ GDD करें - गेज प्रेरित विकास और सब कुछ बर्बाद कर दें
क्लाउडी कॉन्स्टैंटिन

11

यह संगठन पर निर्भर करता है और अनुमानों का उपयोग कैसे किया जाता है।

यदि अनुमान तैयार होने पर केवल एक सामान्य विचार प्रदान करने के लिए है, तो मैं आमतौर पर अपने अनुभव के आधार पर एक त्वरित अनुमान लगा सकता हूं। अक्सर बार मैं अनुमान के साथ किसी भी अनिश्चितता या संभावित बदलाव को शामिल करूंगा कि कैसे परिवर्तन सिस्टम के अन्य क्षेत्रों और प्रतिगमन परीक्षण की सीमा को प्रभावित कर सकते हैं।

यदि अनुमान का उपयोग किसी भी अनुबंध के लिए किया जाता है या ऐसे परिदृश्य में जहां अधिक सटीक समय की आवश्यकता होती है, तो मैं एक पूर्ण कार्य विराम करता हूं। यह अधिक काम है और डिजाइन और सिस्टम में बदलाव के बारे में गहराई से सोचने के लिए और अधिक की आवश्यकता है, लेकिन बहुत अधिक सटीक है, खासकर काम के बड़े टुकड़ों के लिए।

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


2
चालू संचार की आवश्यकता के लिए +1। IMO, यह है चंचल मॉडल के सबसे उपयोगी हिस्सा।
स्कॉट वेल्डन

यह यहाँ पहला सभ्य जवाब है क्योंकि यह केवल एक ही प्रकार का फल है (मैं ऊपर से नीचे पढ़ रहा हूँ) जो "चल रहे संचार" पर बल देता है। बाकी सभी को लगता है कि अनुमान-संचार एक बार की घटना है। यह बुरी सलाह है, और इन चीजों के लिए एक खराब दृष्टिकोण है। यह उत्तर अच्छी सलाह है।
एडम कैमरन 8

9

किस बात का अनुमान? छोटे कार्य या पूर्ण समाधान।

उत्तरार्द्ध मैं शायद ही कभी करता हूं, लेकिन फिर केवल अनुमान लगाता हूं, थोड़ा जोड़ता हूं, प्रबंधक को थोड़ा जोड़ते हैं और इसे एक सीमा में बनाते हैं, इसके बगल में एक छोटा नोट बताते हुए कि ऊपर एक अनुमान है।

छोटे कार्य - नियोजन पोकर मैंने वास्तव में अच्छी तरह से काम करने के लिए पाया है (बिल्कुल सही नहीं, कुछ 1pt कार्यों में अधिक समय लगा है और कुछ 5pt कार्यों में कुछ मिनट लगे हैं, लेकिन यह सब अंत में समाप्त हो गया है)।


याय योजना पोकर!
शॉन मैकमिलन

7

आज आप जो जानते हैं उसके आधार पर एक श्रेणी प्रस्तुत करें। अनिश्चितता की शंकु का उपयोग करें अपने प्रारंभिक guststimates के आसपास सीमा प्रदान करने के लिए।

हर हफ्ते गणना करें कि आपको कितना करना बाकी है, आप जो जानते हैं उसके आधार पर फिर से अनुमान लगाएं। एक बार जब आपके पास प्रत्येक सप्ताह के माध्यम से कितना काम हो रहा है, तो एक नमूना आकार के लिए पर्याप्त है, जो कि परियोजना की प्रगति और काम की मात्रा के रूप में छोड़ दिया गया है (आमतौर पर) कभी-कभी संकीर्ण होने की तिथि सीमा के लिए 90% विश्वास अंतराल प्रदान करें (उम्मीद है कि ) सिकुड़ जाती है।


7

आत्मविश्वास से। मैं आपको यह नहीं बता सकता कि अनुमान लगाते समय मैंने कितनी बार व्यावसायिकता पर नहीं डालकर एक ग्राहक के साथ एक प्रारंभिक बैठक की। यहां तक ​​कि अगर आप पतली हवा से बाहर संख्याएँ उड़ा रहे हैं - सुनिश्चित करें कि आप हमेशा कुछ अनुमान लगाते रहें। उस ने कहा, अपने आप को एक छेद में अनुमान न लगाने के लिए सावधान रहें। अलग-अलग चीजें अलग-अलग मात्रा में समय, प्रयास और संसाधनों को एक साथ रखने के लिए लेती हैं। यहाँ यह करने का एक अच्छा तरीका है:

उन्हें: कितना खर्च होगा?

मैं: यह इस बात पर निर्भर करता है कि आप मुझसे क्या चाहते हैं। आम तौर पर, मैं लगभग $ X पर इस तरह की परियोजना शुरू करता हूं।


6

कभी-कभी अनुमान लगाना आपके और आपकी टीम के लिए बहुत बड़ी चुनौती बन जाता है, खासकर जब हम सॉफ्टवेयर प्रोजेक्ट के आकलन के बारे में बात कर रहे होते हैं।

एक बार जब हमने सॉफ्टवेयर आकलन प्रक्रिया के बारे में अपने अनुभव और अपने ज्ञान को साझा करने का फैसला किया था और चार अलग-अलग प्रकार के अनुमानों को परिभाषित किया था :

  • अनुमानित संख्या
  • सेवा का अनुमान
  • सुविधा का अनुमान
  • स्थूल अनुमान

बेशक, वे प्रकार विशिष्ट हैं। बॉलपार्क वह है जिसे अक्सर "गेसटेस्ट" कहा जाता है तो यह एक अनुमानित संख्या या सीमा है जो लागत का एक सामान्य विचार देती है और यह एक संभावना को तय करने में मदद कर सकती है कि क्या वे चर्चा को आगे ले जाना चाहते हैं।

एक नियम के रूप में, क्लाइंट को प्रोजेक्ट की शुरुआत में बॉलपार्क का आंकड़ा चाहिए। और हमारी सलाह है: परियोजना की चर्चा करना और बॉलपार्क के आंकड़े प्रदान करना केवल पोटेंशियल एस्टीमेट प्राप्त करने की दिशा में अच्छी तरह से कदम होना चाहिए (जो कि लचीला है, संपूर्ण विकास प्रक्रिया के लिए एक प्रकार का पोटेंशियल प्रकार के अनुमान का उपयोग कर सकता है। स्क्रैच से दोबारा अनुमान लगाने की आवश्यकता नहीं है। आप सुविधाओं, सेवाओं आदि को जोड़ना, हटाना या बदलना चाहते हैं)।

सभी को सॉफ्टवेयर विकास के आकलन के साथ आने वाले जोखिमों को ध्यान में रखना चाहिए: कम आंकना, कम आंकना, कुल महाकाव्य असफल परिदृश्य आदि।

आप हमारे ब्लॉग पर अधिक पढ़ सकते हैं!

http://blog.lemberg.co.uk/project-management/software-estimation-process/

आशा है कि यह जानकारी आपकी मदद करेगी!


5

मैं हमेशा अनुमान देता हूं कि मुझे बाद में एहसास हुआ कि मैं पूरा नहीं कर सकता। यह अनगिनत बार हुआ है, और मैं हमेशा वादा करता हूं कि यह फिर से नहीं होगा।

ऐसा लगता है कि आपसे एक प्रतिबद्धता के लिए कहा जा रहा है, एक अनुमान नहीं। ये अलग-अलग चीजें हैं, लेकिन यदि आप प्रतिबद्धताओं को मज़बूती से प्रबंधित कर सकते हैं तो यह वास्तव में आपकी विश्वसनीयता और कैरियर में मदद करेगा।

मेरे 10 साल के अनुभव के आधार पर कुछ सलाह:

  • हमेशा एक सीमा प्रदान करें (यानी निचला और ऊपरी बाध्य)। यह आपके अनिश्चितता के स्तर का संचार करेगा
  • यदि आपके पास बहुत बड़ी अनिश्चितता है, तो एक डिफरल के लिए पूछें (उदाहरण के लिए विश्लेषण करने के लिए 1 दिन, और फिर एक तंग सीमा प्रदान करें)
  • यदि यह कार्य बहुत बड़ा है, तो इसे तोड़ दें और प्रत्येक टुकड़े के लिए एक सीमा प्रदान करें

4

सबसे पहले, अगर कुछ कार्य मुझे सौंपा गया था, तो मैं इसे उप-मुखौटे में तोड़ दूंगा। मैं प्रत्येक उप-कार्य के लिए समय का अनुमान लगाऊंगा और संभवत: उप-मुखौटे के साथ मैं समस्याग्रस्त क्षेत्र को खोजने में सक्षम होऊंगा और इसलिए मैं पूर्वानुमान लगा सकूंगा कि यह कब तक होगा। एक निश्चित सीमा तक।

लेकिन फिर भी सभी योजनाएँ कुछ हद तक ही मदद करेंगी। केवल जब आप कोडिंग शुरू करते हैं तो आप सटीक मुद्दों को पा सकते हैं


1

यदि आप एक ही बॉस या क्लाइंट के लिए कई प्रोजेक्ट करते हैं, तो आप सप्ताह या महीनों के बजाय जटिलता के व्यापक स्ट्रोक में अनुमान लगाने की कोशिश कर सकते हैं, संभवतः टी-शर्ट के आकार में। कुछ पिछले प्रोजेक्ट्स को पहचानें, और उन्हें S, M, L, XL आकार दें।

और फिर अपने आप से पूछें: कौन सी परियोजना उस ध्वनि के दायरे में समान है? और फिर "2 महीने" के साथ जवाब देने के बजाय, आप "मेरे लिए एक एल की तरह लग रहा है" के साथ जवाब दे सकते हैं (या परियोजना के लिए आपका अंशांकन जो भी हो)।

यह समझना बहुत आसान है, और यह भी स्पष्ट है कि उन अनुमानों में बहुत अनिश्चितता है।

फिर, जब आवश्यकताएं बदल जाती हैं, तो आप कह सकते हैं कि "यह परिवर्तन एक एक्सएल की तरह लगता है"।


यह काफी स्मार्ट है (यदि आपको इसका उपयोग करने की अनुमति है): मैं एक समान दृष्टिकोण के साथ जाना पसंद करता हूं, लेकिन समय के मूल्यों के साथ सामान्यीकरण करता हूं, इसलिए मैं जवाब दूंगा "यह एक सप्ताह या तो लगेगा" या "यह एक बात होने जा रही है" कुछ छोटे दिनों के लिए "और परियोजना के एक महीने से बड़े होने का जवाब देने से बचें और एक उचित अनुमान की आवश्यकता है
एडोआर्डो

0

थोड़ा देर से लेकिन जब मैं सेना में था तो हमें अनुमान लगाने के लिए PERT का उपयोग करने का निर्देश दिया गया था। यह आपके क्षेत्र में कुछ अनुभव और हाथ में कार्य की आवश्यकता है। इलेक्ट्रॉनिक उपकरणों (कॉम्प्लेक्स रेडियो और सैटेलाइट कॉम्स उपकरण) को बनाए रखने और मरम्मत करते समय पूरा होने का अनुमानित समय निर्धारित करते समय यह आश्चर्यजनक रूप से सटीक था, जहां नियमित रखरखाव के दौरान किसी भी संख्या में चीजें गलत हो सकती हैं या ठीक हो सकती हैं। अनुमान महत्वपूर्ण थे क्योंकि अन्य इकाइयाँ तब तक निष्क्रिय हो सकती हैं जब तक वे अपने कोम उपकरण वापस नहीं ले लेते। एक है कि मैं इस्तेमाल किया है यह मुफ्त ऑनलाइन PERT कैलकुलेटर है


1
यह लिंक नि: शुल्क ऑनलाइन पीईआरटी कैलकुलेटर काम नहीं करता है।
krokodilko

@krokodilko मैंने एक नया PERT उपकरण बनाया है, जो यहां सॉफ्टवेयर अनुमानों की ओर अधिक सक्षम है: अनुमान ।rokkincat.com ।
स्लैंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.