जटिल प्रसंस्करण से जुड़े अनुप्रयोगों के लिए चुस्त कैसे लागू किया जा सकता है?


12

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

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

लेकिन एक अन्य प्रकार का अनुप्रयोग है जहां अधिकांश कोड को जटिल प्रसंस्करण से निपटना पड़ता है जो उपयोगकर्ता को सीधे दिखाई नहीं देता है। उदाहरण होंगे:

  • संकलनकर्ता
  • स्व-ड्राइविंग कारों की छवि विश्लेषण प्रणाली
  • द्रव प्रवाह सिमुलेशन प्रणाली

यहां कार्यों और उपयोगकर्ता कहानियों से संबंधित वास्तव में मुश्किल हो सकती है। क्या इस मुद्दे को दूर करने की तकनीकें हैं या यह केवल कुछ है जिसे हमें स्वीकार करना है और इसे सर्वश्रेष्ठ बनाना है?


6
डाउनवॉटर नहीं, लेकिन मैं मान लूंगा क्योंकि यह प्रश्न झूठे आधार पर आधारित है। IMO जटिल प्रणालियां इस तथ्य के आधार पर फुर्तीली शैली के विकास के लिए और भी अधिक उपयुक्त हैं कि वे अधिक जटिल हैं। यह प्रणाली जितनी जटिल है, उतनी ही इसकी उभरती आवश्यकताओं की भी संभावना है। Agile SwDev को उभरती जरूरतों को बेहतर ढंग से संभालने के लिए बनाया गया था।
रबरडक

4
@ रुबरडैक: "मैं मान लूंगा क्योंकि यह प्रश्न एक झूठे आधार पर आधारित है।": IMO, यह एक उत्तर को प्रेरित करेगा, जिसमें झूठे आधार को समझाया गया है, एक अपमान नहीं।
जियोर्जियो

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

2
"फुर्तीले साहित्य का अधिकांश भाग CRUD प्रकार के व्यावसायिक अनुप्रयोगों के लिए पक्षपाती प्रतीत होता है" - और जावा पर अधिकांश साहित्य कंसोल पर "हैलो वर्ल्ड" (या nth फाइबोनैचि संख्या की वैकल्पिक गणना) स्ट्रिंग को मुद्रित करने के पक्षपाती प्रतीत होते हैं। इसका मतलब यह नहीं है कि केवल एक चीज जावा के लिए अच्छा है। इसका कारण दोनों मामलों में समान है: ब्लॉग पोस्ट या ट्यूटोरियल में यथार्थवादी उदाहरणों की व्याख्या करना कठिन है। [ध्यान दें: यह एक अतिशयोक्तिपूर्ण टिप्पणी है जो झूठे आधार के लिए आधार का वर्णन करने की कोशिश कर रही है।]
जॉर्ग डब्ल्यू मित्तग

1
चंचल कार्यों और उपयोगकर्ता कहानियों की आवश्यकता नहीं है। आप अपनी इच्छानुसार किसी भी प्रकार के विनिर्देश का उपयोग कर सकते हैं। पूरा बिंदु लचीलापन है।
फ्रैंक हिलमैन

जवाबों:


9

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

Agile CRUD ऐप्स के लिए विशिष्ट नहीं है

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

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

उपयोगकर्ता कहानियां! = आवश्यकताएँ

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

एक उपयोगकर्ता कहानी एक आवश्यकता के समान नहीं है। यह सच है कि आवश्यकता 'उच्च-स्तर ’के आधार पर कुछ ओवरलैप हो सकती है, लेकिन आमतौर पर यह समान नहीं है। मुझे यह आभास होता है कि आप एक ही नुकसान में चल रहे हैं, मेरे कई पूर्व प्रबंधक गिर गए: उपयोगकर्ता कहानियों के बारे में "आवश्यकताओं" के समानार्थक शब्द के रूप में, जो कि एसवीएन उपयोगकर्ताओं द्वारा गिट पर संक्रमण करने की कोशिश के समान है, लेकिन रखें एसवीएन के संदर्भ में सोच। (वे तब शुरू की खराब धारणाओं के कारण समस्याओं में भाग जाते हैं।)

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

