2010-03-16 12 views
18

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

+4

से कोई चेतावनी उत्पन्न नहीं करता है क्या यह एक प्रोग्रामिंग प्रश्न है? या आप सिर्फ खरोंच में भागकर निराश हैं? – RubyDubee

उत्तर

19

मुझे नहीं लगता है कि इस के रूप में यह परियोजना प्रबंधन दर्शन के साथ करता है स्क्रम के साथ क्या करना है के रूप में ज्यादा है।

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

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

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

4

मुझे लगता है कि आप शायद बड़े पैमाने पर रिफैक्टरिंग बजाय निरंतर रिफैक्टरिंग आप पूरे लाल-हरे-refactor चक्र में रहते हुए करना होगा के बारे में बात कर रहे हैं।

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

5

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

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

4

स्क्रम में सब कुछ सभी कार्यात्मक चीजें हैं जो एक उपयोगकर्ता देख सकते हैं (...)

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

1

यदि आप कोड के वर्तमान सेट के साथ मुद्दों/जोखिमों की पहचान करके अन्य कार्यों को पूरा करने की प्रक्रिया के हिस्से के रूप में इसे उचित ठहरा सकते हैं, और यह एक बेहतर अंत परिणाम है, इसके लिए जाएं। लेकिन अति उत्साही मत बनो और समय सीमा/बजट पेंच।

3

BTA: एक परियोजना स्क्रम या नहीं का उपयोग करता है या न करें, कई परियोजना प्रबंधकों कोड रिफैक्टरिंग या पुनर्गठन की तरह "अनावश्यक" बातों पर समय बिताने के डेवलपर्स कि सीधे बकाया कार्यात्मक में से एक अग्रिम नहीं है पसंद नहीं है आवश्यकताओं।

निश्चित रूप से एक उल्लेखनीय अवलोकन; इसके लिए मेरा समाधान निम्नानुसार होगा:

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

अपने प्रबंधक किसी भी अधिक ठोस, कलाकारों के लिए एक उपयोगकर्ता के रूप में 'मेंटेनर' की जरूरत है, और उनके लिए कुछ उपयोगकर्ता कहानियों का वर्णन - और फिर 'सुविधाओं' की तरह 'कोड पूरी तरह से एक्सएमएल दस्तावेज़ टिप्पणी के साथ टिप्पणी की है' बातें हैं और 'कोड ReSharper'

संबंधित मुद्दे