यह कैसे समझा जाए कि नमूना आकार परियोजना की लंबाई को प्रभावित नहीं करता है


58

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

अंतिम परियोजना में 250,000 आइटम (डेटा की पंक्तियाँ) शामिल थे। अगली परियोजना में केवल 4,000 आइटम होंगे। प्रोजेक्ट मैनेजर / व्यवसाय से जुड़े लोगों का मानना ​​है कि प्रोजेक्ट को पूरा होने का समय 1/10 होना चाहिए क्योंकि इसका अंतिम प्रोजेक्ट के आकार का केवल एक हिस्सा है।

एक अच्छा सादृश्य क्या है, मैं यह समझाने के लिए उपयोग कर सकता हूं कि एक सिस्टम से दूसरे सिस्टम में डेटा ट्रांसफर करने के लिए कोड लिखना समान आइटम नंबर की परवाह किए बिना समान राशि लेता है - इसे 1 आइटम के लिए लिखना या 100,000,000 के लिए एक प्रोग्रामिंग से लगभग उतना ही समय लगेगा दृष्टिकोण।


46
यह ठीक उसी स्थिति में प्रतीत नहीं होता है - लेकिन जब मेरा सामना प्रबंधकों से होता है जो सोचते हैं कि वे एक परियोजना को और गति दे सकते हैं, तो मैं कहूंगा कि "9 महिलाएं एक महीने में बच्चा नहीं बना सकती हैं"
मैटवेवी

3
आप इसे कैसे समझाते हैं, इससे सावधान रहें। यह स्पष्ट रूप से 100,000 आइटम के रूप में 1 आइटम के लिए लंबे समय तक नहीं लेता है। 1 आइटम के लिए, आप बस बिना किसी प्रोग्रामिंग के हाथ से परिवर्तित कर देंगे।
मार्कज

यदि आपको वास्तव में यह समझाने की आवश्यकता है कि आप पहले से ही बर्बाद हैं
बालोग पाल

जवाबों:


112

उन्हें बताएं कि यह देश के दूरदराज के हिस्से में एक नया फोर लेन हाईवे बनाने जैसा है। चाहे वह सड़क दिन में 100 कारों या एक दिन में 1000 कारों द्वारा उपयोग की जाती है, सड़क बनाने का प्रयास लगभग उसी के बारे में होगा।

दी, अगर यह एक दिन में 1,000,000 कारों का समर्थन करने जा रहा है, तो आपको सड़क को थोड़ा अधिक मजबूत बनाना होगा, लेकिन परवाह किए बिना, आप एक ही पेड़ को काटने जा रहे हैं, एक ही पहाड़ों के माध्यम से विस्फोट, समान मात्रा में गंदगी की, और ये गतिविधियाँ एक निश्चित लागत हैं चाहे कितनी भी सड़कें क्यों न हों।


1
+1 अच्छा उपमा, मैं एक शारीरिक काम करने के लिए संघर्ष कर रहा था;)
jk।

1
+1 मैं एक प्लम्बर से पाइप को एक स्थान से दूसरे स्थान पर चलाने के बारे में सोच रहा था।
जोशुआ ड्रेक

13
कार की
उपमाएँ

7
"फिक्स्ड कॉस्ट" एक बढ़िया कीवर्ड है जिसे व्यवसाय के लोग पसंद करते हैं और समझते हैं :)
तमसे सजेलेई

4
मुसीबत है, सादृश्य काम नहीं करता है। सड़क बनाने वाले केवल 4-लेन राजमार्ग का निर्माण करते हैं यदि वे बहुत अधिक यातायात की उम्मीद करते हैं (एक दिन में 25,000 वाहन विशिष्ट होंगे। एक मिलियन कारें एक दिन? वाह)। अगर वे 50 गुना कम की उम्मीद करते हैं, तो वे बहुत सस्ती सड़क का निर्माण करेंगे। आपके प्रबंधक कह सकते हैं "फिर आप इस समस्या पर 4 लेन का राजमार्ग क्यों बना रहे हैं? यह सिंगल-लेन समस्या या गंदगी ट्रैक समस्या है"
MarkJ

