मध्य विकास में परिवर्तन से विकास की युक्ति को कैसे रोकें?


61

समस्या : ऐसा लगता है कि लगभग हर विकास के प्रयास में मैं शामिल हूं, विकास शुरू करने से पहले योजना बनाने में कितना भी समय क्यों न लगाया जाए, मिडवे या प्रोजेक्ट के अंत तक या तो हमेशा बड़े बदलाव की आवश्यकता होती है। ये कभी-कभी बड़े बदलाव होते हैं जिनमें पुन: विकास की आवश्यकता होती है।

मैं उन ग्राहकों के लिए काम नहीं करता, जो पैसे देते हैं, यह एक इन-हाउस डेवलपमेंट टीम है जो इन-हाउस डेवलपमेंट वेबसाइटों पर है। इसलिए, ऐसा नहीं है कि मैं इसके लिए शुल्क ले सकता हूं या कुछ भी। और दिन के अंत में, हमें समय सीमा हिट करने की कोशिश करनी होगी।

प्रश्न : आप लोगों ने मिडवे तक या विकास के बाद होने वाले बदलावों को कम करने और रोकने के लिए सबसे अच्छे तरीके क्या हैं?


9
विकास में फ़ीचर फ़्रीज़ मील का पत्थर स्थापित करें और चीजों को इस तरह व्यवस्थित करें / बातचीत करें कि उस मील के पत्थर के बाद सबमिट किए गए सभी फ़ीचर अनुरोध अगली रिलीज़ पर न जाएं। यहाँ पर मुख्य बिंदु एक से अधिक रिलीज़ की योजना बनाना और ग्राहकों के साथ इस समझ को साझा करना है
gnat

4
@gnat आप यह मान रहे हैं कि ओपी एक संगठन पर काम करता है, जहां हितधारकों को सुविधा फ्रीज मील का पत्थर रखना स्वीकार्य होगा। इन-हाउस डेवलपमेंट टीमों पर काम करने के व्यक्तिगत अनुभव के आधार पर, अगर मैं ऐसी किसी चीज का प्रस्ताव करता, तो हितधारक मुझे घूरते और कुछ इस तरह के प्रभाव से कहते, "मैं आपको क्या बताता हूं कि आप मुझे बता रहे हैं कि मैं कब बदल सकता हूं और नहीं बदल सकता।" मेरा फीचर एक अनुरोध पर है? आपको क्या लगता है कि मैं आपको भुगतान कर रहा हूं? अपनी जगह जानिए। "
maple_shaft

29
क्या आपने रीड-ओनली फ़ाइल में युक्ति को सहेजने का प्रयास किया है?
orlp

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

7
क्या यह एगाइल मौजूद नहीं है? आप कल्पना को फ्रीज नहीं कर सकते हैं इसलिए अपनी प्रक्रिया को एक बदलते युक्ति को संभाल लें।
क्रेग

जवाबों:


