मैंने अभी-अभी स्क्रैम के साथ एक नौकरी शुरू की है और कुछ याद आ रहा है। मैं स्क्रैम के लिए नया हूं


23

कोड क्लासिक ASP / ASP.NET के संयोजन का एक पूरा गड़बड़ है। घोटाले में बड़ी गड़बड़ी हो रही है या इसमें कुछ बदलाव किया जा रहा है। हम सब बहुत व्यस्त हैं कि एक फिर से लिखना शुरू करने के लिए तो मैं सोच रहा हूँ ..

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

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

तो इस बड़े पुनर्लेखन परिवर्तन को करने का प्रभारी कौन है? डेवलपर्स? द स्क्रम मास्टर

वर्तमान रणनीति बस समय खोजने के लिए है और इसमें खुद को शामिल किए बिना उच्च-अप के बाद से वे ज्यादातर उस मौजूदा गंदगी के लिए दोषी हैं, जिसमें हम <-गैर-तकनीकी लोगों के बारे में शेख़ी डालते हैं जो तकनीकी लोगों को बता रहे हैं कि यहां क्या करना है ->


20
शाम चुस्त फिर से अपने बदसूरत सिर उठाता है ... कई कंपनियों का कहना है कि वे "फुर्तीले" हैं और "स्क्रैम" का उपयोग करते हैं, जब वास्तव में न तो ऐसा होता है।
ओड

4
आप Scrum नहीं कर रहे हैं

20
इस के एक बड़े पोस्टर को छापने पर विचार करें और इसे दीवार पर दाईं ओर रखें जहां आपके गैर-तकनीकी लोग इसे स्पष्ट रूप से देख सकें: आधा-सशस्त्र चुस्त सॉफ्टवेयर विकास के लिए मैनिफेस्टो ... जबकि बाईं ओर आइटम सिद्धांत में अच्छे हैं, हम कर रहे हैं। एक उद्यम कंपनी, और कोई रास्ता नहीं है कि हम वस्तुओं को दाईं ओर जाने दें
gnat

12
जोएल के ब्लॉग का अनिवार्य लिंक: joelonsoftware.com/articles/fog000000006969.html
बजे marco-fiset

8
"<-इंटरेंट रेंट नॉन-टेक लोगों के बारे में बता रहे हैं कि टेक लोगों को यहां क्या करना है->" , प्रबंधन को 100% प्रतिशत होना चाहिए, जो तकनीकी लोगों को बता रहे हैं कि उन्हें क्या करना है, इसलिए वे प्रबंधन और व्यवसाय के लिए जिम्मेदार हैं , यही वे हैं सर्वश्रेष्ठ करना। क्या वे 100% चाहिए नहीं कर रहा उन्हें कह रहा है कि कैसे यह करने के लिए, तकनीक लोगों पर तय करना चाहिए कि कैसे करने के लिए तकनीकी रूप से प्राप्त करने के लिए क्या वे करने के लिए कहा गया है। और कुछ पूरा हो गया है भोलेपन !

जवाबों:


7

मुझे यकीन नहीं है कि यह लोगों के लिए इतना कठिन क्यों है। उनका व्यावसायिक मामला यहीं है:

We seem in an endless loop of just patching old code with 'Stories'.

डेवलपर का समय पैसा है। बहुत सारा पैसा। मैंने एक कंपनी को छोड़ दिया जिसने एक साल पहले अपने यूआई को फिर से चालू करने की योजना बनाई और उम्मीद की कि स्क्रैम को अपनाने से उन्हें अपने पहियों को स्पिन करने से रोकने में मदद मिलेगी। क्या हुआ? एक ही राजभाषा 'एक ही राजभाषा'। उन्होंने नई सुविधाओं पर बोल्ट लगाना जारी रखा और "तकनीकी ऋण" के पास कोई व्यावसायिक मामला नहीं था, हालांकि हमने जो आधा कोड लिखा था वह अंतर्निहित कोडबेस के पूर्ण पुरानी गड़बड़ी के कारण हर पुनरावृत्ति के साथ व्यर्थ हो गया। मेरे जाने के बाद से उनके सामने के छोर पर एक भी चीज नहीं बदली है, और मुझे इसे पूरी तरह से बदलने के उद्देश्य से लाया गया था। दो महीनों में मैं वहाँ था मैं वास्तव में सीएसएस या जावास्क्रिप्ट की एक चाट को नहीं छूता था। मैं सिर्फ HTML और 1990 के दशक के अंत से कुछ प्राचीन जावा टेम्प्लेटिंग सिस्टम के साथ खिलवाड़ कर रहा था।

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

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

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