102

उन्हें एक कैलकुलेटर दें और उन्हें 1238783423 को 9858238483 पर जोड़ने के लिए कहें, कितना समय लगता है। फिर उन्हें 3423 को 8483 पर जोड़ने के लिए कहें और उनसे कहें कि आप लगभग 100000 समय के उत्तर की उम्मीद करते हैं।

आप यह भी बता सकते हैं कि डेटा की मात्रा (संभवत:) प्रभाव उस समय की लंबाई होगी जो सॉफ्टवेयर को विकास के समय को चलाने में लगेगा।


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

1
मुझे इस पर हंसी आई, लेकिन एरिक को वोट दिया। मुझे नहीं लगता कि यह वही है जिसे वे "मैनेज करना" कहते हैं।
डेविड डब्ल्यू

2
निश्चित नहीं। मुझे लगता है कि यह अधिक पसंद है "एक कैलकुलेटर के लिए कितना खर्च होता है जो एक पंक्ति में 4000 में दो संख्याओं को 4000 बार जोड़ सकता है" बनाम "होस्ट बहुत अधिक क्या यह एक कैलकुलेटर के लिए खर्च करता है जो एक पंक्ति में दो संख्याओं को 250,000 बार जोड़ सकता है"।
स्कॉट व्हिटलॉक

वाह, यह शानदार है
Balog Pal

35

इसे मैनेजर बोले।

यदि आप 1 विगेट्स प्रति सेकंड पर विजेट बनाने के लिए एक मशीन का निर्माण करते हैं, तो इससे कोई फर्क नहीं पड़ता कि आप इसे 100 विजेट या 10000 विजेट बनाने के लिए उपयोग करते हैं, मशीन को बनाने में एक ही समय लगता है।

अंतर रन टाइम पर है, बिल्ड टाइम नहीं।

सभी प्रबंधन कक्षाएं काल्पनिक विजेट कारखानों के साथ इस तरह की समस्या पर काम करती हैं।


5

एक सादृश्य का उपयोग न करें। जरा इसे समझाइए।

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

शिक्षा नीचे बात करने से बेहतर है :)


3

वास्तव में एक सादृश्य नहीं है, लेकिन मैं अभी भी इस तर्क से निपटने का एक अच्छा तरीका मानता हूं: प्रदर्शित करता है कि इसमें एक घातक दोष है।

आपकी पिछली परियोजना में उस पर कुछ संशोधनों के साथ डेटा की प्रतिलिपि बनाना (मुझे जो भी मिलता है) शामिल है।

अगर मुझे यह सही लगता है, तो यह कुछ टीम है, जो कहती है, 100 अकाउंटेंट कुछ महीनों में कर सकते हैं। फिर उन्होंने समस्या पर सॉफ्टवेयर डेवलपर्स को क्यों फेंक दिया?

क्योंकि आपके द्वारा बनाया गया सॉफ़्टवेयर परवाह नहीं करता है कि क्या यह 10 या 10 मिलियन टुकड़ों के डेटा को संसाधित करेगा (बिल्कुल नहीं, लेकिन मुझे संदेह है कि आपके प्रबंधकों ने O(n)जटिलता की देखभाल की है)। इस प्रकार, यह शायद सस्ता, तेज और क्लीनर (कम त्रुटि-प्रवण प्रक्रिया) था।

यदि आप अधिक कट्टरपंथी हैं, तो आप यह भी सुझाव दे सकते हैं कि यदि उन्हें यह पसंद नहीं है कि सॉफ़्टवेयर टीम कितनी तेज़ी से काम करती है, तो वे हमेशा हाथ से काम करने के लिए एकाउंटेंट में कॉल कर सकते हैं।