89

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

  1. स्पष्ट अंतर बनाएं कि क्या बदला जा सकता है और क्या नहीं। हितधारकों के लिए इसे स्पष्ट रूप से संप्रेषित करें, उन्हें जितनी जल्दी हो सके अपरिवर्तनीय चीजों पर स्पष्ट रूप से हस्ताक्षर करें।
  2. पहले से बदलाव की तैयारी करें। कोड कार्यप्रणाली का उपयोग करें, जो परिवर्तनशील भागों को आसानी से बदलने की अनुमति देता है, विन्यास, एन्कैप्सुलेशन और स्पष्ट प्रोटोकॉल में निवेश करता है जो भागों को स्वतंत्र रूप से बदलने और बदलने की अनुमति देता है।
  3. हितधारकों से अक्सर बात करें, प्रतिक्रिया और अनुमोदन करें। यह दोनों आपको सिंक में रखेगा और "ओह, यह वही है जो हम चाहते थे" का दावा करने से बचें जब बहुत देर हो चुकी हो। जैसा कि अन्य उत्तरों में कहा गया है, फुर्तीली कार्यप्रणाली और बार-बार लघु-रिलीज़ आपको इससे मदद करेंगे।
  4. अपरिहार्य परिवर्तनों को समायोजित करने के लिए समय निर्धारित करें। यह कहने से मत डरिए कि "हमें अधिक समय की आवश्यकता होगी" यदि आपको लगता है कि आप जल्दी करेंगे - यदि आप जो कार्यक्रम दे रहे हैं तो यह जानना बेहतर है (इसे रिकॉर्ड करने पर और आपको यह कहते हुए रिकॉर्ड करना होगा) कि शुरुआत में समाप्त।
  5. यदि परिवर्तन बहुत व्यापक हैं और समय सीमा को खतरे में डालते हैं - पीछे धकेलें और कुछ ऐसा कहें जैसे "यह परिवर्तन संभव है, लेकिन एक्स समय से समय सीमा को आगे बढ़ाएगा, अपनी पसंद बनाएं"।
  6. परिवर्तनों को अनुरोध करने, परिवर्तनों को प्राथमिकता देने और संस्करणों या रिलीज़ में परिवर्तन असाइन करने की एक औपचारिक प्रक्रिया करें। यदि आप लोगों को बता सकते हैं "मैं इस रिलीज़ में ऐसा नहीं कर सकता, लेकिन इसे अगले एक के लिए शेड्यूल करने में खुशी होगी", तो उन्हें यह कहने से बेहतर है कि "आपको बहुत देर हो चुकी है, आपका बदलाव इसमें नहीं जा सकता है" , "अलविदा" और उन्हें आपका दोस्त बना देगा - वे आपके लिए खुश होंगे ताकि आप समय पर रिलीज कर सकें ताकि आप अगली रिलीज के लिए जल्द से जल्द मुक्त हो सकें, जिसमें उनका बदलाव होगा - और आपका दुश्मन नहीं।

3
आप उन्हें चरणों में 'फ्रीज' भी कर सकते हैं और परिवर्तनों को 'अगले संस्करण' में धकेल सकते हैं ।
ग्रांट थॉमस

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

3
नंबर ६ के लिए ६. मुझे पीएम के साथ एक उत्कृष्ट अनुभव था जो उस आवश्यकता को अकेले लागू करता था।
जोशुआ ड्रेक

3
लघु चक्र प्रमुख हैं। अगले दो सप्ताह के स्प्रिंट की तुलना में लोग बहुत कम परेशान हैं, जब "अगली रिलीज़" छह महीने दूर है।
एडम जस्कविज़

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

40

कुछ वितरित करें (मैं कुछ भी शब्द का उपयोग करने में संकोच करता हूं) जल्दी और अक्सर वितरित करता हूं। वह है - किसी प्रकार की पुनरावृत्ति विकास पद्धति का उपयोग करना।

यह चुस्त विकास का आधार है, लेकिन किसी भी पद्धति के साथ इस्तेमाल किया जा सकता है।

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

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


22

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

जैसे ही आप जाते हैं, आपको परिवर्तनों को समायोजित करने का कोई रास्ता खोजना होगा! वे होने जा रहे हैं, क्योंकि अधिकांश हितधारक, भले ही वे कहते हैं 'हाँ, यही मैं चाहता हूँ' वास्तव में कोई विचार नहीं है कि वे क्या चाहते हैं जब तक कि यह उनके सामने न हो। इसलिए हमारे पास बहुत से लोग पुनरावृति के तरीके अपना रहे हैं।

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


2
नासा अपने कुछ सॉफ्टवेयर के साथ करता है, या अंतरिक्ष में शटल भेजने के लिए कम से कम काफी अच्छा है। बात यह है कि वे वास्तव में झरना मॉडल का पालन करते हैं। कल्पना वास्तव में जमी हुई है। कम से कम संगठन के बाहर से यह मेरी समझ है।
जोशुआ ड्रेक

5
मैंने कई परियोजनाओं पर काम किया है जहां हम पूरी तरह से महत्वपूर्ण प्रणालियों (टेलीफोन स्विच adjuncts) को पूरी तरह से निर्दिष्ट करने में सक्षम थे। इन सभी मामलों में महत्वपूर्ण यह है कि हम ऐसे हार्डवेयर को लक्षित कर रहे थे जो पहले ही विकसित हो चुके थे, और प्रकाशित (ITU) स्पेक्स के लिए विकसित हो रहे थे, इसलिए न तो बदल सकते थे। इसलिए आपका तर्क सभी परियोजनाओं के लिए नहीं है - उनमें से सिर्फ 99%! ;)
TMN

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

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