स्क्रम एक लाभ-प्रेरित उद्योग भी है और फिर कुछ। स्कैम ट्रेनिंग के लिए कंपनियां बहुत पैसा देती हैं। अपनाने की चाह रखने वाले लोगों को इस बात पर ध्यान देना चाहिए कि किसकी मार्केटिंग की जा रही है और यह वास्तव में उनकी दी हुई संस्कृति में कितना वास्तविक है।

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


जैसा कि रिफैक्टरिंग के संबंध में, मुझे यह अजीब लगता है कि लोग इस बात को 'नजरअंदाज' नहीं कर सकते हैं कि रिफ़ैक्टरिंग सभी विकास का एक निरंतर हिस्सा है, न कि आपके पास ऐसी कोई समस्या है जब समस्या इतनी बुरी है कि आप बहुत कुछ कर सकते हैं।
निकोडेमस

1
या आप इकाई परीक्षण नहीं है। :) यूनिट-परीक्षण का एक मुख्य लाभ यह है कि यह आपको आत्मविश्वास के साथ रिफ्लेक्टर करने की अनुमति देता है। अच्छे अभ्यास के साथ सबसे बड़ी समस्या यह है कि यह सब कुछ समान है- इसमें अनुशासन की आवश्यकता होती है और आमतौर पर लोग आलसी होना पसंद करते हैं।
निकोडेमस

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

1
मैं कहूंगा कि किसी भी चीज के लिए समान है, व्यक्तिगत रूप से मैं इंटरफ़ेस को परिभाषित करने में मदद करने के लिए परीक्षण लिखता हूं।
निकोडेमस

1
फिर सभी कीचड़ के दर्द को वापस लाने के लिए आता है क्योंकि ऐसे कुछ अपवाद हैं जिन्हें प्रारंभिक विश्लेषण द्वारा आसानी से नहीं पकड़ा जा सकता है।
जेबी किंग

33

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

http://blog.objectmentor.com/articles/2009/01/09/the-big-redesign-in-the-sky
http://www.joelonsoftware.com/articles/fog000000006969.html

"फिर से लिखना एक अच्छा विचार नहीं है" पर विस्तार करने के लिए:

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


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

3
कुछ गंदगी को साफ करने की जरूरत है। जोएल के लेखों का हवाला देते हुए और फिर से लिखना कि शायद ही कभी किसी भी आँकड़े के बिना बाहर पैन करें जो वैसे भी संदिग्ध होगा (क्योंकि सफल पुनर्लेखन के बारे में क्या कहता है?) वह नहीं बदलता है।
एरिक रेपेन

3
@ ErikReppen तो जब आपका लिविंग रूम गन्दा होता है तो आप घर को फाड़ देते हैं और एक नया निर्माण करते हैं?
एरिकशोफर

4
यदि आप उनकी टिप्पणियों को पढ़ते हैं तो वह लिविंग रूम के बारे में बात नहीं कर रहे हैं। यह बताना मुश्किल है कि एक कमरा कहां से शुरू होता है और दूसरा कहां खत्म होता है। और पूरे घर में आग लगी हुई है।
एरिक रेपेन

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

18

मैं वास्तव में कुंद होने जा रहा हूँ ...

  • क्या आप इस नौकरी में डेवलपर्स के प्रभारी हैं?
  • क्या आप प्रोजेक्ट लीडर हैं?
  • डेवलपर्स परियोजना में कितनी "हिस्सेदारी" रखते हैं?
  • आपके व्यवसाय को फिर से लिखने का औचित्य क्या है?
  • यह कोड आधार के बारे में क्या है जो इसे पूरी तरह से बेकार और अप्राप्य बनाता है?

