चंचल परियोजनाओं के साथ दीर्घकालिक प्रबंधन में आवश्यकताएँ कैसे काम करती हैं?


14

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

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

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

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

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

जब आप उपयोगकर्ता कहानियों पर विचार करते हैं, जो सुपरशेड, या यहां तक ​​कि पिछली कहानियों को भी नकार देती है, तो यह समस्या जटिल हो जाती है।

अब, एक परियोजना पर विकास पुनरावृत्तियों (उत्पादन में स्थिर) के बीच 2 साल के अंतर की कल्पना करें। मूल टीम चली गई है और इसलिए उनका सारा ज्ञान है।

यदि मूल टीम को पता था कि यह होने वाला था (जैसे, यह व्यवसाय की प्रकृति है), तो बाद की टीमों की मदद के लिए वे क्या उपाय कर सकते हैं?

ज़रूर, बैकलॉग कुछ जानकारी प्रदान करेगा, लेकिन यह आसानी से आसानी से देखने योग्य रूप में है।

तो, बाद की टीमों को परियोजना की स्थिति को समझने में मदद करने के लिए क्या किया जा सकता है, इसमें क्यों और कैसे मिला?

मेरे अनुभव में, निम्नलिखित चीजें काम नहीं करती हैं:

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

तो, दोहराना:

दीर्घावधि में फुर्तीली परियोजना आवश्यकताएँ कैसे प्रबंधित की जाती हैं?


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

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

1
चंचल परियोजनाओं के बारे में नहीं है , बल्कि विकासशील उत्पादों के बारे में है । इतनी लंबी शर्तें परियोजनाएं वास्तव में एजाइल में मौजूद नहीं हैं। विकास का प्रत्येक टुकड़ा स्वयं निहित होना चाहिए।
डेव हिलियर

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

1
"डेवलपर्स की उतार-चढ़ाव वाली टीम" यह यहां वास्तविक समस्या की तरह लगता है। आपके मामले में यह कितना बुरा है?
व्यंग्यात्मक

जवाबों:


10

यह मुझे फुर्तीली परियोजनाओं के साथ कमरे में अप्रभावित हाथी लगता है: आप उन्हें अराजकता में विकसित होने से कैसे रोकते हैं?

आइए एक पल के लिए एजाइल मेनिफेस्टो को देखें। चंचल इच्छाएँ:

  1. प्रारंभिक और निरंतर वितरण
  2. बदलती आवश्यकताओं को गले लगाना
  3. बार-बार काम करने वाला सॉफ्टवेयर डिलीवर करना
  4. डेवलपर्स और बिजनेस स्टेकहोल्डर रोजाना एक साथ काम करते हैं
  5. प्रेरित व्यक्तियों के आसपास परियोजनाओं का निर्माण, उन्हें पर्यावरण और समर्थन की जरूरत है, और उन्हें काम पाने के लिए उन पर भरोसा
  6. संचार के प्राथमिक मोड के रूप में आमने-सामने की बातचीत
  7. कार्य सॉफ्टवेयर प्रगति के प्राथमिक उपाय के रूप में
  8. सतत विकास
  9. तकनीकी उत्कृष्टता और अच्छे डिजाइन पर निरंतर ध्यान
  10. सादगी - जो काम आपको नहीं करना है उसे अधिकतम करना
  11. नियमित अंतराल पर, टीम इस बात पर विचार करती है कि कैसे अधिक प्रभावी बनना है, फिर उसके अनुसार अपने व्यवहार को ट्यून और समायोजित करता है

मैंने अंतिम चार पर प्रकाश डाला है। क्यों? क्योंकि वे वही हैं जो परियोजना को अपने वजन के तहत ढहने से रोकेंगे।

सतत विकास का मतलब है कि आपके पास (उम्मीद है) कोई है जो समग्र विकास प्रक्रिया की देखरेख करता है, कोई ऐसा व्यक्ति जो एक समय में सॉफ़्टवेयर को थोड़ा सा आगे बढ़ाने से परे जहाज चला सकता है, कोई ऐसा व्यक्ति जिसके पास पूरे प्रोजेक्ट की दृष्टि हो, जो किसी के ज्ञान के साथ हो। सॉफ्टवेयर वास्तुकला, सिस्टम डिजाइन, व्यापार तर्क सिद्धांतों और यूआई एर्गोनॉमिक्स। एक वास्तुकार, दूसरे शब्दों में।

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

और वह वह है जो मास्टर आवश्यकताओं के दस्तावेज़ को बनाए रखता है।

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

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


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

अब तक हमारा सबसे कमजोर क्षेत्र विशिष्ट, परीक्षण योग्य, औसत दर्जे की आवश्यकताओं को इकट्ठा कर रहा है और परियोजना के दायरे के सापेक्ष ग्राहकों की अपेक्षाओं का प्रबंधन कर रहा है। लेकिन हम उस पर काम कर रहे हैं।