OTOH, उपयोगकर्ता कहानियां सिस्टम घटकों के लिए एक विस्तृत व्यवहार विनिर्देश बनाने की कोशिश किए बिना अंतिम-उपयोगकर्ता के लिए अपेक्षित परिणाम पर ध्यान केंद्रित करती हैं। वे अपेक्षित उपयोगकर्ता अनुभव पर ध्यान केंद्रित करते हैं

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

उदाहरण

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

उपयोगकर्ता की दृश्यता

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

क्या किसी तरह से इसे उपयोगकर्ता को दिखाई देना संभव है?

जीपीएस पर विचार करें। जब आप अपनी बारी याद कर लेते हैं, तो आपको वास्तविक मार्ग पुन: गणना प्रक्रिया दिखाई नहीं देगी, लेकिन उपयोगकर्ता को कुछ उपयोगी प्रतिक्रिया (उदाहरण के लिए "पुनर्गणना ...") प्राप्त होती है।

कंपाइलर चेतावनी या त्रुटियों को प्रदर्शित कर सकते हैं, या उपयोगकर्ताओं के लिए GUI में नई सेटिंग्स / विकल्प शामिल करके देख सकते हैं कि कुछ नया जोड़ा गया है। मुझे लगता है कि संकलक के लिए उपयोगकर्ता प्रोग्रामर होंगे, है ना? क्या उन्हें नए मानक के लिए समर्थन नहीं मिला है?

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

कार में छवि विश्लेषण को इस तरह से चित्रित किया जा सकता है जिससे उपयोगकर्ता को पता चल सके कि कार दुर्घटना में समाप्त होने की संभावना कम हो गई है। उदाहरण के लिए:

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

यह यूएस एक उच्च-स्तर पर कब्जा कर लेता है, ऐसी चीजें जिन्हें आपको सामान्य रूप से कार्यात्मक और गैर-कार्यात्मक आवश्यकताओं के संयोजन का उपयोग करके निर्दिष्ट करना होगा-सुरक्षा, सुरक्षा, आदि।

हालांकि, एक आवश्यकता प्रणाली के बारे में अधिक हो सकती है; उदाहरण के लिए:

abcघटक में फ़ंक्शन के Aपास सहिष्णुता दहलीज का मूल्य छवि तुलना एल्गोरिदम में कम होना चाहिए ताकि धीरे-धीरे चलती वस्तुओं का बेहतर पता लगाया जा सके।

मेरे लिए, यह आसानी से उपर्युक्त उल्लिखित उपयोगकर्ता कहानी के तहत एक कार्य होगा , जिसका शीर्षक कुछ इस तरह है: फ़ंक्शन में सहनशीलता में कमीA.abc और फिर इसमें अन्य प्रासंगिक विवरण शामिल करें।

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

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

कहानियों और कार्यों के बीच संबंध

यहां कार्यों और उपयोगकर्ता कहानियों से संबंधित वास्तव में मुश्किल हो सकती है।

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

डेवलपर उन कार्यों के एक सेट में अमेरिका में वर्णित समस्या को तोड़ देगा, जिन पर वे काम करेंगे।

मैं इसे ऐसे व्यक्ति के रूप में कह रहा हूं, जिसने अधिकांश भाग के लिए, बैक-एंड सर्वर-साइड प्रोग्रामिंग किया, जो संभवतः "अदृश्य" के रूप में है जैसा कि आप अंत-उपयोगकर्ता के लिए प्राप्त कर सकते हैं।

इस पर निर्भर करते हुए कि मुझे क्या करने की आवश्यकता है, मैं कभी-कभी AJAX का उपयोग एक सरल "लोडिंग ..." एनीमेशन / gif दिखाने के लिए करता हूं ताकि उपयोगकर्ता को पता चले कि उन्हें गलत इंप्रेशन प्राप्त किए बिना कुछ और पूरा करने के लिए थोड़ा इंतजार करना होगा। कभी-कभी यह इतना सरल था। इसके लिए एक कार्य उपयुक्त होगा।

विभिन्न प्रतिमान, अभ्यास और अनुभव

क्या इस मुद्दे को दूर करने की तकनीकें हैं या यह केवल कुछ है जिसे हमें स्वीकार करना है और इसे सर्वश्रेष्ठ बनाना है?

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

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

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

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

अपने स्प्रिंट से सीखना - पूर्वव्यापी

