> “इसे बनाने में कितना समय लगेगा?”
- software developers जिस सवाल से डरते हैं और जिसे नापसंद करते हैं, उस पर मेरी washing machine ने मुझे फिर से सोचने पर मजबूर किया
- washing machine ने software effort estimation की मुश्किलें समझाईं
- नए घर में शिफ्ट होने के दौरान washing machine install करते समय उम्मीद से कहीं ज़्यादा समय लगा
- आमतौर पर 10 मिनट में खत्म हो जाने वाला काम इस बार 4 घंटे ले गया
- पहले से अनुमान न लगाए गए obstacles (blockers) सामने आए, जिनकी वजह से installation में देरी हुई
- इस प्रक्रिया से समझ आया कि software development में effort estimation मुश्किल क्यों होता है
- रुकावटें और समाधान
- रुकावट 1: power connection के लिए छेद नहीं था, इसलिए washing machine को power से जोड़ना संभव नहीं था
- समाधान 1: hardware store से 60mm hole saw खरीदकर छेद किया गया
- रुकावट 2: consumer-grade drill से hole saw इस्तेमाल नहीं किया जा सकता था
- समाधान 2: ज़्यादा ताकतवर drill उधार लेकर इस्तेमाल की गई
- रुकावट 3: drainage और water supply hoses नए घर में अपेक्षा से छोटे निकले
- समाधान 3: नया extension hose खरीदने की कोशिश की, लेकिन पता चला कि मौजूदा hose extend नहीं हो सकता, इसलिए फिर से नया hose खरीदना पड़ा
- रुकावट 4: faucet पर कसा हुआ metal cap हट नहीं रहा था
- समाधान 4: बड़ा spanner खरीदकर cap हटाया गया
- रुकावट 5: drain outlet का spigot PVC wall से बंद था
- समाधान 5: drill से PVC wall में छेद करके drainage hose जोड़ा गया
- कुल 5 बार hardware store जाना पड़ा और 4 घंटे के काम के बाद washing machine को सही तरह install किया जा सका
- रुकावट 1: power connection के लिए छेद नहीं था, इसलिए washing machine को power से जोड़ना संभव नहीं था
- software development effort estimation मुश्किल क्यों है
- कोई काम परिचित हो, तब भी environment बदलने पर अप्रत्याशित variables आने की संभावना बहुत ज़्यादा होती है
- पुराने अनुभव के आधार पर किया गया estimation अक्सर इसलिए गलत साबित होता है क्योंकि “unknown unknowns” मौजूद होते हैं
- कुछ उदाहरण:
- जिस library का इस्तेमाल करना था, वह अब maintain नहीं हो रही, इसलिए उसे खुद patch करना पड़ता है
- development tools update होने के बाद पुराना तरीका अब काम नहीं करता
- OS version बदलने पर पुरानी dependencies ठीक से काम नहीं करतीं
- infrastructure में नया component जोड़ा गया, लेकिन वह उम्मीद के मुताबिक behave नहीं करता
- निष्कर्ष
- नए घर का यह अनुभव दिखाता है कि software development में effort estimation कितना मुश्किल है
- development शुरू करने से पहले requirements की जितनी हो सके उतनी गहराई से जाँच करनी चाहिए, लेकिन अप्रत्याशित blockers का आना लगभग अपरिहार्य है
- software project भले ही परिचित काम जैसा दिखे, नए environment में बिल्कुल अलग चुनौतियाँ सामने आ सकती हैं
- इसलिए इन variables को ध्यान में रखते हुए schedule और resources को लचीले ढंग से adjust करना ज़रूरी है
1 टिप्पणियां
Hacker News राय
software estimation एक मज़ाक जैसा है। क्योंकि कम आकलन करने पर कोई सज़ा नहीं होती
बढ़िया लेख है, लेकिन software experience से एक मुख्य अंतर छूट गया है
DIY projects हमेशा ऐसे ही होते हैं
drilling के बाद 25 मिनट तक सीधा बनाए रखने का तरीका सीखा और noise-cancelling earphones का आश्चर्य भी जाना
कहानी अच्छी है। लेकिन मेरा अनुभव लगभग बिल्कुल उल्टा है
"वास्तविकता में चौंका देने वाली बारीकियाँ होती हैं" यह बात याद आती है
जब लेखक ने power cable के लिए छेद किया, तो उसने साफ-सुथरे ढंग से plastic insert फिट किया
ज़्यादातर सहकर्मी हैरान होते हैं जब मैं कहता हूँ कि project शुरू होने से पहले research और inventory में बहुत समय लगता है
अगली बार जब किसी technician की कीमत देखकर हैरानी हो, तो यह दिलचस्प बात सोचने लायक है
software project शुरू करने से पहले अगर यह ही न पता हो कि कौन-से सवाल पूछने चाहिए, तो क्या करना चाहिए?