1
हाथी स्तनधारी होते हैं? लोल :)
डेव हिलियर

1
बाह। आप केवल मजाक करते हैं अगर आप भी उखाड़ते हैं। :)
रॉबर्ट हार्वे

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

@ जियोर्जियो: यही कारण है कि मैंने कहा कि वे यकीनन चुस्त नहीं हैं। हर नया सॉफ्टवेयर प्रोजेक्ट एजाइल के तहत नहीं बनाया गया है, और हर कोई वैसे भी एजाइल का पालन नहीं कर रहा है।
रॉबर्ट हार्वे

@ रोबर्टहवे: मुद्दा यह है कि क्या आप एक बड़ी परियोजना के साथ चुस्त का उपयोग कर सकते हैं। जैसा कि आपने समझाया था, आपको प्रोजेक्ट की समग्र संरचना की कम से कम कुछ योजना और अवलोकन की आवश्यकता है ताकि आप इसे उपप्रोजेक्ट में विभाजित कर सकें जो एक चुस्त तरीके से किया जा सकता है। मुझे नहीं लगता कि अंतर पुराने और नए के बीच है लेकिन बड़े और छोटे के बीच है।
जियोर्जियो

3

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

मेरे अनुभव में अच्छी तरह से काम करता है दोनों दिशाओं में व्यावसायिक आवश्यकताओं और उपयोगकर्ता की कहानियों को जोड़ रहा है। BR # 1 को कहानियों द्वारा महसूस किया जा सकता है A और B. Story C, BR # 2 और # 3 को कवर कर सकते हैं। इसे अपने प्रोजेक्ट ट्रैकर, स्प्रेडशीट में रखें, जो भी आप उपयोग कर रहे हैं।

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

यह नए प्रोजेक्ट के सदस्यों को गति प्राप्त करने का एक तरीका भी प्रदान करता है क्योंकि उनके पास इतिहास को प्राप्त करने के लिए समीक्षा करने के लिए कुछ है कि सॉफ्टवेयर ऐसा क्यों करता है।


2

मैं वास्तव में एक बड़ी वेब शॉप के कानन मेनटेन प्रोजेक्ट में काम कर रहा हूं, जहां मूल डेवलपर्स उपलब्ध नहीं हैं।

प्रत्येक यूजरस्टोरी / आवश्यकता / बगफिक्स में एक टिकटनुमा होता है और हर सोर्सकोड-परिवर्तन सोर्सकंट्रोल-कमेंट-फील्ड में एक टिकट से जुड़ा होता है।

sourcecontrol-checkin-s (svn) atomatically टिकट को कोरसपिंग टिकट को अपडेट करता है ताकि टिकट में मेरे पास सभी sourceconrtol-changesets का लिंक हो।

यदि कोई मोड्यूल / फ़ंक्शन नया लागू किया गया है तो सोर्सकोड में भी टिकटनुमा हैं।

टिकट-प्रणाली (रेडमाइन) में टिकट एक-दूसरे से जुड़े होते हैं (जैसे डुप्लिकेट है, बग है, शोधन है ...)

इसलिए आप टिकटों का पालन कर सकते हैं और समय के साथ आवश्यकता में परिवर्तन देख सकते हैं।

उदाहरण: मुझे "ऑर्डरकॉन्फ़र्मेशन-वेब-पेज" में कुछ का पीछा करना है। पृष्ठ के सोर्सकोड में मुझे एक टिप्पणी दिखाई देती है: "# 4711" के लिए बनाया गया है, इसलिए मैं अपने नए टिकट को पुराने टिकट "4711" या इसके उत्तराधिकारियों में से एक से जोड़ सकता हूं।


टिकट प्रणाली में रिश्तों को बनाए रखने के प्रभारी कौन होगा?
12

1

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

हालाँकि, यह कोई नई बात नहीं है।

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

  1. पोर्टफोलियो बैकलॉग (महाकाव्य और बजट की रणनीतिक योजना)
  2. कार्यक्रम / रिलीज़ बैकलॉग (सुविधाएँ और महाकाव्य)
  3. परियोजना / टीम बैकलॉग (कहानियां, स्पाइक्स, कीड़े)

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

इसके बजाय, मैं आपको रिलीज़-स्तर के दस्तावेज़ प्रदान करने के लिए आपके रिलीज़ बैकलॉग स्तर पर काम करने की सलाह दूंगा। इन कहानियों को शायद ही कभी एक विशेष रिलीज के लिए सौंपा जाता है, और यह समीक्षा करने के लिए एक स्थिर और त्वरित तरीका हो सकता है कि किसी दिए गए रिलीज़ के भीतर क्या काम किया जा रहा है।

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