जो मैं पर्याप्त तनाव नहीं कर सकता , वह स्प्रिंट मास्टर और डेवलपर्स के बीच प्रत्येक स्प्रिंट के अंत में पूर्वव्यापी है । यही कारण है कि वह जगह है जहां वे चीजें हैं जो "अच्छी तरह से चला गया" या एक ईमानदार / पारदर्शी तरीके से "अच्छी तरह से जाना नहीं था", और क्या चर्चा है साध्य परिवर्तन को संबोधित करने के लिए अगले स्प्रिंट के लिए लागू किया जाएगा "अच्छी तरह से जाना नहीं था" अंक ।

इसने हमें एक-दूसरे के अनुभवों से अनुकूलन करने और यहां तक ​​कि सीखने की अनुमति दी, और इससे पहले कि हम इसे जानते हैं, हमने अपनी टीम के वेग की सामान्य स्थिरता द्वारा मापा के रूप में काफी सुधार किया था।


"उपयोगकर्ता कहानियां! = आवश्यकताएँ": मेरा यह कहने का मतलब यह नहीं था कि दोनों समानार्थी हैं। हर आवश्यकता उपयोगकर्ता की कहानी नहीं है। लेकिन मुझे लगता है कि सभी उपयोगकर्ता कहानियां आवश्यकताएं हैं। मैं आवश्यकताओं को एक पदानुक्रमित संरचना के रूप में देखता हूं जहां उपयोगकर्ता कहानियां एक विशिष्ट स्तर का विवरण है। क्या आप सहमत हैं?
फ्रैंक पफ़र

@FrankPuffer मुझे लगता है कि वे उपयोगकर्ता कहानियों को देख रहे हैं जैसे कि वे आवश्यकताओं के पदानुक्रम में एक अलग स्तर हैं, मूल रूप से विभिन्न अवधारणाओं को मिला रहे हैं। फुर्तीली तरफ, एक पदानुक्रम अधिक दिखता है: थीम्स >> महाकाव्य >> विशेषताएं >> उपयोगकर्ता कहानियां >> कार्य । आवश्यकताएं आमतौर पर अधिक पारंपरिक झरना दृष्टिकोण में कार्यात्मक और गैर-कार्यात्मक आवश्यकताओं में विभाजित होती हैं, लेकिन मैं एक वास्तविक पदानुक्रम में नहीं आया हूं; कि कहा, मैं हैरान नहीं किया जाएगा अगर किसी के लिए गए थे रिकर्सिवली छोटे "उप" -requirements में एक आवश्यकता को तोड़ने। किसी भी मामले में, आप विभिन्न अवधारणाओं को मिला रहे हैं।
code_dredd

आवश्यकता प्रबंधन प्रणाली जैसे PTC वफ़ादारी आवश्यकताओं को पदानुक्रम मानती है। विनिर्देश दस्तावेज़ के लिए आवश्यकताओं की मैपिंग करते समय यह एक लाभ हो सकता है।
फ्रैंक पफ़र

@FrankPuffer हाँ, यही कारण है कि मैंने कहा कि मुझे आश्चर्य नहीं होगा। उसने कहा, मुझे आश्चर्य है कि मेरे उत्तर ने आपके लिए कुछ भी स्पष्ट कर दिया है। क्या SVN बनाम Git सादृश्य सहायक था? (यह माना जाता है कि आप दोनों प्रणालियों से परिचित हैं, जो एक सॉफ्टवेयर विकास के संदर्भ में उचित प्रतीत होता है।)
code_dredd

ठीक है, मैं "नहीं" के रूप में "नहीं" गलत होगा। और हाँ, मुझे आपका उत्तर बहुत मददगार लगता है और शायद इसे स्वीकार करेंगे। मुझे शायद उपयोगकर्ता की कहानियों को आवश्यकताओं के रूप में नहीं मानने के विचार के आदी होने के लिए बस कुछ समय चाहिए।
फ्रैंक पफर

4

