एक विक्रम प्रक्रिया में बग फिक्सिंग के लिए सबसे अच्छा तरीका है? [बन्द है]


88

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

  1. उत्पाद मालिक सबसे उच्च प्राथमिकता वाले जीरा आइटमों को प्रिंट करता है, उन्हें स्प्रिंट प्लानिंग मीटिंग में लाता है, और उन्हें अन्य कहानियों के साथ दीवार पर रखता है (जिससे अन्य कहानियों की तुलना में इन वस्तुओं की प्राथमिकता को स्पष्ट रूप से निर्दिष्ट किया जाता है)।
  2. उत्पाद के मालिक कहानी बनाते हैं जो जीरा वस्तुओं का उल्लेख करते हैं। उदाहरण के लिए "सबसे महत्वपूर्ण बैक ऑफिस रिपोर्टिंग बग्स को ठीक करें, जीरा -124, जीरा- 126 और जीरा -80"।
  3. बग-फिक्सिंग को स्प्रिंट के बाहर माना जाता है, यानी टीम यह सुनिश्चित करने के लिए कम फ़ोकस फैक्टर (उदाहरण के लिए 50%) रखती है कि उनके पास बग्स को ठीक करने का समय हो। इसके बाद यह माना जाता है कि टीम प्रत्येक स्प्रिंट फिक्सिंग जीरा- रिपोर्टेड बग्स के लिए एक निश्चित समय बिताएगी
  4. उत्पाद बैकलॉग को जीरा (यानी खाई एक्सेल) में रखें। किसी अन्य कहानी की तरह बग का इलाज करें।

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


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

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

मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह pm.stackexchange.com
पिरान

जवाबों:


84

यह एक बहुत अच्छा सवाल है और इस समस्या के विभिन्न तरीकों के बारे में मेरे पास कुछ टिप्पणियां हैं।

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

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

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


मेरी टीम एक समान समाधान का अनुसरण करती है।
मैट बी

YouTrack # 3 को कवर करता है। यह उतना दर्दनाक नहीं है जितना यह लगता है कि जब तक कीड़े ठीक से उचित श्रेणी में नहीं आते हैं, जैसा कि आपने वर्णित किया है।
जॉन

32

वास्तव में मुझे लगता है कि इस सवाल से jpeacock द्वारा सबसे अच्छा जवाब दिया जाता हैक्या आप बग फिक्स पर बिताए गए घंटों की गिनती स्क्रैम की ओर करते हैं?

मुझे इसका हवाला दें:

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

24

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

इन्वेंटरी बेकार है। बग ट्रैकिंग सूची है। बग ट्रैकिंग बेकार है।

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

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


अच्छी परिभाषा के लिए +1। मेरे अनुभव में, लगभग हमेशा "बग" होता है, लेकिन मुझे लगता है कि ज्यादातर समय, नई सुविधाओं को लिखना कुछ ऐसा है जो प्रबंधन तुच्छ बग पर चाहता है। आप प्रबंधन या किसी अन्य देव से निपटने की सिफारिश कैसे करेंगे जो समान नहीं लगता है?
जदाहर्न

6

एक सूची पर दोषों को ट्रैक न करें, उन्हें ढूंढें और उन्हें ठीक करें - मैरी पॉपेन्डिएक

वास्तव में, यदि इन्वेंट्री बेकार है, तो दोषों की सूची के बारे में क्या ...

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

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


+ 1. मैं बग के साथ बयान कहानियों की तरह वैसे भी नहीं किया जाता है। इसलिए जब आपको उत्पादन में एक बग मिलता है जो नया नहीं है (एक वर्ष से अधिक समय के लिए है), तो क्या आप उस बग को एक देवता को सौंपते हैं और इसे सर्वोच्च प्राथमिकता देते हैं?
जदाहर्न

2

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

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

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


1

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


1

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

क्यों?

तो आप चर्चा करते हैं और तर्कसंगत रूप से एक टीम के रूप में सोचते हैं यदि आप चाहते हैं कि दोष यानी बैकलॉग मुद्दा पीबीआई में जाए या इस स्प्रिंट में बने रहें और इसे वितरित करें ...


0

बेहतर सवाल यह है कि मैं विकास के चरण में कीड़े पैदा करना कैसे रोकूं? देखें -> http://bit.ly/UoTa4n

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

यह वास्तव में चुस्त नहीं है?


2
लिंक टूट गया है।
ऐन तोवहरी

0

मैंने हर तीसरे स्प्रिंट में एक छोटा बग फिक्स स्प्रिंट पेश करने के लिए हमारी परियोजना में विचार को शामिल किया है। हमारे वर्तमान स्प्रिंट तीन सप्ताह हैं।

विचार यह है कि यह सभी देवों को बग फिक्सिंग पर एक साथ ध्यान केंद्रित करने की अनुमति देगा, नियमित स्प्रिंट में सिर्फ नई कहानियों पर ध्यान केंद्रित करने की अनुमति देगा और तकनीक ऋण को कम करने पर नियमित ध्यान केंद्रित रखेगा।

बग फिक्स को प्रासंगिक कहानियों में वर्गीकृत किया जाएगा और प्राथमिकता दी जाएगी। दोष के पहले जोर देने पर जोर नहीं है क्योंकि दोष की प्रकृति को समझने के लिए बिना बग फिक्स आकार के संघर्ष के देवता संघर्ष करते हैं।

क्या किसी ने यह कोशिश की है या इस पर कोई प्रतिक्रिया है कि उन्हें कैसे लगता है कि यह काम कर सकता है?

चीयर्स, केविन।

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