1
@TMN मुझे आश्चर्य है कि सफलता की कुंजी क्या है। झरना मॉडल का उपयोग, या आपके अनुशासित दृष्टिकोण? मैं सोच रहा हूं कि बाद में दोनों में से अधिक महत्वपूर्ण है।
रॉस गोडार्ड

19

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


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

6
@ डंक आप इस बात में सही हैं कि डायग्राम को बदलना सस्ता है तो कोड, लेकिन आपको कैसे पता चलेगा कि बदलाव की जरूरत है? अक्सर ऐसा तब होता है जब आप उपयोगकर्ता को उपयोग करने के लिए कुछ देते हैं और उसे पता चलता है कि उसने या तो गलत विचार का संचार किया है, यह वह नहीं है जो वह चाहता था, या ये अन्य चीजें हैं जो वह चाहता था। चाल यह पता लगाने की है कि इन परिवर्तनों को जल्द से जल्द कैसे खोजा जाए।
रॉस गोडार्ड

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

12

तुम गलत सवाल पूछ रहे हो। किसी भी आकार के सॉफ्टवेयर विकास परियोजनाओं में विशिष्ट परिवर्तन हमेशा होंगे ।

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

जो प्रश्न आपको पूछना चाहिए वह यह है कि "मैं कल्पना को कैसे बंद कर सकता हूं", यह "मैं अपने कोड और प्रक्रियाओं को कैसे बदल सकता हूं, जो कि मैंने पहले से ही लिखी गई हर चीज को फेंक दिए बिना एक बदलते परिवेश में जवाब दे सकता है?"

इसके बाद यह आपको buzzword बिंगो क्षेत्र में ले जाता है: चुस्त कार्यप्रणाली, पुनरावृत्ति विकास और तकनीकी समाधान जैसे घटक आधारित / मॉड्यूलर कोडिंग, निरंतर एकीकरण ... सूची आगे बढ़ती है।

मैं यह नहीं कह रहा हूं कि ये आपकी सभी समस्याओं के लिए एक चांदी की गोली हैं, लेकिन वे सभी के बारे में बहुत स्थिति का प्रबंधन करने की इच्छा के कारण आए हैं, इसलिए बहुत कम से कम वे कुछ जांच के लायक हैं।

क्षमा करें यदि वह ठोस समाधान नहीं दे रहा है, लेकिन मुझे लगता है कि बदलाव को स्वीकार करने और प्रबंधन करने की मानसिकता में बदलाव होगा, तो इससे बचने की कोशिश करने से अधिक लाभांश का भुगतान करना होगा।


हां। मूल प्रश्न को फिर से समझने के लिए: "हम कैसे गारंटी दे सकते हैं कि हम परियोजना के शुरू में ग्राहक चाहते थे, बजाय इसके कि वे अंत में क्या चाहते थे?"
स्टीव बेनेट

5

एक परिवर्तन केवल एक आश्चर्य है ... अगर यह आश्चर्य की बात है!

मैं सोचने के बारे में सुझाव दूंगा:

  • पृथ्वी पर ये परिवर्तन वैसे भी कहाँ से आते हैं?
  • आप उन्हें पहले क्यों नहीं जानते हैं?
  • आप इन परिवर्तनों में योगदान क्यों नहीं कर रहे हैं (और संभवतः उनमें से भी अधिक बना रहे हैं)?

परिवर्तन हम क्या करते हैं की प्रकृति है। जब से आपने एक एल्गोरिथ्म कोड किया था ठीक उसी तरह जैसे कि दिन 1 में कल्पना की गई थी?

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


+1 "परिवर्तन हम क्या करते हैं की प्रकृति है" - मुझे बदलाव पसंद है। बदलाव अच्छी बात हो सकती है। यह मुझे यह देखने का मौका देता है कि मेरे डिजाइन कौशल सूंघने के लिए थे या नहीं। यदि परिवर्तन बहुत अधिक काम का कारण बनता है तो मैंने एक बुरा डिजाइन किया। यह डिज़ाइन को अधिक सामान्य बनाने का अवसर भी प्रदान करता है। यह शेड्यूल को पूरा करने के लिए आपके द्वारा जो कुछ भी किया गया था, उसे ठीक करने का बहाना देता है। यह मुझे वापस जाने और अन्य लोगों के कचरे को ठीक करने देता है। बस परिवर्तन अनुरोधों को ट्रैक करें और उन्हें अनुसूची में शामिल करें ताकि जब आप मूल कार्यक्रम की तुलना में बाद में वितरित करें तो आपके पास यह दिखाने के लिए सबूत क्यों हों।
डंक