आपने कहा है कि आपने अभी-अभी नौकरी शुरू की है, और फिर भी आप पहले से ही वहां के हालात के स्वामी बन गए हैं। शायद मैंने आपके प्रश्न के इरादे को गलत समझा है, लेकिन मुझे यह आभास होता है कि आपने एक नौकरी में प्रवेश किया है, जहाँ आपको कई समस्याएं दिखाई देती हैं, और आप सबसे आसान निष्कर्ष पर पहुंच गए हैं जिसमें कोड टूट गया है और आगे बढ़ने का एकमात्र तरीका है फिर से लिखना, लेकिन क्या आपने वास्तव में ऐसा करने के लिए अपने नियोक्ता को लागत पर विचार किया है?

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

उदाहरण के रूप में विंडो के ऑपरेटिंग सिस्टम को लें। प्रत्येक नए संस्करण के निर्माण के साथ, पिछले संस्करण से कोड का एक बड़ा हिस्सा आगे बढ़ाया गया है। कभी-कभी, ओएस के कई पीढ़ियों में पूरे पुस्तकालयों और एपीआई को आगे खींच लिया जाता है। क्यूं कर? क्योंकि डेवलपर्स को पता है कि इन तत्वों का काम किया गया है, सुरक्षा और स्मृति समस्याओं को रोकने के लिए परीक्षण किया गया है और तय किया गया है, और क्योंकि उन्हें उस राज्य में जाने के लिए बहुत सारा पैसा खर्च करना पड़ता है। कोई भी काम करने वाले कोड को फेंकना नहीं चाहता है जब यह उन्हें पैसा बना रहा है, भले ही रखरखाव की लागत अपेक्षाकृत अधिक हो, खरोंच से शुरू करने की लागत हमेशा अधिक रहेगी, और माइक्रोसॉफ्ट के मामले में, उनके पास बैंक में अरबों हैं जो यदि वे चाहते हैं तो उन्हें शुरुआत से ही अनुमति दें, लेकिन वे डॉन ' t क्योंकि वे अपने निवेश से अपने रिटर्न को अधिकतम करना चाहते हैं। आपका नियोक्ता Microsoft के लिए अलग नहीं है, एक परियोजना में फेंकने के लिए नकदी में अरबों के बारे में बिट को छोड़कर।

इसलिए कोड एक गड़बड़ है, और ऐसा लगता है कि कंपनी के विभिन्न क्षेत्रों के बीच संचार और सीमा मुद्दे हैं। आप या आपके सहकर्मी इस बारे में क्या कर सकते हैं?

एक विकल्प यह है कि टीम को जारी रखा जाए और भविष्य में चमत्कार की आशा की जाए। शायद एक अच्छा विचार नहीं है, और केवल आपकी हताशा और तनाव को बढ़ाने की संभावना है।

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

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

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


नहीं, मैं प्रभारी नहीं हूं। मैं एक देव हूँ जिसने १२ साल पेशेवर और has साल .NET का कोड किया है। मैं कई अनुबंधों के आसपास रहा हूं और थोड़ी देर बाद आप जल्दी से कोड की गुणवत्ता के लिए एक महसूस कर सकते हैं। कितना 'स्टेक'? मुझे यकीन नहीं है कि आप इसका क्या मतलब है। हम पुराने क्लासिक एएसपी को ठीक करने के लिए प्लगिंग को दूर रख सकते हैं जो अब बेहद नाजुक है और 10x से अधिक समय लगता है अगर ये बदलाव एक अच्छे आधुनिक आर्किटेकचर का हिस्सा थे। व्यवसाय औचित्य यह है कि साइट अब एक मॉड्यूल के कारण उत्पादन में दुर्घटनाग्रस्त हो रही है जो उच्च कारोबार के कारण किसी को भी समझ में नहीं आती है
पंकटर

मुझे नहीं लगता कि आप समझते हैं कि यह कोड आधार कितना बुरा है। उस के शीर्ष पर, यह रॉकेट Scienece नहीं है। यह CRUD 101 है। यह एक फॉर्म प्रदर्शित कर रहा है, जिससे उपयोगकर्ता इसे भर सकता है, मान्य कर सकता है और फिर डेटा से कुछ रिपोर्ट और PDF बना सकता है। यह मूल रूप से यह है .. लेकिन 10 वर्षों में यह कोड बहुत सारे मसालों में विखंडित हो गया है। Ive पिछले 12 वर्षों में लगभग 20 परियोजनाओं का हिस्सा रहा है और यह कोड का सबसे खराब संग्रह है जो मैंने देखा है कि वास्तव में उत्पादन में उपयोग किया जाता है ... काश मैं आपको सभी दिखा सकता हूं
punkouter

