• सॉफ़्टवेयर प्रोजेक्ट की सटीक अवधि का अनुमान लगाना असंभव है, और ज़्यादातर काम अप्रत्याशित ‘अज्ञात काम’ से संचालित होते हैं
  • अनुमान इंजीनियरों के लिए नहीं, बल्कि मैनेजमेंट के राजनीतिक टूल के रूप में इस्तेमाल होते हैं, जो प्रोजेक्ट की प्राथमिकता और फंड के आवंटन का फ़ैसला करते हैं
  • व्यवहार में अनुमान ही काम को परिभाषित करता है, और टीमें दिए गए समय के भीतर संभव तकनीकी approach खोजने के तरीके से काम करती हैं
  • प्रभावी अनुमान के लिए इंजीनियरों को राजनीतिक संदर्भ समझने, अज्ञात जोखिम का आकलन करने और कई execution scenarios पेश करने पर ध्यान देना चाहिए
  • यह approach सटीकता से अधिक भरोसे और यथार्थवादी सहयोग को महत्व देता है, और संगठन के भीतर decision-making structure को समझने वाली engineering क्षमता पर ज़ोर देता है

सॉफ़्टवेयर अनुमान की मिथ्या धारणा

  • इंडस्ट्री में यह ‘शिष्ट मिथक’ मौजूद है कि कुशल टीमें पर्याप्त मेहनत से सटीक टाइमलाइन का अनुमान लगा सकती हैं
    • वास्तव में ज़्यादातर इंजीनियर यह मानते हैं कि सटीक अनुमान संभव नहीं है
  • कुछ टीमें T-shirt sizing method से अनुमान लगाती हैं, लेकिन अंततः इसे समय की इकाइयों में बदलकर मैनेजमेंट तक भेजा जाता है
  • “शुरुआती अनुमान को दोगुना करो और 20% जोड़ दो” जैसी अवास्तविक heuristics भी इस्तेमाल होती हैं

अनुमान लगाना असंभव क्यों है

  • छोटे और स्पष्ट काम अनुमानित हो सकते हैं, लेकिन ज़्यादातर प्रोजेक्ट अनिश्चित और जटिल सिस्टम में किए जाते हैं
    • उदाहरण: किसी साधारण लिंक टेक्स्ट को बदलना 45 मिनट में होने का अनुमान लगाया जा सकता है, लेकिन बड़े सिस्टम में बदलाव का नहीं
  • ज़्यादातर प्रोग्रामिंग exploratory research activity की तरह होती है, जहाँ केवल पहले से की गई योजना से यह पता नहीं चल सकता कि कौन-कौन सा काम लगेगा
  • अतीत का centralized architecture design approach असफल रहा, और फ़ैसले वही डेवलपर लें जो वास्तविक कोड से काम कर रहे हैं
  • नतीजतन ज्ञात काम कुल का सिर्फ 10% होता है, बाकी 90% अज्ञात क्षेत्र होने के कारण अनुमानित नहीं किया जा सकता

अनुमान इंजीनियरों का नहीं, मैनेजमेंट का टूल है

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

अनुमान ही काम को परिभाषित करता है

  • आम धारणा के विपरीत, काम नहीं बल्कि अनुमान पहले तय होता है, और उसके अनुरूप तकनीकी approach चुना जाता है
    • उदाहरण: “PDF से बातचीत” फ़ीचर को 6 महीने में बनाना और 1 दिन में बनाना — दोनों के approach पूरी तरह अलग होंगे
  • समय की सीमा कोड डिज़ाइन की गहराई और गुणवत्ता तय करती है, और इंजीनियर दिए गए समय में संभव समाधान चुनते हैं

वास्तविक अनुमान प्रक्रिया

  • पहले राजनीतिक संदर्भ को समझें, ताकि प्रोजेक्ट की अहमियत और अपेक्षित शेड्यूल का अंदाज़ा हो
  • फिर पहले से तय समय-सीमा के आधार पर संभावित approaches तलाशें
  • अज्ञात क्षेत्र (unknowns) जितने ज़्यादा होंगे, अनुमान उतना बड़ा होगा और approach का दायरा उतना सीमित करना पड़ेगा
  • अंत में सटीक अवधि के बजाय जोखिम आकलन और कई execution scenarios पेश करें
    • उदाहरण: सभी हिस्से खुद हल करना, कुछ को bypass करना, या दूसरी टीम से सहायता माँगना
  • इंजीनियर की भूमिका “इसमें कितना समय लगेगा” नहीं, बल्कि “दिए गए समय में क्या संभव है” ढूँढना है

आपत्तियाँ और जवाब

  • कुछ इंजीनियर अनिश्चित परिस्थितियों में अनुमान देने से बचते हैं, लेकिन इससे कोई ग़ैर-तकनीकी व्यक्ति उनकी जगह अनुमान लगाने लगता है
  • मैनेजमेंट से सहयोग किए बिना हमेशा टकराव की मुद्रा रखना अलाभकारी है और भरोसा कम करता है
  • जिन टीमों पर दबाव महसूस नहीं होता, वे संभवतः सिर्फ संगठन के कम-ध्यान वाले क्षेत्र में होती हैं

निष्कर्ष

  • व्यवहार में मैनेजर पहले से ही एक टाइमलाइन मन में रखकर टीम के पास आते हैं, और टीम उसके भीतर संभव तकनीकी समाधान खोजती है
  • अनुमान मैनेजमेंट के बीच negotiation tool है, और केवल असंभव प्रोजेक्ट ही अपवादस्वरूप वास्तविकता बताने का माध्यम बनते हैं
  • सही अनुमान में सटीक संख्या नहीं, बल्कि जोखिम और विकल्पों की प्रस्तुति शामिल होनी चाहिए
  • सॉफ़्टवेयर काम का सटीक अनुमान असंभव है, और सफल अनुमान इस बात पर निर्भर करता है कि अज्ञात जोखिमों को पहचाना और प्रबंधित किया जाए

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.