मुझे किसी और के कोड को सीखने की प्रक्रिया का वर्णन कैसे करना चाहिए? (एक चालान की स्थिति में।) [बंद]


16

संपादित करें: जस्टिन केव ने एक अच्छी बात कही कि इस तरह का संचार मेरे उद्धरण / अनुमानों में सामने होना चाहिए। क्या यह मामला है, मुझे अभी भी यह जानने में दिलचस्पी है कि 'मौजूदा कोड सीखने' गतिविधियों का वर्णन करने के लिए लोग किस तरह की भाषा का उपयोग करते हैं। विशेष रूप से एक कंपनी के लिए जो सॉफ्टवेयर ठेकेदारों से पहले नहीं निपटा है। अंत संपादित करें

मेरे पास एक बड़ी कंपनी के लिए कुछ इन-हाउस सॉफ़्टवेयर अपग्रेड करने का अनुबंध है। कंपनी ने कई फीचर अतिरिक्त और कुछ बग फिक्स का अनुरोध किया है। यह मेरी पहली फ्रीलांस शैली का काम है।

सबसे पहले, मुझे इस बात से परिचित होना चाहिए कि आवेदन कैसे काम करता है - मैंने इसे सीखा जैसे कि मैं एक उपयोगकर्ता था।

इसके बाद, मुझे यह सीखना था कि सॉफ्टवेयर कैसे काम करता है। मैंने व्यापक अवधारणाओं के साथ शुरुआत की, और फिर प्रत्येक बग फिक्स और फीचर पर काम करने से पहले आवश्यक विवरण में संकुचित हो गया।

कम से कम परियोजना की शुरुआत में, मुझे अतिरिक्त कोड लिखने की तुलना में मौजूदा कोड सीखने में बहुत अधिक समय लगा।

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

क्या नौकरी के लिए बिलिंग करते समय इस तरह की गतिविधि का वर्णन करने का एक मानक तरीका है?


अच्छा प्रश्न! यह लगभग रिफैक्टिंग की तरह है, लेकिन ऐसा नहीं है, क्योंकि इसमें कोई एडिटिंग निहित नहीं है।
ZJR

2
यदि आपको एक विस्तृत ब्रेकडाउन प्रदान करने की उम्मीद / आवश्यकता है, तो यह देखते हुए कि आपके पास कई सुविधाएँ और सुधार हैं और सभी को आगे बढ़ने के लिए एक अलग डिग्री के लिए कोडबेस की समझ की आवश्यकता है, मैं उनमें से प्रत्येक पर कोडबेस को समझने की लागत को कम कर दूंगा उस कार्य के लिए लिए गए समय के अनुपात में कार्य।
मार्क बूथ

जवाबों:


4

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

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


मैंने बिना किसी मुद्दे के चालान पर "मौजूदा कोड जानें" जैसे कार्य शामिल किए हैं।
tcrosley

13

समस्या का निदान।

यह एक परिचित शब्द है, यदि आप कभी भी अपने ऑटो को ठीक करवाते हैं या डॉक्टर के पास जाते हैं, तो यह पता लगाना कि गलत क्या है, के लिए निदान एक सामान्य शब्द है। यह भी सटीक है, आपको हुड के नीचे जाना होगा और देखना होगा कि सब कुछ यह पता लगाने के लिए जुड़ा हुआ है कि क्या काम नहीं कर रहा है। यह वास्तव में मैनुअल के बिना एक इंजन पर काम करने के लिए समान है, और कंपनी चली गई और पहले एक और इंजन को देखे बिना इंजन बनाया (इसलिए यह संभवतः अद्वितीय है)।

एक लंबी-घुमावदार या अजीब-सी शब्द पंक्ति वस्तु को अधिक प्रश्न मिलेंगे जो आप वास्तव में नहीं चाहते हैं। "समस्या निदान" कमोबेश सार्वभौमिक रूप से समझी जाने वाली अवधारणा है।


धन्यवाद anon हां, मुझे लगता है कि लंबे घुमावदार तार के आधे छिपे होने के बजाय यह स्पष्ट और सामने होना चाहिए।
मैटिग

6

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

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


धन्यवाद जस्टिन, वहाँ अच्छे अंक। नौकरी के चरण के दौरान आप किस तरह की भाषा का उपयोग करेंगे?
MattyG

3

एक फ्रीलांसर के रूप में मेरी क्षमता में, मैं इसे सामान्य ज्ञान में "नॉलेज असिमिलेशन" जैसा कुछ कहूंगा। और, यह ग्राहक को शुरू में प्रदान किए गए किसी भी अनुमान में शामिल किया गया होगा।

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

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

यदि आप ऐसा करते हैं, तो आपके पास एक इनवॉइस लाइन-आइटम हो सकता है जो "नॉलेज असिमिलेशन एंड लिगेसी कोड टेस्टिंग / डॉक्यूमेंटेशन" जैसा कुछ कहता है।

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


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

2

बग को ठीक करना: मूल कारण विश्लेषण।

नई सुविधा: विश्लेषण, डिजाइन, एकीकरण, और परीक्षण।

नए बग का परिचय: नौकरी की सुरक्षा। :)


मूल कारण विश्लेषण के लिए +1 लेकिन शेष उत्तर के लिए -1 विस्तार से थोड़ा हल्का है।
मार्क बूथ

1

एक ग्राहक के साथ, जो यह समझना पसंद करता है कि चीजें कैसे काम करती हैं और मुझे स्वप्निल आँखों से सुनती हैं, मैं सीधे साथ जाता हूं Codebase Familiarization । मैंने पहले ही उसे समझाया था कि वह मुझे किस दर्द की धारा में डाल रहा है, और आगे के उन्नयन के लिए मेरे पास आने का फायदा।

ग्राहक के अन्य प्रकार के साथ ... (एक ही उपचार, लेकिन वह स्पष्ट रूप से एक भी शब्द नहीं सुन रहा है जो मैं कह रहा हूं ) मैं इसकी तर्ज पर कुछ करूंगा:

  • Planning Phase
  • Intervention Planning

    (मैं इसे वास्तव में उपयोग करूँगा, लेकिन मैं इसे इतालवी में लिखूंगा, जिसमें यह बेहतर लगता है)

  • फिर, शायद... Solution Planning

मुझे सुझाव का Diagnosisहिस्सा पसंद Problem Diagnosisहै anon, लेकिनProblem मेरे लिए सही नहीं है। यह हल्के, पक्षपाती, अज्ञानी और सतही आलोचना के लिए खुला हो सकता है ... जो खराब स्वाद को पीछे छोड़ सकता है।

तुम्हें पता है, हर कोई बाहरी सलाहकार पर एक डार्ट फेंकना चाहता है, और वे करते हैं। (... जैसे कि वह उनसे बात करते समय समस्या की जड़ को समझने के लिए पर्याप्त नहीं था, और उसे अपनी स्पष्टता का चालान करना पड़ा, या भगवान को पता है कि क्या है)


1

मेरा मैकेनिक मुझे एक बिल भेजता है "तेल बदलें, स्पार्क प्लस, चेक फिल्टर, टायर रोटेशन। फिक्स इंजन खड़खड़, सड़क परीक्षण .....

भागों (आइटम),

लेबर x @ $ y / घंटा = z)

वह न तो श्रम को तोड़ता है, न आपको। कुल घंटों के लिए बिल, और आपने जो किया उसका वर्णन करें।

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