- सॉफ़्टवेयर प्रोजेक्ट की सटीक अवधि का अनुमान लगाना असंभव है, और ज़्यादातर काम अप्रत्याशित ‘अज्ञात काम’ से संचालित होते हैं
- अनुमान इंजीनियरों के लिए नहीं, बल्कि मैनेजमेंट के राजनीतिक टूल के रूप में इस्तेमाल होते हैं, जो प्रोजेक्ट की प्राथमिकता और फंड के आवंटन का फ़ैसला करते हैं
- व्यवहार में अनुमान ही काम को परिभाषित करता है, और टीमें दिए गए समय के भीतर संभव तकनीकी 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 है, और केवल असंभव प्रोजेक्ट ही अपवादस्वरूप वास्तविकता बताने का माध्यम बनते हैं
- सही अनुमान में सटीक संख्या नहीं, बल्कि जोखिम और विकल्पों की प्रस्तुति शामिल होनी चाहिए
- सॉफ़्टवेयर काम का सटीक अनुमान असंभव है, और सफल अनुमान इस बात पर निर्भर करता है कि अज्ञात जोखिमों को पहचाना और प्रबंधित किया जाए
अभी कोई टिप्पणी नहीं है.