एक परियोजना पर एक नई टीम के रूप में क्या करना है जिसमें स्थिरता की समस्या है?


19

मुझे सिर्फ एक कोड प्रोजेक्ट का प्रभारी रखा गया है जिसमें स्थिरता की समस्या है। स्थिर पायदान पर परियोजना को प्राप्त करने के लिए मैं क्या चीजें कर सकता हूं?

मैं अपने आप को एक ऐसी जगह पर पाता हूँ जहाँ हम एक बहुत बड़े मल्टी-टीआईआर। नेट सिस्टम के साथ काम कर रहे हैं जो बहुत सारी महत्वपूर्ण चीज़ों को याद कर रहा है जैसे कि यूनिट टेस्ट, आईओसी, एमईएफ, बहुत सारे स्टैटिक क्लास, प्योर डेटासेट आदि। केवल 24 लेकिन मैं लगभग तीन वर्षों से यहां हूं (यह ऐप 5 के लिए विकास में रहा है) और ज्यादातर समय की कमी के कारण हम दूसरे बकवास को फिट करने के लिए अधिक बकवास में जोड़ रहे हैं। अपने खाली समय में कई प्रोजेक्ट करने के बाद मैंने यह समझना शुरू कर दिया है कि वे सभी अवधारणाएँ कितनी महत्वपूर्ण हैं। इसके अलावा कर्मचारी की शिफ्टिंग के कारण मैं खुद को अब इस प्रोजेक्ट पर टीम का नेतृत्व मानता हूं और मैं वास्तव में इस ऐप को बेहतर बनाने के लिए कुछ स्मार्ट तरीकों के साथ आना चाहता हूं। ऐसे तरीके जहां मूल्य को प्रबंधन को समझाया जा सकता है। मुझे लगता है कि मैं क्या करना चाहता हूं, लेकिन वे सभी बहुत अधिक लाभ के बिना बहुत भारी लग रहे हैं। लोगों ने इससे कैसे निपटा है या निपटाया होगा, इसकी कोई भी कहानी बहुत दिलचस्प होगी। धन्यवाद।


मैं सुझाव दूंगा कि कोड कवरेज टूल जैसे कि री # और स्टाइलकॉप (फ्री), आदि में भारी निवेश किया जाए। सोर्स कोड में सॉफ्टवेयर का पता लगाने में कम से कम पहली बार पास होना बहुत सस्ता है।
नौकरी

जवाबों:


14

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

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

प्रबंधन के साथ क्रेडिट कार्ड सादृश्य का उपयोग करें - आप जो कुछ भी करते हैं उस पर "ब्याज का भुगतान" कर रहे हैं क्योंकि यह कुछ भी पूरा करने के लिए बहुत कठिन है। यदि आप अपने तकनीकी ऋण का भुगतान करते हैं, तो आप उन संसाधनों को मुक्त कर देंगे और भविष्य में तेजी से नई कार्यक्षमता विकसित कर पाएंगे। यदि आप नहीं करते हैं, तो आपके "ब्याज भुगतान" (विकास के समय में भुगतान) जमा होता रहेगा और आपकी टीम नई कार्यक्षमता धीमी का उत्पादन करेगी।

हो सकता है कि आप तकनीकी ऋण के खिलाफ संघर्ष कर रहे प्रत्येक चक्र को खर्च करने की मात्रा का अनुमान लगाना शुरू करें ताकि उन्हें यह पता चल सके कि कितना पहले ही जमा हो चुका है। यह बताएं कि एक स्थाई प्रणाली में एक फिक्स या फीचर परिवर्तन कैसा दिखेगा, वास्तविक प्रणाली में यह कैसा दिखता है, और वहां क्या बदलाव किए जाने चाहिए या अच्छे कदम उठाने चाहिए।


1
मैंने WEWLC पढ़ा है, और यह वास्तव में अच्छा है। संभवतः सबसे मूल्यवान चीज जो पुस्तक उपलब्ध कराती है वह है ज्ञान कि विरासत परियोजनाओं में आपके पास आने वाली भद्दी चीजों से निपटने के तरीके हैं और आप सॉफ्टवेयर रोट की प्रक्रिया को उलट सकते हैं।
जेसन स्विट

4

बग फिक्स और अतिरिक्त सुविधा में तकनीकी ऋण को रोल करें।

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

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