4

हालांकि एक कॉल के रूप में, ग्राहक हमेशा अधिक चाहते हैं, लेकिन यहां कुछ बिंदु हैं जिन पर आपको विचार करना चाहिए:

HTML मॉक-अप: हमेशा किसी एप्लिकेशन के UI भाग को परिभाषित करने के लिए HTML मॉक अप बनाएं, उन्हें दिखाएं कि यह कैसा दिखेगा और उनसे उनकी राय पूछें। यदि आपको HTML प्रोटोटाइप में होने वाले परिवर्तन को उचित लगता है। इसके इस्तेमाल से आप बहुत सारी चीजें जैसे यूआई इश्यू, बेसिक फ्लो और कुछ ऐड ऑन (जैसे सॉर्टिंग, पेजिनेशन, प्रदर्शित किए जाने वाले रिकॉर्ड की संख्या आदि) को छांट लेंगे।


दूसरे छोर से सक्रिय भागीदारी: यह बहुत महत्वपूर्ण है यदि आप एक व्यापारिक संगठन के लिए विकसित कर रहे हैं, तो उनके व्यवसाय में उनसे अपने संदेह को स्पष्ट करने के लिए कहें और बिना असफलता के उनसे पूछें कि वे अपने प्रवाह में क्या बदलाव चाहते हैं (यदि आवश्यक हो)।


मॉड्यूलर रिलीज़: अपने कोड को मॉड्यूलर फैशन में रिलीज़ करें, रिलीज़ करें, टेस्ट करें, फीडबैक लें और फिर से रिलीज़ करें।


4

यही कारण है कि पहले से बहुत दूर की योजना बनाना लगभग असंभव है, लेकिन योजना नहीं बनाने का बहाना नहीं। अपनी योजनाओं के साथ प्यार में बहुत गहरे मत पड़ो और आपको अपना दिल तोड़ने की चिंता नहीं करनी होगी।

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

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


4

विकास चक्र के दौरान सक्रिय उपयोगकर्ता की भागीदारी, और जितना संभव हो उतना चुस्त कार्यप्रणाली का उपयोग वास्तव में हमारे उत्पादों के साथ हमारी मदद करता है।

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


3

मेरे लिए यह काफी आसान है।
एक को बताएं, "उत्पाद के मालिक" , जिन्होंने सुविधाओं का आदेश दिया है कि यह ठीक है, लेकिन उन्हें नियोजित सुविधा के एक जोड़े को चुनना होगा जो वह इस समय सीमा के बिना हो सकते हैं।
इसे पीओ के साथ एक आधा स्प्रिंट बैठक के रूप में सोचें जहां आप उसे बताते हैं कि स्प्रिंट न 0 से नीचे जलता है।

Ps। अगर यह "पीओ" नहीं है, तो मैं कहूंगा कि "पीओ" के माध्यम से मुझसे बात न करें


1

आप लोगों ने मिडवे तक या विकास के बाद होने वाले विशेष परिवर्तनों को कम करने और रोकने के लिए सबसे अच्छे तरीके क्या हैं?

कोई सबसे अच्छा तरीका नहीं हैं। यह विकास के निश्चित चरण में कल्पना करने के लिए परिवर्तनों को सीमित करने के लिए प्रबंधन पर निर्भर है।

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


1

मैंने पाया है कि, प्रत्यक्ष या अप्रत्यक्ष रूप से, ग्राहक अधिकांश परिवर्तनों (और सबसे महत्वपूर्ण बग, बीटीडब्ल्यू) का कारण हैं। तो ग्राहकों को खत्म करने के लिए स्पष्ट समाधान है। (वैसे भी वे कितने अच्छे हैं?)


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

1

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


1

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

