यदि आप परिदृश्य को विवरण से प्राप्त कर सकते हैं, तो आप कर रहे हैं।
एक एंटी-पैटर्न जो मैं अक्सर बीडीडी में देखता हूं, लोगों को हर परिदृश्य पर विस्तार से बात करने और लिखने की आवश्यकता महसूस होती है ।
कुछ परिदृश्यों को अच्छी तरह से समझा जाता है कि उन्हें एक संक्षिप्त विवरण से प्राप्त करना पर्याप्त है। उदाहरण के लिए, अगर मैं कहता हूं, "मुझे इस सप्ताह लॉगिन सुविधा चाहिए," आप जानते हैं कि ऐसा क्या दिखना चाहिए। आप जानते हैं कि सही पासवर्ड, गलत पासवर्ड, गलत उपयोगकर्ता नाम के लिए परिदृश्य हैं। हमें वास्तव में उन लोगों के माध्यम से बात करने या उन्हें विस्तार से पकड़ने की आवश्यकता नहीं है।
इसी तरह, मैं कह सकता हूं, "यहां उपयोगकर्ता पंजीकरण के लिए फॉर्म है। हमें नए उपयोगकर्ता बनाने में सक्षम होने की जरूरत है, उन्हें अपने विवरण संपादित करने दें, और स्वयं को हटा दें, सिवाय इसके कि हटाए जाने को वास्तव में नष्ट नहीं किया जाना चाहिए, बस उन्हें हटाए गए के रूप में चिह्नित करना चाहिए। इसलिए यदि वे चाहें तो अपने खातों को पुनः प्राप्त कर सकते हैं। "
और आप पूछ सकते हैं, "क्या खाता वसूली इस सुविधा का हिस्सा है?"
"यदि आप चाहें तो वे दो विशेषताएं हो सकती हैं।"
"ठीक है, इसलिए हमारे पास बनाने, पढ़ने, अपडेट करने, हटाने के लिए परिदृश्य हैं; यह काफी आसान होना चाहिए। चलिए खाते के पुनर्प्राप्ति के बारे में बात करते हैं। यह बहुत दिलचस्प लगता है।"
सामान्य तौर पर, अगर देव टीम को परिदृश्यों को प्राप्त करने के लिए व्यवहार का वर्णन पर्याप्त है, तो आपको उनके माध्यम से बात करने की आवश्यकता नहीं है। आप ऐसा कर सकते हैं यदि कोई संदेह है, लेकिन आप बस उन परिदृश्यों पर कब्जा करना चाहते हैं जिन्हें आपको याद रखने की आवश्यकता है, यदि आप किसी भी पर कब्जा करते हैं।
यदि आपने इसे पहले कभी नहीं किया है या आप अनिश्चित हैं, तो परिदृश्यों के माध्यम से बात करें।
उन क्षेत्रों पर ध्यान केंद्रित करें जो असामान्य हैं, खासकर अगर ऐसी विशेषताएँ हैं जो आपने पहले कभी नहीं की हैं। ये वार्तालाप करने के लिए शानदार स्थान हैं और किसी भी आश्चर्यजनक उदाहरण को लिखते हैं जो सामने आते हैं। मैं आमतौर पर दो प्रश्न पूछता हूं, जो बीडीडी टेम्पलेट पर आधारित होते हैं:
एक प्रसंग को देखते हुए
जब कोई घटना होती है
तो एक परिणाम होना चाहिए।
- क्या कोई अन्य संदर्भ है, जो एक ही घटना के लिए, एक अलग परिणाम उत्पन्न करता है?
- क्या कोई और नतीजा है जो महत्वपूर्ण भी है?
यदि मेज पर हर कोई ऊब रहा है, तो जिस सुविधा के माध्यम से आप बात कर रहे हैं वह शायद अच्छी तरह से समझा गया है। यह अक्सर कहने के लिए पर्याप्त है, "इसे एक्स की तरह काम करना चाहिए , लेकिन इसके बजाय वाई के साथ ।" डैन नॉर्थ को जिंजर केक पैटर्न कहते हैं; यह चॉकलेट केक के लिए नुस्खा की तरह है, लेकिन चॉकलेट के बजाय अदरक के साथ।
भले ही व्यवसाय हितधारक परिदृश्यों को स्वयं प्राप्त करने में सक्षम हो, लेकिन देव टीम के लिए उससे बात करने में सक्षम होना, उसे चुनना और उसकी भाषा को आंतरिक बनाना महत्वपूर्ण है। उस भाषा को कोड में ले जाया जाता है, जिससे उन्हें भविष्य में बेहतर वार्तालाप करने में मदद मिलती है, और नए लोगों को इस परियोजना में मदद करने में मदद मिलती है कि क्या हो रहा है। यदि देवों को भाषा बोलने के लिए नहीं मिलती है , तो वे इसका उपयोग नहीं करेंगे ।
यदि व्यवसाय हितधारक या विश्लेषक वास्तव में सत्र में चीजों को कैप्चर करने में समय व्यतीत नहीं करना चाहते हैं, तो मैं चाहता हूं कि डेवलपर्स ने परीक्षकों के साथ मिलकर परिदृश्यों को लिखा, फिर उसे इसकी समीक्षा करने के लिए कहा। यह दूसरे तरीके के दौर की तुलना में गलतफहमियों को उजागर करने की अधिक संभावना है।
कभी-कभी BDD काम नहीं करता है।
एक और संभावना यह है कि आप एक ऐसा परिदृश्य पाते हैं जिसके बारे में व्यवसाय हितधारक अनिश्चित है। "ओह, मैंने ऐसा नहीं सोचा था! मुझे यकीन नहीं है।" व्यापार को कम करने और व्यापार को निश्चितता के साथ दंडित करने की कोशिश करने के बजाय, इस बिंदु पर बीडीडी को त्यागने और कुछ प्रतिक्रिया प्राप्त करने के लिए कुछ सरल करने की कोशिश करना और उस व्यवसाय को कुछ देना होगा, जिस पर वे पुनरावृत्ति कर सकते हैं। इसे बदलने के लिए आसान रखें, और परिदृश्यों को एक बार लिख दें कि क्या चल रहा है की बेहतर समझ है।
बीडीडी अच्छी तरह से किया गया वास्तव में अनिश्चितता के स्थानों को उजागर करने में मदद कर सकता है। चूंकि हर प्रोजेक्ट कर लायक नया है और पहले कभी नहीं किया गया है कि इसके बारे में कुछ पहलू है, वहाँ है वहाँ में, कहीं न कहीं कुछ अनिश्चितता। यदि आप जानबूझकर अज्ञानता को खोजने में मदद करने के लिए परिदृश्यों का उपयोग करने पर ध्यान केंद्रित करते हैं , तो आप तेजी से सीखेंगे, और सीखना आमतौर पर एक परियोजना पर खर्च किए गए समय का एक बड़ा हिस्सा है।
इसके अतिरिक्त मैंने पाया है कि अधिक देव टीमें इस तरह से सहयोग करती हैं, जितना अधिक व्यवसाय अनिश्चितता के साथ उन पर भरोसा करने के लिए तैयार होता है, और उतने ही अधिक नवाचार होने लगते हैं। अभिनव कंपनियां, अपने स्वभाव से, अपनी परियोजनाओं में बहुत अनिश्चितता रखती हैं।
मैंने Cynefin पर कुछ समय पहले एक ब्लॉग पोस्ट लिखी थी , जो मुझे वास्तव में यह समझने में मदद करता है कि वार्तालाप सबसे प्रभावी कहाँ होगा। यदि आप इसे पढ़ते हैं और चार डोमेन को समझते हैं, तो यहां मेरे द्वारा उपयोग किए जाने वाले नियम हैं:
सरल और जटिल सामान (ज्ञात) अक्सर अच्छी तरह से समझा जाता है और आपको परिदृश्यों के बारे में विस्तार से बात करने की आवश्यकता नहीं होती है।
अत्यधिक जटिल सामान (अज्ञात) बिल्कुल भी समझ में नहीं आता है। आप परिदृश्यों के माध्यम से बात करके इसे खोज सकते हैं। निश्चितता की कमी का मतलब है कि बीडीडी यहां काम नहीं करेगा, इसलिए बदले में कुछ आसान करने और तेजी से प्रतिक्रिया प्राप्त करने के लिए आसान है। कोई भी अभ्यास जो आपके विकल्पों को बनाए रखता है, जैसे एबी परीक्षण, इस स्थान में भी महान है।
BDD बीच में (जानने योग्य) ज्ञान के लिए एक तंत्र के रूप में और अन्य दो स्थानों को उजागर करने के लिए अंतरिक्ष में शानदार ढंग से काम करता है। यह एक हथौड़ा नहीं है, और सब कुछ एक कील नहीं है। वास्तव में, यदि आप किसी भी चीज़ पर बातचीत करने में बिताए गए समय पर ध्यान केंद्रित कर सकते हैं, तो यह उन उदाहरणों के बारे में नहीं है जिन्हें आप पा सकते हैं; यह उन उदाहरणों को खोजने के बारे में है जिन्हें आप नहीं कर सकते ।