यह सब कुछ ठीक नहीं करेगा। कुछ रिफ्लेक्टर या फिक्स होते हैं जिनके लिए समय और संसाधनों का एक बड़ा हिस्सा चाहिए होता है। मैं आम तौर पर उन अन्य बड़े काम के टुकड़ों को बाँधने की कोशिश करता हूँ जिनसे लाभ होगा।


1

मैं सिर्फ स्पष्ट कह सकता हूं, लेकिन हे।

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

यह आपको कोडबेस से थोड़ा अधिक परिचित होने में भी मदद करेगा।

आपके द्वारा कुछ समय के लिए करने के बाद, आप यह समझेंगे कि कुछ और विस्तारित रिफैक्टरिंग करने का समय है। डुप्लिकेट कोड का पता लगाना, DRY सिद्धांत का उल्लंघन ... आप जानते हैं, सामान्य सामान। तब तक आपके पास एक यकीनन सभ्य कोड कवरेज होगा, जो आपको आसपास के तरीकों में फेरबदल करने, इंटरफेस निकालने और उन सभी सुविधाओं की अनुमति देगा।

कोडबेस को हमेशा थोड़ा बेहतर छोड़ें, इससे पहले कि आप उसमें अपना रास्ता हैक करना शुरू कर दें। मुझे पूरा यकीन है कि यह एक छोटा सा निवेश है जो भुगतान करेगा, यहां तक ​​कि लंबे समय तक नहीं।


1

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


1

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

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

सौभाग्य।


1

एक विकल्प यह है कि अपने रिज्यूम को डस्ट करें और जॉब हंटिंग शुरू करें।

अपने आप से पूछने के लिए एक अच्छा सवाल यह है कि क्या यह बुरी तरह से संचालित परियोजना का संकेत है कि पूरी कंपनी कैसे चलती है। यदि उत्तर हाँ है, तो पूछें कि क्या आपको बुरी तरह से चलने वाली कंपनी में रहने के लिए पर्याप्त भुगतान किया जा रहा है।


हां, कुछ प्रश्न पूछने के लिए: क्या प्रबंधन ने आपको एक परित्यक्त जहाज सौंप दिया? उन अन्य लोगों के साथ क्या हुआ जो कोड बेस पर काम करते थे? क्या वे रिंग में तौलिया फेंकने के बाद आगे बढ़े? शायद इस परियोजना को पहले ही चरणबद्ध किया जा सकता है, क्योंकि यह आपको इस तरह से सूचित नहीं करता है? क्या फिर ठीक करना है और वहाँ से उबारना है?
Joppe

0

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


0

मैं वर्तमान में .NET में ब्राउनफील्ड एप्लिकेशन डेवलपमेंट पढ़ रहा हूं , जो मूल रूप से, वर्तमान में आपके पास मौजूद समस्याओं से कैसे निपटना है। अब तक मुझे सबसे ज्यादा पसंद है कि यह क्या कहता है (काफी सब कुछ नहीं है - लेकिन समस्याओं के माध्यम से अपना रास्ता सोचने में आपकी मदद करने के लिए यह एक तरह की पुस्तक है, न कि पूरी तरह से निर्धारित करने का इरादा)। यह कुछ तरीकों से मदद कर सकता है - यह दर्शाता है कि आप अकेले नहीं हैं; यह आशा करता है कि आप संकेत देंगे कि कुछ मुद्दों को कैसे संबोधित किया जाए।

मौलिक रूप से मैं अधिकांश दृष्टिकोणों से सहमत हूं - आप पूरी रात को ठीक नहीं कर सकते, लेकिन आप इसे बहुत छोटे चरणों में बढ़ा सकते हैं। और हाँ - तकनीकी ऋण वह रूपक है जिसका आपको उपयोग करने की आवश्यकता है।


0

यह अंततः इस बात पर निर्भर करता है कि आपके लोग परियोजना पर कितने अच्छे हैं। यदि यह वही चालक दल है जिसने गड़बड़ी पैदा की है, तो आपके पास एक ही समूह के साथ इसे बेहतर बनाने का बहुत कम मौका है। अपने कर्मचारियों का विश्लेषण करें, अपने सबसे कमजोर सदस्यों का पता लगाएं और उन्हें प्रतिस्थापित करें (यदि आपके पास ऐसा करने की क्षमता है)।

"आप एक बोने के कान के बाहर रेशम का पर्स नहीं बना सकते हैं"।

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