चंचल सिद्धांतों को निश्चित रूप से इन मामलों में लागू किया जा सकता है। कैसे?

  • कंपाइलरों में अलग-अलग उपयोगकर्ता कहानियों में बाद में नई भाषा सुविधाएँ जोड़ी जा सकती हैं
  • छवि विश्लेषण प्रणालियों में विभिन्न छवि वर्गीकरण के रूप में नई सुविधाएँ जोड़ी जा सकती हैं
  • द्रव प्रवाह सिमुलेशन सिस्टम अपने सिमुलेशन में विभिन्न मॉडल पहलुओं को ध्यान में रख सकते हैं

आप एक हाथी में पूरे हाथी खाने के लिए नहीं है। Agile बस पूछता है कि आप दिखाते हैं कि आपने हाथी की अगली सेवा से पहले अपनी प्लेट को साफ किया है।


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

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

2
@ लिव: यह अच्छा होगा लेकिन मुझे यकीन नहीं है कि यह काम करेगा। दृष्टांत में, पहले कुछ स्प्रिंट के बाद, सॉफ्टवेयर ग्राहक से संबंधित कुछ भी करने में सक्षम नहीं होगा। आपके पास तकनीकी प्रगति होगी लेकिन यह कठिन होगा, यदि असंभव नहीं है, तो इसे ग्राहक तक पहुंचाएं।
फ्रैंक पफर

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

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

1

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

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

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

tl; डॉ। एक पूर्व छात्र को अपने जीवन को अतिरिक्त कठिन बनाने की अनुमति न दें क्योंकि वे अनुकूलन के लिए बहुत अधिक चौकोर हैं। अनुकूली होना सभी के बाद चुस्त की एक मुख्य अवधारणा है। स्क्रम या एजाइल के सख्त पालन आम तौर पर चेहरे या व्यावहारिकता और व्यावहारिकता (जो वास्तव में सबसे अच्छा काम करता है) में उड़ता है।


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

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

0

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

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

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


1
मैं बहुत अजीब और दुर्लभ मामलों को छोड़कर इससे सहमत नहीं हूं। Scrum में HOW विकास टीम का पैमाना है, उत्पाद स्वामी नहीं। फिर भी उत्पाद स्वामी को PBI के लिए जिम्मेदार होना चाहिए। तो एक PBI जैसे "एक संग्रहीत प्रक्रिया बनाएँ" विकास टीम को HOW चुनने के अधिकार से दूर ले जाता है। PBI, उपयोगकर्ता की कहानी है या नहीं, यह बताना चाहिए कि PBI करने में व्यवसाय का मूल्य क्या है। संग्रहीत कार्यविधि बनाना व्यावसायिक मूल्य के बारे में नहीं है, यह कार्यान्वयन विवरण के बारे में है।
रिबेल्डैडिएडी

ये मुद्दा नहीं है। वह सिर्फ एक उदाहरण था। आप बस "संग्रहीत प्रक्रिया" को कुछ सामान्य जैसे "एक तरीका" में बदल सकते हैं। मुद्दा यह है कि इसके लिए उपयोगकर्ता की कहानी होना जरूरी नहीं है।
क्रिस प्रैट

एक उदाहरण के पूरे बिंदु एक अनुकरणीय होना है। अगर आपका उदाहरण "बिंदु नहीं है" तो उदाहरण की बात क्या है ??
रिबॉल्डएड्डी

-3

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

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

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


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

@FrankPuffer आपके द्वारा सूचीबद्ध किए गए कुछ प्रकार के सिस्टम के लिए, जैसे सेल्फ-ड्राइविंग कार, अगर विशेषज्ञ टीम को छोड़ दें तो आप मुश्किल में पड़ जाते हैं। अवधि। हालांकि यह शायद ऐसा नहीं है कि कोडिंग को केंद्रीकृत किया जाना चाहिए, किसी भी यथोचित कम समय-स्केल में विशेषज्ञ के प्रतिस्थापन की अनुमति देने के लिए पर्याप्त "ज्ञान के प्रसार" को मान लेना भी पूरी तरह अनुचित है। ये ऐसे लोग हैं जिन्होंने एक दशक से अधिक समय तक इस समस्या पर शोध किया है, और संभवतः इस पर अपने क्षेत्र के शीर्ष के पास हैं। आपको विभिन्न कौशल वाले इस तरह के कई लोगों की आवश्यकता होगी। ऐसी परियोजनाएँ स्वाभाविक रूप से जोखिम भरी हैं।
डेरेक एल्किन्स ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.