मैं शुरुआत के लिए जो कर रहा हूं वह उन लोगों को मिल रहा है जो उस टीम में हैं जिन्हें कोडिंग का कुछ शौक है और अंत में यह अधिकार प्राप्त करने में रुचि रखते हैं। उन लोगों को ढूंढना आसान नहीं है, क्योंकि ... brucefwebster.com/2008/04/11/…
punkouter

16
@ पंकटाउटर: मुझे नहीं लगता कि आप यहां बनाए गए बिंदु को समझते हैं; कोडबेस "खराब" होना एक पुनर्लेखन के लिए व्यावसायिक मामला नहीं है। कोडिंग के लिए जुनून होना और चीजों को सही तरीके से प्राप्त करना एक पुनर्लेखन के लिए व्यावसायिक मामला नहीं है। महंगे उत्पादन कीड़े और आउटेज, और तुच्छ लेकिन महत्वपूर्ण नई सुविधाओं को लागू करने के लिए महीनों लग रहे हैं - THOSE एक पुनर्लेखन के लिए एक व्यावसायिक मामला प्रदान करते हैं।
माइकल बोर्गवर्ड्ट

1
@punkouter "डेड सी" घटना के विवरण के लिए आपका लिंक भी विशेष रूप से उपयुक्त है। यह व्यवसाय के लिए कोई महत्व नहीं है कि वह ज्ञान को खो दे, और वह जो कर सकता है उसे पुनः प्राप्त करने के लिए महान मूल्य। संभावित रूप से महंगी और अनावश्यक पुनर्लेखन से बचने के लिए आपके समय के निवेश में ज्ञान और विशेषज्ञता खोने की तुलना में अधिक व्यावसायिक मूल्य है। बेहतर काम पर रखने के तरीकों को प्रोत्साहित करना, और समस्या को दूर करने की चुनौती को बढ़ाना और प्रणाली में सुधार करना आपके लिए एक मौका है कि आप थोड़ा कुदोस कमाएं और अपने नियोक्ता के लिए एक मूल्यवान संपत्ति बनें।
रॉबिन्स

13

यहाँ आधिकारिक विक्रम गाइड से स्क्रेम डेवलपमेंट टीम की आधिकारिक परिभाषा है । मैं उन हिस्सों पर जोर देता हूं जो आपको सीधे चिंतित करते हैं:

विकास दल में ऐसे पेशेवर होते हैं जो प्रत्येक स्प्रिंट के अंत में संभावित रूप से "संपन्न" उत्पाद वितरित करने का कार्य करते हैं। केवल विकास दल के सदस्य ही वृद्धि करते हैं। विकास टीमों को अपने काम को व्यवस्थित करने और प्रबंधित करने के लिए संगठन द्वारा संरचित और सशक्त किया जाता है । परिणामस्वरूप तालमेल विकास टीम की समग्र दक्षता और प्रभावशीलता का अनुकूलन करता है। विकास टीमों में निम्नलिखित विशेषताएं हैं:

  • वे स्वयंभू हैं। कोई भी (स्क्रम मास्टर भी नहीं) विकास टीम को बताता है कि कैसे उत्पाद बैकलॉग को संभावित भरोसेमंद कार्यक्षमता में वृद्धि में बदल दिया जाए;

  • विकास टीम एक उत्पाद वृद्धि बनाने के लिए आवश्यक टीम के रूप में सभी कौशल के साथ क्रॉस-फंक्शनल हैं;

  • स्क्रम डेवलपर के अलावा अन्य विकास टीम के सदस्यों के लिए कोई शीर्षक नहीं पहचानता है, भले ही व्यक्ति द्वारा प्रदर्शन किया जा रहा हो; इस नियम का कोई अपवाद नहीं है;

  • व्यक्तिगत विकास टीम के सदस्यों के पास विशेष कौशल और फोकस के क्षेत्र हो सकते हैं, लेकिन जवाबदेही समग्र रूप से विकास टीम की है; तथा,

  • विकास टीमों में विशेष डोमेन जैसे परीक्षण या व्यावसायिक विश्लेषण के लिए समर्पित उप-टीमें नहीं होती हैं।

विकास दल इसलिए है अपनी स्वयं की गड़बड़ी के लिए ज़िम्मेदार है और टीम के बाहर किसी से भी पूछे बिना उसे स्वयं संबोधित करना चाहिए।

