शून्य-बग / दोष नीति के साथ चुस्त रखना


18

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

कारण मैं कह रहा हूं कि हम हमेशा बग को ठीक नहीं करते हैं। शायद ही कभी हम इसे "ठीक नहीं करेंगे" घोषित करते हैं क्योंकि यह इतना महत्वपूर्ण नहीं है। सभी-सभी में यह बहुत अच्छा लगता है। हम उच्च-गुणवत्ता वाले उत्पादों की शिपिंग कर रहे हैं और विशाल बग बैकलॉग के रूप में "कूबड़" नहीं ले जा रहे हैं।

लेकिन मुझे यकीन नहीं है कि यह दृष्टिकोण सही है। मैं इस बात से सहमत हूं कि हमें ASAP को हमेशा गंभीर कीड़े ठीक करने की जरूरत है और हमें गैर-दिलचस्प कीड़े फेंकने की जरूरत है। लेकिन उन बगों के बारे में जो महत्वपूर्ण हैं लेकिन नई सुविधाओं के रूप में महत्वपूर्ण नहीं हैं? मुझे लगता है कि उन्हें उपयुक्त प्राथमिकता के साथ बैकलॉग में दायर किया जाना चाहिए।

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

मुझे इस बारे में राय सुनना अच्छा लगेगा कि कैसे बग के साथ प्रबंधन करना है जिसे मैं "ठीक नहीं करूंगा" के रूप में चिह्नित करना चाहता हूं, लेकिन यह भी महत्वपूर्ण नहीं है।


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

आपको इस विचार का मनोरंजन करने के लिए तैयार रहना चाहिए कि आपके कीड़े-मकोड़े हमेशा-सबसे-प्राथमिकता वाले काम करने के तरीके आपकी आवश्यकताओं के लिए सही चीज नहीं हो सकते हैं।
ब्लर

@ जेफ़ो - मुझे लगता है कि आप एक तरह से मुझसे सहमत हैं। आप इसे बग कहने के बजाय सिर्फ कहानी कहते हैं। जो इस मामले के लिए मेरे द्वारा वास्तव में ठीक है।
एवीआई

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

1
@Avi - एक फीचर की तरह लगता है जिसे पूरा किया जाना चाहिए ताकि आपका वर्तमान चुस्त दृष्टिकोण भविष्य में नए संस्करणों में देरी न करे।
रामहुंड

जवाबों:


28

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

सामान्य तौर पर, बग को ठीक करने से पहले जितना लंबा इंतजार करना पड़ता है, उतना ही महंगा (समय और धन) इसे ठीक करना होता है।

आपके पास विकल्प है:

  • या तो आप एक अत्यधिक अनुरोधित सुविधा को लागू करते हैं और बग को ठीक करने में देरी करते हैं, जो निश्चित रूप से इसे ठीक करने की लागत में वृद्धि करेगा,

  • या आप बग को अभी ठीक कर देते हैं, यह देखते हुए कि ग्राहक निराश होंगे कि आप जिस सुविधा की उन्हें बहुत आवश्यकता है, उसे वितरित करने में बहुत धीमे हैं।

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

"जब तक सभी कीड़े ठीक नहीं हो जाते हैं, तब तक कोई नई सुविधा नहीं है" चिपके रहना सबसे अच्छा व्यवसाय विकल्प नहीं हो सकता है। आपने पहले ही इसकी सीमाओं का उल्लेख किया है, इसलिए इसे समझाने की आवश्यकता नहीं है।

यह कहा जा रहा है, मामूली कीड़े को ठीक करने से पहले बहुत महत्वपूर्ण विशेषताओं को लागू करने का जोखिम एक जोखिम है: सीमाएं कहां रखी जाएं? क्या 1 000 ग्राहकों द्वारा अनुरोधित एक सुविधा 100 ग्राहकों द्वारा सामना किए गए बग से अधिक महत्वपूर्ण है? किसी दिए गए बग को ठीक करने से पहले यह मूल्यांकन कैसे किया जाना चाहिए कि किसी दी गई सुविधा को किया जाना चाहिए?

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


+1 शीर्षक पढ़ते ही जोएल के दिमाग में आया!
जोकरस्का

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

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

13

अपनी स्थिति के विशेष रूप से निम्न स्तर के विवरण में गोता लगाने के अलावा, आप बेहतर यह सुनिश्चित करते हैं कि आपको मूल, मौलिक सामान सही मिले।

इस संबंध में मेरा मानना है कि यह कहना है कि नीति आप का उल्लेख बहुत महत्वपूर्ण है, "बग सुविधाओं की तुलना में प्राथमिकता में हमेशा से अधिक है", विशेष रूप से शब्द हमेशा से में कहा गया है चार सिद्धांतों के कम से कम दो भटक चंचल घोषणा पत्र :

व्यक्तियों और प्रक्रियाओं और उपकरणों पर बातचीत

एक योजना के बाद बदलने का जवाब


मैं इस बात पर जोर नहीं देता कि आपको नीति में बदलाव करना चाहिए, क्योंकि मेरा दृढ़ विश्वास है कि व्यक्ति को चुस्त सिद्धांतों के बारे में बहुत चुस्त होना चाहिए ।

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

प्रक्रियाओं और उपकरणों पर व्यक्तियों और बातचीत
और हमारे पास उन लोगों को नियंत्रित करने के लिए अनिवार्य प्रक्रियाएं और उपकरण हैं (हम 'संसाधनों' शब्द को पसंद करते हैं)