यदि एक देर से परिवर्तन का अनुरोध किया जाता है (एक कहानी के लिए जो पहले से ही लागू हो चुका है) तो आपको एक नई कहानी बनाने और इसके लिए कार्यान्वयन प्रयास का अनुमान लगाने की आवश्यकता है। तब आप अपने प्रबंधक ( उत्पाद स्वामी ) के पास जा सकते हैं और बस यह समझा सकते हैं कि नई सुविधा के लिए उस अतिरिक्त समय का खर्च होने वाला है। परियोजना प्रबंधक के पास अतिरिक्त प्रयास को स्वीकार करने और अनुसूची को समायोजित करने की जिम्मेदारी है (संभवतः अन्य अभी तक लागू नहीं की गई कहानियों को रद्द करना)।

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


0

http://teddziuba.com/2010/05/why-engineers-hop-jobs.html

मैंने बहुत से काम के बाद शाम को तनाव और दुःख में बिताया क्योंकि अभी तक एक और चैप सॉफ्टवेयर सॉफ्टवेयर कैसे काम करता है, इसकी परवाह या परवाह नहीं करता है। मुझे किसी को भी ऊंचे स्तर पर ले जाने में कोई समस्या नहीं है, लेकिन मुझे अपने साथी के झगड़े का समर्थन नहीं है। बच्चों को एक कुतिया, एह है? मैं जल्द ही पद छोड़ दूंगा।

सच कहूं, मैं चाहता हूं कि प्रोग्रामर सामान्य रूप से अधिक गेंदें हों। आइए इसे देखें:

"" "मैं उन ग्राहकों के लिए काम नहीं करता जो पैसे का भुगतान करते हैं, यह इन-हाउस डेवलपमेंट वेबसाइटों पर इन-हाउस डेवलपमेंट टीम है। इसलिए, ऐसा नहीं है कि मैं इसके लिए कुछ भी चार्ज कर सकता हूं। और दिन के अंत में। हमें समय सीमा को हिट करने की कोशिश करनी होगी। "" "

यदि आप एक $ -इंग क्लाइंट के साथ काम कर रहे थे और यदि आपने एक अनुबंध (http://vimeo.com/22053820?utm_source=swissmiss) करके अपने गधे को कवर किया है, तो कल्पना में परिवर्तन से इस ग्राहक को अधिक समय और अधिक पैसा खर्च करना पड़ेगा; या संभावित रूप से समान या कम समय लेकिन तेजी से अधिक पैसा)। आपकी कंपनी अधिक समय और अधिक पैसे की लागत के बिना कल्पना को बदलने की कोशिश कर रही है।

इस समय के दौरान, समय सीमा हिट करने की कोशिश करने से आपको और आपके सहकर्मियों को तनाव में रहना पड़ता है; आप दोस्तों / परिवार के साथ एक गुणवत्ता सप्ताहांत नहीं बिता सकते। यह वास्तव में अनावश्यक है, क्योंकि जो कोई आप पर काम फेंक रहा है वह शायद यह भी नहीं जानता है, जो दुख की बात है।

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

फिर चुस्त विकास का भी वादा है, जिसका तात्पर्य है कि कोई कठिन समय सीमा नहीं।

मुझे प्रोग्रामरों को हड़ताल पर जाते देखना बाकी है, लेकिन यह कुछ और होता। सॉफ़्टवेयर कंपनियों में अक्षम प्रबंधक बहुत प्रचुर मात्रा में हैं। जिस तरह से बहुत से लोग कुछ भी नहीं के लिए कुछ भी प्राप्त करना चाहते हैं, क्रेगलिस्ट पर या एक वास्तविक कंपनी के भीतर। http://teddziuba.com/2011/07/the-craigslist-reverse-programmer-troll.html

प्रोग्रामर को अधिक गेंदों की आवश्यकता होती है।


0

एक दृष्टिकोण जो मैंने पाया है कि ठीक-ठीक काम करता है (स्पष्ट रूप से सभी प्रबंधकों के साथ नहीं) "मुझे लगता है कि मैं ऐसा कर सकता हूं, हां। यह निर्भर करता है - आप इस परियोजना को कितना अतिरिक्त समय दे रहे हैं? यह एक बहुत बड़ा बदलाव है? बिनती करना।"

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