अपने भविष्य के प्रत्येक अनुमान में एक तकनीकी ऋण फिक्सिंग समय शामिल करें, और सुनिश्चित करें कि आपके द्वारा वितरित सॉफ़्टवेयर की गुणवत्ता शीर्ष पायदान पर है।

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


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

6
@BryanOakley: स्क्रैच से पुनर्प्राप्त करना वह नहीं है जो मैं सुझाता हूं। मैं तकनीकी ऋण को उत्तरोत्तर कम करने का सुझाव देता हूं क्योंकि संबंधित क्षेत्रों में विकास टीम काम करती है। और मैं यह भी सुझाव देता हूं कि वे तदनुसार अनुमान लगाते हैं।

1
यह अच्छा है, लेकिन क्या होगा अगर हमें नए सर्वर, नए डेटाबेस, नए सॉफ्टवेयर की आवश्यकता है, ताकि हमारे पास सभी उपकरण हैं जिन्हें हमें फिर से लिखने की आवश्यकता है? AND कैसे फिर से लिखना शुरू करता है जब केवल 'कहानियां' वर्तमान समस्याओं को ठीक करने के बारे में हैं और फिर से लिखने की अनुमति देने की अवधारणा के बारे में कभी नहीं?
पंकटर

1
@ पंकटाउटर: यदि आपको फिर से लिखना है, तो समस्या को स्क्रूटनी पूर्वव्यापी में संबोधित करें। फिर उत्पाद स्वामी वर्तमान परियोजना को रद्द करने और एक नई शुरुआत करने की जिम्मेदारी लेगा।

5
यह मत समझो कि फिर से लिखने का निर्णय केवल 'सही' है क्योंकि यह वह है जो सबसे अधिक देवताओं को अपील करता है। कभी-कभी सुविधाओं को वितरित करने का एक अच्छा व्यावसायिक कारण है, भले ही यह तकनीकी ऋण को बढ़ाने वाला हो।
डीजेकेवर्थ

8

जैसा कि आप इसका वर्णन करते हैं, मेरा कहना है कि मुझे ऐसा कुछ भी नहीं दिख रहा है जिसका SCRUM से कोई लेना-देना है, या आपकी उत्पाद विकास टीम वर्तमान में एक समस्या है

यह सामान्य बात है

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

पूरी तरह से परिपूर्ण ग्रीनफ़ील्ड परिदृश्य में, आप सभी संभवतया पूर्ण एन्ट्रापी से दूर शुरू कर सकते हैं और इसे धीमा कर सकते हैं।

मैं दूसरों से सहमत हूं, कोड आधार गड़बड़ डेवलपर्स के कारण है। मुझे यकीन है कि यह कई वर्षों से SCRUM को अपनाने से पहले है।

यह फिर से लिखने का तकनीकी या डेवलपर निर्णय नहीं है, यह एक व्यावसायिक निर्णय है।

आप इस बात से सहमत नहीं हैं कि उत्पाद के मालिक फिर से लिखना क्यों नहीं चाहते हैं। आप एक डेवलपर के रूप में सोचते हैं कि इसकी आवश्यकता है, लेकिन क्या वास्तव में कोई है व्यावसायिक मामला है है?

यदि कोई सच्चा व्यापार मामला है , न कि केवल हाथ लहराते हुए; "कोड एक विरासत की गड़बड़ी है जिसे मैं ग्रीनफील्ड शुरू करना चाहता हूं क्योंकि मैं यही चाहता हूं" , फिर प्रबंधन उस निवेश पर वापसी के विचार को देखते हुए फिर से लिखने के खर्च का मनोरंजन करेगा।

आप एक ठोस नहीं दिया है व्यापार के मामले में सिर्फ एक एक फिर से लिखने के लिए, शेख़ी अपने बारे में राय कैसे बाकी सब इस गंदगी के कारण होता है पर और आप इसके साथ सौदा नहीं करना चाहता है।

प्रमाण - प्रॉफिट काम के फैसले के लिए सॉफ्टवेयर का काम करता है, स्वच्छ कोड आधार के लिए कुछ ओसीडी की आवश्यकता नहीं है

