उन मुद्दों के लिए कहानी की तैयारी कैसे करें जो कई परियोजनाओं से जुड़े हैं


9

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

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

इसलिए वे एक मुख्य पुस्तकालय मुद्दा बनाते हैं जो कोर प्रोजेक्ट के बैकलॉग में जाता है। इन सभी मुद्दों की समीक्षा, प्राथमिकता और एक मुख्य पुस्तकालय बैठक (सप्ताह में एक बार) में अनुमानित की जाती है, और कुछ भविष्य के क्षेत्रों में उनकी प्राथमिकता (परियोजना-विशिष्ट मुद्दों के साथ) के अनुसार निपटा जाएगा।

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

यह काफी त्रुटिपूर्ण है। असल में, हमारे पास जो अतिरिक्त मुद्दा है वह "खुला" और "प्रगति में" के बीच "छंटनी" और "अनुमानित" स्थिति है। sortedलेबल के माध्यम से इसे प्रतिबिंबित करना और बोर्ड में उनकी स्थिति बल्कि बोझिल और त्रुटि-प्रवण है। (उदाहरण के लिए, यदि कोई किसी मुद्दे को ऊपर-नीचे कुछ स्प्रिंट में ले जाता है, तो यह कोर बोर्ड में परिलक्षित होगा, चुपचाप उन मुद्दों के क्रम को चीरते हुए, जिन्हें टीम ने एक व्यापक चर्चा सप्ताह में पहले ही तय कर लिया होगा।)

तो इसे लागू करने का एक बेहतर तरीका क्या होगा?


2
लगता है कि बहुत ज्यादा डिप्लोमैटिक ओवरहेड सिर्फ एक फंक्शन को जोड़ने के लिए। 50 देवों (चिकित्सा सॉफ्टवेयर) की हमारी कंपनी में, हम अभी भी देवों को हमारे प्रत्येक घर के पुस्तकालयों में कोड को धक्का देने की अनुमति देते हैं अगर वे इसके उपयुक्त समझते हैं। पाठ्यक्रम के बाद इसकी समीक्षा की गई। आप शायद एक पुलक्रेस्ट प्रवाह के साथ काम करने पर विचार कर सकते हैं लेकिन एक बैठक? नहीं, यह काम करने वाला नहीं है।
टिम्पीज

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

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

जवाबों:


2

यदि आप इसे JIRA में ट्रैक करना चाहते हैं तो मैं इसका अनुसरण करूंगा जैसे कि यह एक नया कार्य था।

उदाहरण के लिए:

मान लीजिए कि आपके पास कहानी कोर -75: फू द बार है

एक बार जब यह तय हो जाता है कि कौन सी टीम कार्य लेगी, तो वे एक नया कार्य बना सकते हैं: SUPPORT-123: फू द बार इन कोर

इसके बाद आप CORE-75 को SUPPORT-123 के साथ ब्लॉक कर सकते हैं । एक बार जब SUPPORT-123 समाप्त हो जाता है, तो आप CORE-75 पर वापस जा सकते हैं । या तो आपके पास समीक्षाओं का विलय हो सकता है, या दो बार कोड की समीक्षा कर सकते हैं (नामित टीम द्वारा, एक बार और अधिक विशिष्ट टीम द्वारा)।

यह वास्तव में आप वैसे भी क्या कर रहे हैं: अपने स्वयं के उत्पाद / ग्राहक के रूप में मुख्य पुस्तकालय पर विचार करें, आधे रास्ते पर न जाएं।


यह बोझिल लगता है, लेकिन, हाँ, यह काम करेगा। तो +1मुझसे।
sbi

0

एक दृष्टिकोण टीम के लिए उनके स्प्रिंट के लिए एक नया मुद्दा बनाने के लिए है जो मुख्य पुस्तकालय मुद्दे पर वापस लिंक करता है। यह थोड़े है जैसे आप किसी कार्य के लिए उप-कार्य कर रहे हैं लेकिन बोर्ड / बैकलॉग के पार।

एक और तरीका यह है कि इसे JIRA के बाहर अलग से ट्रैक किया जाए। मौजूदा बैकलॉग को CSV या स्प्रेडशीट के रूप में निर्यात करें और उसे व्यवस्थित करें।

JIRA से मुद्दों को अलग करके, आपके पास योजना बैठक में प्राथमिकता को परिभाषित करने के लिए लचीलापन है और बोर्डों पर JIRA के सॉर्टिंग एल्गोरिदम के बारे में चिंता करने की ज़रूरत नहीं है और आपको लेबल का भी उपयोग नहीं करना होगा।

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


-2

एक विचार है कि कोर लाइब्रेरीज़ जो बहुत सारे सामान्य को समेटती हैं, लेकिन असंबंधित कार्यक्षमता एक 'बुरी चीज' है (tm)

इसके लिए कुछ कारण हैं

  • वे निर्भरता और कोड में खींचते हैं जिनकी आपको आवश्यकता नहीं है
  • उन्हें बदलने से सभी अनुप्रयोगों में परिवर्तन होता है
  • एक भी 'मालिक' नहीं

आपके मामले में मुझे लगता है कि आवेदन द्वारा आपके कार्यों का विभाजन परिवर्तन की समस्या का मूल होगा। एक प्रकार का रिवर्स कॉनवे का नियम।

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

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

कार्य: उत्पाद Y में सुविधा X जोड़ें

देव: हम्म को एक्स के लिए कोड में से कुछ को कोरियुलेट में जाना चाहिए .. मैं इसे इस कार्य के हिस्से के रूप में रखूंगा


यह अजीब लगता है। शुरुआत के लिए: आपको क्या लगता है कि आप "विशिष्ट रूप से समूहबद्ध कार्यक्षमता के एक विशिष्ट छोटे सेट के साथ पुस्तकालय" और जिसे हम "कोर लाइब्रेरी" कहते हैं, के बीच अंतर क्या है? (BTW: ऐसा लगता है कि मैंने इस जवाब के लिए अधिसूचना को याद किया है। इतनी देर से जवाब देने के लिए क्षमा करें।)
sbi

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

मैं आपके तर्क को समझने में विफल हूं। किसी भी कोड को रखरखाव से लाभ क्यों नहीं होगा? और क्या आपके ग्राहक कभी नई सुविधाओं का अनुरोध नहीं करते हैं, जिसके कारण नए कोड लिखे जा सकते हैं? और आप कैसे जानते हैं कि कोड आम हित का है, पहले से ही रुचि रखने वाली आवश्यकता के साथ किसी अन्य परियोजना को सौंपा गया है?
sbi

कहते हैं कि लाइब्रेरी Json.Net है। इसका एक उद्देश्य क्रमबद्ध वस्तुएं जसन और रिवर्स करना है। सुनिश्चित करें कि आपको बग को ठीक करने या जेनरिक के लिए समर्थन जोड़ने की आवश्यकता हो सकती है, लेकिन समग्र सुविधा सेट कभी नहीं बदलता है। आप उस स्थिति में नहीं हैं जहाँ उदाहरण के लिए कोई ग्राहक आपसे 'ऑर्डर रद्द करने की क्षमता' को लागू करने के लिए कहता है या जो कुछ भी और आप सोचते हैं, 'मैं उसको Json.Net में जोड़ दूंगा'
इवान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.