जब तक उस सॉफ़्टवेयर को व्यापक रूप से प्रलेखित किया जाता है, तब तक व्यापक प्रलेखन पर सॉफ्टवेयर का काम करना

निश्चित रूप से सख्त अनुबंधों की सीमाओं के भीतर अनुबंध वार्ता पर ग्राहक सहयोग
, और कठोर परिवर्तन नियंत्रण के अधीन

एक योजना का पालन करने पर परिवर्तन करने के लिए प्रतिक्रिया दी
गई है बशर्ते एक विस्तृत योजना परिवर्तन का जवाब देने के लिए है, और इसे ठीक से पालन किया जाता है


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

गैर-चुस्त परियोजनाओं में मैंने भाग लिया था, इसे आम तौर पर एर माना जाता था ... बग को ठीक करने के लिए प्रोग्रामर समय बिताने के लिए नासमझ हैं जो उच्च प्राथमिकता वाले सुविधाओं की देरी को सही ठहराने के लिए महत्वपूर्ण नहीं हैं।

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

  • क्या आप मिशन महत्वपूर्ण सॉफ़्टवेयर पर संयोग से काम करते हैं? मैं पूछता हूं क्योंकि इस मामले में, शून्य बग नीति बहुत अच्छा समझती है और यह चुस्त / गैर-चुस्त / जो भी सिद्धांतों से समझौता करने लायक है। हालांकि मेरे पास इस मामले में चुस्त प्रक्रिया की कल्पना करने का कठिन समय है।

आप जानते हैं, जब तक आप मिशन महत्वपूर्ण सॉफ़्टवेयर पर काम नहीं करते, मैं आपके प्रबंधन के कौशल और सोच क्षमताओं का अधिक बारीकी से आकलन करने की सलाह दूंगा।

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


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

12

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

आप क्या कर सकते हैं, जब कोई नया मुद्दा रिपोर्ट किया जाता है, तो तीन-तरफा निर्णय लें:

  1. यह एक वास्तविक बग है और इसे asap तय किया जाना चाहिए: बैकलॉग के ऊपर रखा गया
  2. यह एक वास्तविक बग है, लेकिन एप्लिकेशन के कामकाज के लिए महत्वपूर्ण नहीं है: इसे एक नियमित कहानी में बदल दें और उत्पाद के मालिक को इसे प्राथमिकता दें।
  3. यह बग नहीं है, या यह डुप्लिकेट है या इसे हल करने के प्रयास के लायक नहीं है: उचित कारण के साथ अस्वीकार करें।

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

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


2
हां, हालांकि आपको यह सुनिश्चित करना होगा कि प्राथमिकता को उचित आधार (व्यावसायिक मूल्य) पर किया जाता है और "सॉर्ट" (फ़ीचर अनुरोध बनाम टेस्ट रिपोर्ट बनाम फ़ील्ड से रिपोर्ट किए गए) का उपयोग "सॉर्टिंग" मानदंड के रूप में नहीं किया जाता है जहां सुविधा अनुरोध हमेशा होते हैं पहले आओ ...
मार्जन वेनमा

2

मैं आपको पसंद करता हूं, हालांकि, जैसा कि आपने पहचान लिया है, इसे काम करने के लिए बस एक मामूली मोड़ की आवश्यकता है - जैसा कि आपने देखा है, वास्तविकता अक्सर एक नई सुविधा होती है जो बग को ठीक करती है ...

मेरा सुझाव है कि बग को प्राथमिकता दें ताकि प्रत्येक स्प्रिंट को बढ़ाया जा सके। कहते हैं कि आपके पास 5 (स्तर 1-उच्च, 5 = निम्न) स्तर पर एक बग है। यह 5, 4 स्प्रिंट के रूप में बाद में शुरू होता है, इसका स्तर 1 बग है। हालांकि, प्राथमिकता गणना के लिए आवश्यक माइंड "वर्तमान प्राथमिकता - स्प्रिंट की संख्या" है, बजाय "प्रत्येक स्प्रिंट के अंत में बकाया बगों की प्राथमिकता बढ़ाएं" - यह प्राथमिकता को "रीसेट" करने के लिए इसे कम करने के लिए आगे रोकता है।

स्तर 1 कीड़े अगले स्प्रिंट में संबोधित किया जाना चाहिए ......

समझाने के लिए सरल है, लागू करने में आसान है ...।

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


बढ़िया विचार है! मैं इसे चर्चा के लिए अपनी टीम में लाऊंगा! मुझे लगता है कि अभी भी कुछ और वृद्धि की आवश्यकता है, जिसके बारे में मैं सोचने की कोशिश करूंगा। लेकिन मुझे मूल विचार पसंद है।
एवीआई

/: ठीक है, तो उसके बाद हम यह चर्चा की कि हम इसे ठीक उसी जगह है, जिसमें कीड़े का एक बहुत स्तर 1 करने के लिए बारी करने के लिए हमें ला सकते हैं एहसास हुआ
एवी

यही वह बिंदु है - यदि आप लंबे समय तक अनफिक्स किए गए बगों को रख रहे हैं, तो वे कार्यभार के शीर्ष पर ढेर हैं, आप अपने नियमों का पालन नहीं कर रहे हैं। आप सिर्फ तकनीकी ऋण जमा कर रहे हैं।
रॉस पैटरसन

0

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

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

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


-1

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

उम्मीद है की यह मदद करेगा :)


डाउन-वोटर: क्या मुझे कुछ याद आया? या यह सवाल पूछे जाने के लिए पूरी तरह से अजीब है? कृपया बिना किसी कारण के वोट न डालें। यदि एक है, तो कृपया प्रदान करें।
अरुण
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.