यदि आप वास्तव में प्रमाण दिखा सकते हैं , न कि केवल सिद्धांत बल्कि कठिन प्रमाण है कि Xग्रीनफील्ड री-राइट पर डॉलर खर्च करना समय सीमा में व्यापार के लिए MAKE X * N डॉलर Y(जहां Nउच्च है और Yकम है) की गारंटी होगी , तो आपको प्रबंधन से कुछ कर्षण मिल सकता है । यह एक अत्यधिक संभावना वाला मामला है जिसे आप प्रस्तुत कर सकते हैं और साबित कर सकते हैं।

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


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

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

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

2
@ एरिक, यह कहते हुए कि प्रबंधकों को एक खराब कोड आधार (या उनके विभाग में किए गए किसी भी अन्य बुरे फैसले) के लिए जिम्मेदारी नहीं लेनी है और यह कि प्रबंधक उस वातावरण को प्रदान करने के लिए सीधे जिम्मेदार होते हैं जिसमें डेवलपर काम करता है, जैसे कि आपके द्वारा वर्णित परिदृश्य। लेकिन केवल वही व्यक्ति जो कोड आधार के लिए सीधे जिम्मेदार हो सकता है, वह व्यक्ति ही कोड लिख रहा है।
पीटर लैंग

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

7

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

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


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

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

मैं सहमत हूँ। लेकिन जैसे Ive ने कहा (और हर किसी को यकीन नहीं होता है)। अब एक्सिस के बारे में 9 अलग वेब अनुप्रयोगों का एक संग्रह है, जिसमें आधा क्लासिक एएसपी और दूसरा आधा एएसपी का भिन्न रूप है। सभी डेटा एक्सेस आदि को संभालने के लिए पूरी तरह से अलग-अलग तरीकों का उपयोग कर रहे हैं। इसलिए नए तरीके की तरह दिखने के लिए यूआई को नकली करने के बारे में बात करने का एकमात्र तरीका पुराने कोड का हिस्सा है .. इसलिए शायद हां .. लेकिन फिर एक और डेटाबेस .. एक तालिका में 400 फ़ील्ड हैं!
पंकटर

मैं उत्सुक हूँ। वह तालिका क्या दर्शाती है? जब से मैंने i ++ देखा है, यह सबसे बुरी बात है; DoSomething (i); एक कोड में एक दर्जन से अधिक बार दोहराया गया कि एक पर्दाफाश JSP टैग से बाहर आया।
एरिक रेपेन

5

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

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

खराब और / या विरासत कोड के साथ प्रयास करने और सौदा करने के लिए हमने जो अन्य चीजें की हैं, वे उपयोगकर्ता की कहानियों को समझने के लिए पुन: कार्य के लिए कार्यों को शामिल करना है।


तो देवता 'कहानियाँ' लिख सकते हैं और उन्हें जमा कर सकते हैं? समस्या फिर से लिखने के कारणों की व्याख्या कर रही है कि उन्हें संभालने के लिए बहुत तकनीकी है ... मैं बस इतना कह सकता हूं .. 'वर्तमान कोड को प्रबंधित करना और
तोड़ना

6
@ पंकटाउटर: यदि फिर से लिखने के लिए कारण विशुद्ध रूप से तकनीकी हैं (यानी व्यवसाय के पैसे की लागत नहीं) तो आप फिर से लिखने के लिए पर्याप्त कारण नहीं हैं।
माइकल बोर्गवर्ड्ट

@MichaelBorgwardt: क्या आप कह रहे हैं कि किसी भी तकनीकी कारणों से किसी चीज को दोबारा लिखने के लिए पर्याप्त नहीं है? अगर मैं आपको सही तरीके से समझूं, तो यह एक मूल रूप से टूटा हुआ दृष्टिकोण है। एक चीज जो लगातार मेरी नसों पर मिलती है, वह सामान्य मास्टर / दास का दृष्टिकोण है जो 'व्यवसाय' वह सब कुछ निर्धारित करता है जो 'आईटी', या कोई विभाग करता है। यह कुछ हद तक ही सही है। आईटी की अपनी आवश्यकताएं होती हैं जो आंतरिक होती हैं और व्यवसाय द्वारा तय नहीं की जाती हैं- यह एक ऐसी चीज है जो आमतौर पर गायब होती है और गैर-इंजीनियर की ओर जाती है, न कि फिट-फॉर-सोफ्टवेयर।
निकोडेमस