जब आप अंतिम परियोजना को विकसित कर रहे थे, तब यह आपके प्रबंधकों के जीवन को बहुत आसान बना देता था, और अब, जब उन्हें एक ही तर्क लागू करना होता है कि सॉफ्टवेयर के अगले टुकड़े का कोई ध्यान नहीं है, अगर यह 10 मिलियन या 4 पर काम करने जा रहा है 000 पंक्तियों, वे अचानक इसके बारे में भूल जाते हैं।

मुझे लगता है कि आपके मामले में प्रबंधक केवल अनुमान लगाने का खेल खेल रहे हैं और टीम को 4000 और 250000 के बीच के अंतर को इंगित करके और कुछ 'अपराधबोध' की आशंका के साथ काम करने के लिए मजबूर करने की कोशिश कर रहे हैं। मैं गलत हो सकता है, लेकिन मैंने ऐसा पहले भी देखा है।

यह प्रोग्रामर (वास्तव में किसी भी प्रकार की रचनात्मक टीम) की एक टीम को प्रबंधित करने का एक भयानक तरीका है और यह किसी की मदद नहीं करता है।


3

मुझे पता है कि आपने एक सादृश्य के लिए कहा था, लेकिन मुझे लगता है कि यह गलत तकनीक है।

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

यह ऐसा है जैसे आपको मेलबोर्न ड्राइव करना है - लेकिन सबसे पहले आपको कार बनानी होगी।
निश्चित रूप से, सिडनी में ड्राइविंग तेज हो सकती है - लेकिन वाहन बनाने में उतना ही समय लगता है।
ठीक है, मैंने आपको एक सादृश्य दिया।


0

शायद एक टेलीफोन? आपका ग्राहक कस्टम-निर्मित फ़ोन चाहता है। यदि वह प्रति दिन 0 कॉल करता है या प्रति दिन 100 कॉल करता है, तो उसे अपना फोन बनाने में उतना ही समय लगेगा।

आपके फ़ोन द्वारा आपके प्रोग्राम द्वारा कॉपी किए गए डेटा के अनुरूप डेटा प्रसारित होता है।

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


0

जैसा कि मैं वर्णन करना चाहता हूं कि डेटा में 2 आयाम हैं लंबाई और चौड़ाई। लंबाई अभिलेखों की संख्या है, चौड़ाई सभी तालिकाओं में स्तंभों की कुल संख्या है

अब जब आप डेटा आयात करना चाहते हैं तो यह एक छेद के माध्यम से ब्लॉक प्राप्त करने जैसा है। आपको सबसे छोटे आयाम के लिए एक बड़ा छेद बनाने की जरूरत है, और फिर ब्लॉक को अंदर ले जाएं

अब 10 मिलियन और 10 हजार के साथ सबसे छोटा आयाम अभी भी चौड़ाई है। तो यह चौड़ाई है जो यह तय करती है कि छेद बनाने में कितना समय लगता है।

रूपक को पूरा करने के लिए, यदि यह छोटा है तो आप डेटा को मैन्युअल रूप से टाइप करेंगे


-1

मैं हर हफ्ते सैकड़ों क्लाइंट फाइलों का आयात करता हूं।

मुझे एक बात पता चली है कि आम तौर पर डेटा आयात को विकसित करने के लिए छोटी फ़ाइलों को अधिक समय लगता है:

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

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


-1

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

कई प्रबंधक एक नए कर्मचारी को प्रशिक्षित करने में शामिल ओवरहेड से परिचित हैं, इसलिए यह उनके लिए समझ में आ सकता है।

(सादृश्य टूट जाता है क्योंकि आपका नया कर्मचारी एक महाशक्तिशाली रोबोट होता है, जो तुच्छ समय में काम कर सकता है, चाहे आप उन पर कितने भी रिकॉर्ड बना लें, लेकिन उम्मीद है कि आपने तब तक अपनी बात बना ली होगी।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.