उपयोगकर्ता कहानी कैप्चर करती है कि उपयोगकर्ता उच्च स्तर पर सिस्टम के साथ क्या करना चाहता है। मैं समझता हूं कि उपयोगकर्ता कहानी कई निम्न स्तर की आवश्यकताओं को आगे बढ़ाएगी। क्या उपयोगकर्ता कहानी सिस्टम के लिए उच्च स्तर की आवश्यकता के समान है?
उपयोगकर्ता कहानी कैप्चर करती है कि उपयोगकर्ता उच्च स्तर पर सिस्टम के साथ क्या करना चाहता है। मैं समझता हूं कि उपयोगकर्ता कहानी कई निम्न स्तर की आवश्यकताओं को आगे बढ़ाएगी। क्या उपयोगकर्ता कहानी सिस्टम के लिए उच्च स्तर की आवश्यकता के समान है?
जवाबों:
ईमानदार होने के लिए, चुस्त विकास में डूबे दो साल के करीब बिताने के बाद, मुझे अभी भी लगता है कि "उपयोगकर्ता की कहानी" "कार्यात्मक आवश्यकता" के लिए सिर्फ एक फैंसी शब्द है।
यह एक सतही स्तर पर अलग है, उदाहरण के लिए, यह हमेशा एक निश्चित रूप लेता है ( "एक एक्स के रूप में, मुझे वाई चाहिए ताकि जेड ..." ), लेकिन प्रमुख तत्व - हितधारक और औचित्य की पहचान - भी अच्छी तरह से निहित हैं- लिखित कार्यात्मक आवश्यकताएं। एक खराब उपयोगकर्ता कहानी लिखना उतना ही आसान है जितना कि एक बुरी आवश्यकता को लिखना है ( "जैसा कि [हमारी कंपनी का नाम], मैं चाहता हूं] [अस्पष्ट सुविधा] ताकि मैं कुछ ऐसा कर सकूं, जो मेरे काम का आत्मनिर्भर हिस्सा है, जैसे '' ग्राहकों को अधिक बेचें '' )।
मेरे अनुभव में, जो उपयोगकर्ता कहानियां लगभग कभी नहीं पकड़ते हैं, वे प्रदर्शन और सुरक्षा जैसी गैर-कार्यात्मक आवश्यकताएं हैं। इस प्रकार की आवश्यकताओं को ठीक से लिखना बहुत मुश्किल है और उपयोगकर्ता कहानी का प्रारूप बस उन्हें कैप्चर करने के लिए बहुत अच्छा नहीं है, क्योंकि वे सामान्य उत्पाद की गुणवत्ता के बारे में अधिक हैं और एक विशिष्ट उपयोगकर्ता से मिलने के बजाय जोखिम (कम करने, समाप्त करने) नहीं करते हैं जरुरत।
इसलिए, मैं वास्तव में एक विशिष्ट सूत्र के साथ आवश्यकताओं के सबसेट के रूप में उपयोगकर्ता कहानियों के बारे में सोचता हूं , और अभी भी शब्दों का बहुत अधिक उपयोग करता हूं ।
उपयोगकर्ता की प्रमुख आवश्यकताओं में से एक प्रमुख लाभ यह है कि शब्द "आवश्यकता" से पता चलता है कि एक सुविधा की आवश्यकता है जहां यह अक्सर वांछित है । किसी भी रिलीज के लिए उपयोगकर्ता की कहानियों को प्राथमिकता में रखा जा सकता है और स्लैट किया जा सकता है, जबकि आवश्यकताएं हर रिलीज के लिए एक शर्त के रूप में दिखाई देती हैं ।
निश्चित रूप से, इस मामले में उपर्युक्त भेद के लिए, आपके ग्राहकों और / या वरिष्ठ प्रबंधन को इसे गले लगाना चाहिए; यदि आपके पास 30 उपयोगकर्ता कहानियां हैं जो सभी एक "प्रोजेक्ट" में समूहीकृत हैं, तो सभी को एक ही समय में पूरा करना होगा। आप उन्हें उस मामले में "आवश्यकताएं" भी कह सकते हैं क्योंकि वे वास्तव में आवश्यक हैं।
रॉन जेफ्रीस ने बहुत पहले एक उपयोगकर्ता की कहानियों के 3 सी के बारे में लिखा था ( http://xprogramming.com/articles/expcardconversationconfirmation/ ) एक कार्ड पर जोर देने के साथ (संक्षिप्त विवरण), एक ग्राहक की कहानी के बाद ग्राहकों और डिलीवरी टीम के बीच बातचीत कार्रवाई योग्य हो जाता है, और उस बातचीत के बाद एक कहानी की सहमति की पुष्टि होती है।
अनिवार्य रूप से, बातचीत से पहले, उपयोगकर्ता कहानियां सिर्फ योजनाबद्ध गुंजाइश हैं - हम क्या कर सकते हैं इसके बारे में किसी न किसी विचार। बातचीत के बाद, आपके पास यह पुष्टि करने का एक तरीका होना चाहिए कि कहानी पूरी हो गई है। इसलिए जब आप इस समयरेखा में कहानी को देखते हैं, उस समय के आधार पर, एक कहानी गुंजाइश के बारे में एक व्यापक विचार या विस्तृत आवश्यकता हो सकती है।
इन दिनों, "उपयोगकर्ता कहानी" का अर्थ जेफ़रीज़ 3 सीज़ के "कार्ड" भाग तक सीमित हो गया है। उस मामले में, एक उपयोगकर्ता कहानी एक आवश्यकता नहीं है, लेकिन पुनर्खरीद के बारे में बातचीत करने का वादा है।
आप c2 विकि पर उपयोगकर्ता कहानियों के बारे में ज्ञान की एक सोने की डली पा सकते हैं ( http://xp.c2.com/UserStar.html )
उपयोगकर्ता की कहानियां और आवश्यकताएं बहुत अलग जानवर हैं।
आवश्यकताएँ मानती हैं कि एप्लिकेशन का डिज़ाइन पहले से किया गया है, और यह विकास उस डिज़ाइन का कार्यान्वयन है। आवश्यकताएँ इसलिए ध्यान केंद्रित करती हैं कि कैसे कार्यक्षमता को लागू किया जाए।
आवश्यकता का उदाहरण:
उपयोगकर्ता कहानियां इस बात पर ध्यान केंद्रित करती हैं कि क्या हासिल करना है, और जोर देकर कहते हैं कि उत्पाद का डिज़ाइन अंतिम समय पर किया जाता है और यह एक उत्पाद व्यक्ति और एक डेवलपर व्यक्ति के बीच एक सहयोग है। विवरण अवसर के आधार पर कार्यान्वयन के दौरान तय किया जाता है।
एक कहानी का उदाहरण:
जैसा कि आप देख सकते हैं, प्रदान की गई विवरणों की मात्रा में निश्चित रूप से अंतर है, लेकिन बहुत सी जानकारी भी है जो केवल कहानी में उपलब्ध है, अर्थात् उद्देश्य यह है कि हम इस सुविधा के साथ क्या करने की कोशिश कर रहे हैं।
हालांकि यह प्रतीत हो सकता है कि उद्देश्य अपेक्षाकृत महत्वहीन है, यह चुस्त विकास में एक गलत धारणा है। आमतौर पर दो मामले हैं जिनमें उद्देश्य जानना बहुत महत्वपूर्ण है: अवसर की लागत को कम करना और चपलता को सक्षम करना।
यदि आवश्यकता में छिपी हुई धारणाएं हैं, तो इसे प्राप्त करना बहुत कठिन हो सकता है। उदाहरण के लिए: क्या कोई मेल सर्वर उपलब्ध है? यदि नहीं, तो आवश्यकता को विकसित होने में अधिक समय लग सकता है। कुछ अन्य मामलों में डिजाइन के कारण एक ही लक्ष्य प्राप्त करने का एक सरल तरीका याद किया जा सकता है।
इसके विपरीत, उपयोगकर्ता कहानी हमारे समर्थन विभाग से संपर्क करने वाले उपयोगकर्ता के बारे में है। यदि कोई मेल भेजना अक्षम्य या बहुत महंगा है, तो हम मौके पर एक अलग समाधान तैयार कर सकते हैं: डेटाबेस में लिखें, उदाहरण के लिए, या Google डॉक्स के माध्यम से फ़ॉर्म का उपयोग करें, या फ़ॉर्म के बजाय बस एक ईमेल पता डालें। यह आसानी से एक आवश्यकता के साथ नहीं किया जा सकता है, लेकिन यह आसानी से एक कहानी और एक उत्पाद व्यक्ति के साथ किया जाता है।
इस कारण से, आवश्यकताओं के साथ हम आम तौर पर पहले से इन छिपी हुई धारणाओं के बारे में सोचते हैं और सुनिश्चित करते हैं कि कोई रुकावटें नहीं हैं। तो इस मामले में एक अलग आवश्यकता हो सकती है, हाथ से पहले अनुसूचित, जिसने यह सुनिश्चित किया कि एक मेल सर्वर मौजूद था।
यह हमें कहानियों और आवश्यकताओं के बीच एक और विशाल अंतर की ओर ले जाता है जो पदानुक्रम है । जैसा कि मैंने ऊपर उदाहरण दिया है, आवश्यकताओं को अपने स्वभाव से, कुछ प्राकृतिक पदानुक्रम में आदेश दिया जाना चाहिए ताकि निर्भरता पूरी हो। दूसरी ओर, कहानियाँ उद्देश्य पर ध्यान केंद्रित करती हैं और ऐसी कोई अड़चन नहीं होती है।
यह डिजाइन द्वारा है, जैसा कि चुस्त में परियोजना के निष्पादन के दौरान आवश्यकतानुसार कहानियों को जोड़ने, हटाने, पुनर्निर्धारित करने और संशोधित करने का मौलिक महत्व है। आवश्यकताओं को आम तौर पर जोड़ा जा सकता है, कभी-कभी संशोधित या हटा दिया जाता है, लेकिन सभी आश्रितों के कारण उन्हें स्थानांतरित करने के लिए आमतौर पर बहुत दर्दनाक होता है। यह बस बहुत बार नहीं किया जाता है। यदि आप आवश्यकताओं के साथ काम कर रहे हैं, तो आपके चुस्त कार्यान्वयन को नुकसान होगा, या शायद बहुत चुस्त नहीं होगा, जो कि परिवर्तन को गले लगाने में सक्षम है।
मेरे लिए, एक उपयोगकर्ता कहानी का एक महत्वपूर्ण तत्व यह है कि यह क्यों और कैसे उपयोगकर्ता सिस्टम का उपयोग करता है। यह विशेष रूप से उपयोगी है क्योंकि यह इस तरीके में ज्यादा निर्दिष्ट नहीं करता है कि सिस्टम आवश्यक कार्यक्षमता को कैसे वितरित करता है। जब यूआई और प्रयोज्य परीक्षण की आवश्यकता होती है, तो उपयोगकर्ता कहानी सबसे महत्वपूर्ण दस्तावेज हो सकती है।
ज़रूर, आप सेलेनियम सत्यापित कर सकते हैं कि कुछ नोड्स HTML में मौजूद हैं या स्क्रीन शॉट ले रहे हैं, या सत्यापित करें कि कुछ पिक्सेल हैं जहाँ आप आशा करते हैं कि वे हैं। लेकिन अगर भ्रामक पाठ है, या यह स्पष्ट नहीं है कि उपयोगकर्ता को सिस्टम का उपयोग कैसे करना चाहिए या उपयोगकर्ता के लिए यह पता लगाना कठिन है कि अपने लक्ष्य को कैसे प्राप्त किया जाए, तो अचानक आपके पास पूर्ण प्रणाली नहीं है। सिस्टम का उपयोग करने के लिए अब प्रशिक्षण की आवश्यकता है। उपयोगकर्ता परिदृश्यों के खिलाफ पूर्ण प्रणाली की समीक्षा करना मैन्युअल परीक्षण का एक महत्वपूर्ण घटक है।
उपयोगकर्ता कहानियों / परिदृश्यों में कैप्चर किया गया एक माइंड सेट है जो कार्यान्वयन के बारे में कई विस्तृत डिजाइन निर्णयों को प्रभावित करना चाहिए। जब तक डेवलपर्स उपयोगकर्ताओं से सीधे बात नहीं करते हैं या उन्हें सिस्टम का उपयोग करते हुए देखते हैं, तब तक उपयोगकर्ता परिदृश्य केवल एक लिंक हो सकता है जो उन्हें उपयोगकर्ता की जरूरतों को समझने की अनुमति देता है।
अंत में, वे व्यापारिक लोगों को यह निर्दिष्ट करने की अनुमति देते हैं कि उन्हें यह सुझाव दिए बिना कि उन्हें क्या हासिल करना चाहिए। एक समाधान का वर्णन करना बहुत आसान है, आवश्यकता से अधिक, और उपयोगकर्ता परिदृश्य एक विशिष्ट समाधान का प्रस्ताव किए बिना जरूरतों का वर्णन करने के लिए एक रूपरेखा प्रदान करते हैं। सबसे आम व्यावसायिक आवश्यकता जो मैंने सुनी है, "मैं चाहता हूं कि यह केवल एक्सेल की तरह हो, लेकिन वेब पर" जो अभी तक कभी भी ऐसा नहीं हुआ है जिसकी वास्तव में आवश्यकता थी।
इसलिए मैं कहूंगा कि एक अच्छी कहानी में किसी विशिष्ट विवरण को शामिल नहीं किया जाना चाहिए कि सिस्टम को कैसे लागू किया जाना चाहिए। यह कहना चाहिए, "महीने में एक बार, सिस्टम ए को सिस्टम बी के किसी भी नए डेटा के साथ अपडेट किए जाने की आवश्यकता होती है। उस डेटा में सुधार की आवश्यकता हो सकती है। क्लाइंट के पास अमान्य डेटा इनपुट करने और हफ्तों तक समस्या का एहसास न करने का इतिहास है।" यह नहीं कहा जाना चाहिए, "सिस्टम को महीने में कम से कम एक बार एक लैटिन 1 सीएसवी फ़ाइल को स्वीकार करना होगा और नंबर 3 नहीं होने पर नंबरफ़ॉर्मैट अपवाद को फेंकना होगा।" आपको फर्क दिखता हैं? परिदृश्य आवश्यकता का वर्णन करता है, किसी विशिष्ट समाधान का नहीं। फिर परीक्षण में आप यह सुनिश्चित करने के लिए कि समाधान की आवश्यकता के अनुरूप परिदृश्य के लिए वापस सर्कल है। आवश्यकताएं कुछ समाधानों के साथ कुछ आवश्यकताओं को मिला सकती हैं, या यहां तक कि पूरी तरह से समाधानों पर ध्यान केंद्रित कर सकती हैं।
एक Google खोज के दौरान इस पर ठोकर खाई और मुझे लगा कि मैं अपनी राय अंदर फेंक दूंगा।
आवश्यकता और उपयोगकर्ता कहानी के बीच वास्तव में कोई अंतर नहीं है। दोनों उपयोगकर्ता के दृष्टिकोण से वांछित परिणाम या लक्ष्य बता रहे हैं।
एकमात्र अंतर यह है कि यह लक्ष्य या परिणाम एक व्यापार विश्लेषक द्वारा कब्जा कर लिया गया है। इस मामले में यह शब्दांकन में है।
उदाहरण:
एक टीम लीड के रूप में मैं यह देखना चाहता हूं कि मेरी कौन सी टीम बंधक मामलों पर काम कर रही है ताकि मैं उनके प्रदर्शन पर नजर रख सकूं।
समाधान बंधक मामलों पर काम करने वाले टीम के सदस्यों को प्रदर्शित करेगा।
उपरोक्त दोनों को एक ही तरह से व्याख्यायित किया जा सकता है लेकिन दोनों में बहुत अधिक अस्पष्टता है। यहां मुख्य बिंदु शैली में अंतर है। मुझे लगता है कि जिस मुद्दे को हम देखते हैं, वह यह है कि समाधान को परिभाषित करने में हम कितनी दूर जाते हैं, इससे पहले कि हम आवश्यकता की दुनिया से बाहर चले गए और कार्यात्मक डिजाइन की दुनिया में चले गए। क्या यह राज्य के "मुख्य एप्लिकेशन मेनू पर पहले और दूसरे नाम से उपयोगकर्ताओं की सूची में लॉग इन" व्यापार विश्लेषक के लिए नीचे है या बहुत अधिक जानकारी है? जब हम अपने हितधारकों से बात करने बैठते हैं और हम सभी समाधान जानते हैं और यह व्याख्या कर सकते हैं कि यह कैसा दिखेगा, यहां तक कि संभावित कोड भाषा भी इसे बनाया जाएगा और जिस तरह से इसे तैनात किया जाएगा, हमें वास्तव में "शुद्ध खेल" खेलने की आवश्यकता है आइए उद्देश्यों को परिभाषित करें और समाधान नहीं। यह वह जगह है जहां मुझे लगता है कि भ्रम वास्तव में है।
आवश्यकताएं अक्सर यह धारणा बनाती हैं कि हम समाधान के बारे में कुछ भी नहीं जानते हैं बस वांछित परिणाम हैं। हां यह सब कुछ समाधान को अज्ञेय बनाता है लेकिन क्या यह वास्तव में विकास चक्र में हमारी मदद करता है? अगर हम किसी चीज को जल्दी परिभाषित कर सकते हैं तो वह क्यों नहीं?
सभी में हालांकि मैं उपयोगकर्ता कहानियों और आवश्यकताओं के अंतर के बारे में चिंता नहीं करता। अंततः आप समाधान विकसित करने के लिए for.someone के लिए पर्याप्त जानकारी को परिभाषित करना चाहते हैं। एक उपयोगकर्ता कहानी जो बहुत उच्च स्तर की है, उसे बस वापस खटखटाया जाएगा और छोटी उपयोगकर्ता कहानियों में टूट जाने का अनुरोध किया जाएगा। "सिस्टम" की शैली के समान ही होगा। यदि संभवत: इसका पर्याप्त विस्तार न होने पर इसे अस्पष्ट भी माना जाएगा।
अंत में अपने डेवलपर्स और हितधारकों को उस से देखना और काम करना पसंद है।
मुझे लगता है कि क्लासिक पाठ्य पुस्तकों के भीतर भी शब्द की आवश्यकताओं का क्या अर्थ है, इस पर बहुत अधिक असंगतता है। वही असंगति उपयोगकर्ता कहानियों पर लागू होती है। विभिन्न संगठन और पाठ्यपुस्तक इन शर्तों को अलग तरह से मानते हैं। उदाहरण के लिए, कैसे रॉजर प्रेसमैन की क्लासिक सॉफ्टवेयर इंजीनियरिंग पाठ्यपुस्तक आवश्यकताओं के बारे में बात करती है, डीन लेफिंगवेल के एजाइल सॉफ्टवेयर आवश्यकताएँ पुस्तक की तुलना में काफी अलग है। मैं उन दोनों का सम्मान करता हूं और वे दोनों वैध हो सकते हैं।
आवश्यकताएं ऐसी चीजें हो सकती हैं जिनके बारे में हम कल्पना के लिए बहुत कम छोड़ते हैं, उनमें असाधारण विशिष्टता होती है। दूसरी ओर, यह तर्क दिया जा सकता है कि आवश्यकताओं को निर्दिष्ट करना चाहिए कि व्यावसायिक समस्या क्या है और समाधान निर्दिष्ट नहीं है। मुझे लगता है कि यह अधिक बारीक है, और इसका जवाब कहीं न कहीं एक स्पेक्ट्रम पर है जो प्रत्येक कंपनी और उद्योग के लिए अद्वितीय है (आईटी में सभी सॉफ्टवेयर विकास नहीं होते हैं)।
मुझे वह आवश्यकताएं सिखाई गईं निकालना विश्लेषण करने के लिए जाता है, कि सुराग डिजाइन करने के लिए, कि वास्तुकला के लिए होता है कि जरूरतों को पूरा करने की ओर जाता है विस्तार या विनिर्देश, कुछ करने के लिए होता है कोडित जा सकता है कि। मुझे विश्वास नहीं होता कि यह चुस्त है। इन चीजों के होने का समय बदल जाता है और यही सबसे महत्वपूर्ण अंतर है। जलप्रपात के मॉडल में, उत्कीर्णन और विस्तार जल्दी होता है। दुबले और डरावने में, उत्कीर्णन और विस्तार विभिन्न चरणों में होता है और अधिक विस्तार के साथ होता है क्योंकि आप स्प्रिंट में कार्यान्वयन के करीब पहुंचते हैं। जैसा कि उभरता हुआ डिजाइन काम करता है।
हमारे संगठन में, हम महाकाव्य, सुविधाओं और कहानियों के लेफिंगवेल मॉडल की ओर झुक रहे हैं, न कि आवश्यकताओं के रूप में, बल्कि काम के टूटने और प्राथमिकता के रूप में। आवश्यकताएँ अलग चीज हैं। आवश्यकताओं को अलग से प्रबंधित किया जाता है क्योंकि हमें नियामक एजेंसियों के लिए ऐसा करना आवश्यक है। और फिर भी कुछ टीम निश्चित रूप से कार्यक्रम वृद्धि और स्प्रिंट योजना के दौरान उपयोगकर्ता कहानियों के भीतर आवश्यकताओं को विकसित कर रही हैं।
कार्यात्मक आवश्यकताएं आमतौर पर एक औपचारिक विनिर्देश हैं जो आपको यह जानने की अनुमति देते हैं कि आपका सॉफ़्टवेयर काम करता है या नहीं। उपयोगकर्ता कहानी आमतौर पर एक बहुत अधिक अनौपचारिक तरीका है जो आपकी उपयोगकर्ता कहानी की आवश्यकता का वर्णन करता है। यह निर्धारित करने के लिए एक कठोर विनिर्देश निर्दिष्ट नहीं करता है कि क्या सॉफ्टवेयर "वैध" या "अमान्य" है। जब आप इसके कुछ भाग का परीक्षण कर सकते हैं, तो उपयोगकर्ता कहानी का वास्तविक समापन (यदि आप उन्हें सही करते हैं) है, जब आपका उपयोगकर्ता कहता है "हां, जो मेरी समस्या को हल कर देगा!"। चंचल घोषणा पत्र याद रखें:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
अपनी पुस्तक "यूजर स्टोरी एप्लाइड" में, माइक कोहेन विशेष रूप से कहते हैं कि कुछ चीजें उपयोगकर्ता की कहानी के लिए मैप नहीं करती हैं और आपको केवल उपयोग करने की आवश्यकता नहीं है ।
मेरी अपनी टीम में, हम निम्नलिखित का उपयोग करते हैं:
कार्यात्मक आवश्यकताएं हमें यह महसूस करने की अनुमति नहीं देंगी कि हमने जो सुविधा लागू की है वह उपयोगकर्ता की आवश्यकता को हल नहीं करती है, भले ही हमारा ककड़ी परीक्षण पास हो और हमने प्रत्येक लिखित शब्द को लागू किया हो। एक कहानी एक चर्चा है, और यह अनौपचारिक है। कार्यान्वयन लोगों को यह समझने के लिए कि समस्या क्या है। वे एक अनुबंध उपकरण नहीं हैं। यदि आप "घबराहट लेकिन ... " करते हैं और आपकी कहानी सॉफ्टवेयर की आवश्यकताओं को लिखने का एक मज़ेदार तरीका है, तो हाँ, इसमें कोई अंतर नहीं है ।
बिंदु उपयोगकर्ता की कहानी नहीं है, जिस तरह से आप काम करने के लिए संपर्क करते हैं, यह बिंदु प्रतिमान में बहुत बड़ी बदलाव है। आप एक अनुबंध नहीं कर रहे हैं, आप अपने कुछ उपयोगकर्ता को समस्या हल करने में मदद कर रहे हैं। यदि आप अपनी उपयोगकर्ता कहानियों को वास्तविक उपयोगकर्ता के साथ चर्चा उपकरण के रूप में नहीं देखते हैं , तो आप उपयोगकर्ता कहानियों का उपयोग नहीं कर रहे हैं, आप एक फंकी आवश्यकताओं के सिंटैक्स का उपयोग कर रहे हैं ।
यहाँ बाकी मेरी राय है: उपयोगकर्ता कहानी कभी भी एकतरफा तरीके से सफल नहीं हो सकती। इसके साथ काम करने के लिए आपको अपने ग्राहक की आवश्यकता है। वाटर-स्क्रैम-फॉल एक अजीब आवश्यकता-लेकिन-नॉट-रिक्वायरमेंट गड़बड़ है। यदि आपके पास विशिष्ट आवश्यकताओं के साथ एक निश्चित बोली अनुबंध है, तो पुनरावृत्तियों और उपयोगकर्ता कहानी का उपयोग न करें, कोई मतलब नहीं है । फुर्तीली टूलकिट के बाकी हिस्सों का उपयोग करें: स्वचालित इकाई / कार्यात्मक परीक्षण, कोड समीक्षा, निरंतर एकीकरण, रीफैक्टरिंग, आदि सुनिश्चित करें कि आपका सॉफ़्टवेयर लगातार काम कर रहा है और आप इसे एक पल के नोटिस पर शिप कर सकते हैं। इसे ग्राहक को उसके अधूरे रूप में उपलब्ध कराएं ताकि वह अधिक से अधिक प्रतिक्रिया दे सके। यदि आप ऐसा करते हैं कि मेरे मित्र, भले ही आपने "उपयोगकर्ता कहानी" और "स्क्रैम" नहीं किया हो, तो आप बहुत से "फुर्तीली" दुकान से अधिक चुस्त हो जाते।
मेरा मानना है कि हर कोई पिछले अनुभव के आधार पर हर चीज को अलग-अलग तरीके से लागू करेगा और लेबल करेगा और जो भी कंपनी उस काम के लिए काम करेगी, वह बहस करने लायक नहीं है।
हालांकि, IMO, ए यूजर स्टोरी "इमारत में एक ग्राहक या ग्राहक तुरंत उपलब्ध है" के एजाइल के दृष्टिकोण का अनुसरण करता है, जहां प्रलेखन की आवश्यकता नहीं है क्योंकि विवरण ग्राहकों के सिर में हैं और आसानी से उपलब्ध हैं इसलिए औपचारिक एसआरएस हो सकता है। आवश्यकता नहीं है। अब एक "यूजर स्टोरी" का "टास्क" है कि कैसे एक डेवलपर उपयोगकर्ता की कहानियों को पचाने योग्य बनाने जा रहा है।
एक उदाहरण उपयोगकर्ता कहानी हो सकती है:
एक व्यवस्थापक उपयोगकर्ता के रूप में मैं अपने ग्राहकों के डेटा को ग्रिड में सूचीबद्ध देखना चाहता हूं
और एक "कार्य" हो सकता है:
एक ग्रिड बनाएं जो प्रदर्शित किए जाने वाले डेटा को सूचीबद्ध करता है
ग्रिड पर सॉर्टिंग सक्षम करें जो चयनित कॉलम को छांटेगा
अब प्रत्येक कार्य अनुमानित है और उसके संबंधित स्प्रिंट में पूरा किया गया है।
"पारंपरिक" दृष्टिकोण से, जहां "ग्राहक को पकड़ना मुश्किल है, हमें इसे नीचे लिखने की आवश्यकता है ताकि वे पुष्टि कर सकें कि योजना शुरू / कोडिंग" दृष्टिकोण शुरू करने से पहले हमने इसे ठीक कर लिया है, सॉफ़्टवेयर आवश्यकता विशिष्टता है उन विचारों के बारे में जाना जा रहा है जो ग्राहकों के सिर में थे और उन्हें हटा दिया गया और फिर उन्हें औपचारिक रूप से लिखा गया और फिर उन्हें आधारभूत और प्रबंधित किया गया।
इस मामले में, एक "कार्यात्मक आवश्यकता" उस एसआरएस का नट्टी-किरकिरा विवरण है, और बड़े आइडिया का एक हिस्सा है। इसलिए मेरी राय में, एक उपयोगकर्ता कहानी को "औपचारिक" आवश्यकता के भाग के रूप में देखा जा सकता है, और उस उपयोगकर्ता कहानी का कार्य एक (या कई में से एक) कार्यात्मक-आवश्यकता है।
उदाहरण उपयोगकर्ता की कहानी में, औपचारिक "आवश्यकता" प्रवाह चार्ट के साथ एक लंबा दस्तावेज़ होगा और आमतौर पर प्रलेखन-केंद्रित होने जा रहा है, जैसा कि अधिक "फुर्तीली" दृष्टिकोण के विपरीत है जो ग्राहक-केंद्रित है।
यह अंतर, औपचारिक "आवश्यकता" कुछ 10 पेज के दस्तावेज़ की तर्ज पर होने वाला है, जो ऐप के प्रशासन अनुभाग को रेखांकित करता है जो इंगित करता है कि कुछ लिस्टिंग की आवश्यकता होगी, कुछ भूमिका आधारित सुरक्षा, आदि .. और फिर कुछ कार्यात्मक। आवश्यकताएं "लिस्टिंग ग्रिड को छांटने में सक्षम होगी", "उपयोगकर्ता जानकारी को ग्रिड में सूचीबद्ध किया जाएगा", आदि।
और मुझे विश्वास है कि इन दिनों शर्तें सभी मिश्रित और मिलनसार हैं .. जो बिल्कुल भी मायने नहीं रखता है