1
@ user12355 जैसा कि मैंने देखा है, माइकल्स बिंदु यह है कि यदि यह उन्हें पैसे नहीं खो रहा है, तो यह उन्हें पैसा नहीं देगा, तो कोई मामला नहीं है। यदि वे पैसे नहीं खो रहे हैं, तो एक पुनर्लेखन उन्हें पैसे खर्च करता है। पैसा जो वसूला नहीं जा सकता। एक डेवलपर "यह कोड बेकार है" का मामला बना सकता है, लेकिन जब तक वे अपने नियोक्ता को वित्तीय लाभ नहीं दे सकते हैं, तब तक उन्हें फिर से लिखने के लिए हरी बत्ती नहीं मिलेगी, जब तक कि वे इसे अपने दम पर नहीं करते।
रिग

1
@ user12355: उपयोगकर्ता कहानी के लिए तकनीकी कारण निश्चित रूप से पर्याप्त हैं। वे आवश्यक रूप से उस कहानी को सूची के शीर्ष पर पदोन्नत करने और स्प्रिंट में रखने के लिए पर्याप्त नहीं हैं।
एडम वी।

4

बड़े पुनर्लेखन पर निर्णय लेना एक व्यावसायिक निर्णय है। आप चीजों के व्यावसायिक भाग के लिए जिम्मेदार लोगों को अपने दृष्टिकोण में बेचकर व्यावसायिक निर्णयों को प्रभावित करने का प्रयास कर सकते हैं।

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

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

वैसे, यह सख्ती से एक स्क्रैम मुद्दा नहीं है, और न ही मैं एक समाधान का सुझाव दे रहा हूं जो स्क्रैम के लिए विशिष्ट है। यह डेवलपर्स को कोड का स्वामित्व लेने के बारे में है।


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

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

3

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

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


जैसा कि मैंने उल्लेख किया है .. 6 क्लासिक एएसपी साइटों + 4 .net 1.1 साइटों के संग्रह के साथ आगे बढ़ने का कोई रास्ता नहीं है जो सभी एक साइट में संयुक्त हैं। सभी अलग-अलग लोगों द्वारा अलग-अलग तरीकों से कोडित किए गए।
पंकटर


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

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

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

2

तुम ने पूछा था:

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

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

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


1
अगर मैं यहाँ की पंक्तियों के बीच सही ढंग से पढ़ रहा हूँ, तो ऐसा लगता है कि आप नए-नए काम पर रखने में असमर्थता के बारे में थोड़ा कड़वा हैं। यदि मैं गलत नहीं हूं, तो क्या आपने माना है कि नए-नए हायर जिनके कौशल वास्तव में उनके चलने के लिए पर्याप्त मांग में हैं, जब वे आपकी कंपनी में काम करना पसंद नहीं करते हैं, तो समीकरण में केवल गैर-स्थिरांक हैं?
एरिक रेपेने

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

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

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

1
मैं मानता हूं, तकनीकी ऋण से निपटने के लिए घोटाले बहुत घटिया हैं। लेकिन मैं मूल प्रश्न के आधार पर असहमत हूं। वह वास्तव में एक नियोक्ता / कर्मचारी संबंध प्रश्न पूछ रहा था, लेकिन प्रश्न में सिर्फ उल्लेख किया गया था। इसकी तरह अगर मैंने पूछा, "एक ईसाई के रूप में, एक एंचिलडा बनाने का सबसे अच्छा तरीका क्या है?"। इसका वास्तव में धर्मशास्त्रीय प्रश्न नहीं है; खाना पकाने के बारे में यह एक सवाल है, भले ही मैंने यह सोचने की गलती की हो कि मेरी धार्मिक प्राथमिकताएं प्रासंगिक थीं।
पीटर लैंग

1

मुझे आपका दर्द महसूस हो रहा है, लेकिन मुझे यकीन नहीं है कि इसका स्क्रैम के साथ क्या करना है। कोड को फिर से लिखने का निर्णय विकास प्रक्रिया पर निर्भर नहीं करता है।


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

1

रुको क्या?

आप पैचिंग कर रहे हैं ? आपको रिफैक्टिंग होना चाहिए । चुस्त मूल्यों के लिए छड़ी। टीडीडी और उपयुक्त प्रथाओं का उपयोग करें और स्थिति अंततः बेहतर हो जाएगी।

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