@ जो "हम एक" फुर्तीली "दुकान हैं, इसलिए मुझे लगता है कि हम समायोजित करने वाले हैं और क्या नहीं, लेकिन कभी-कभी परिवर्तन बड़ा होता है और कुछ भी तुच्छ नहीं होता है।"
यदि आपकी प्रक्रिया आपको आवश्यकताओं में परिवर्तन की दर को नियंत्रित करने की अनुमति नहीं देती है, तो आपकी प्रक्रिया चुस्त नहीं है, बल्कि बेतरतीब है। चंचल का मतलब यह नहीं है कि "कुछ भी हो जो मेरे रास्ते में आता है।"
आवश्यकता परिवर्तन / रेंगने को नियंत्रित करने के लिए - आप अपनी प्रक्रिया में अपना सकते हैं - यह धारणा कि एक आवश्यकता नहीं बदलती (एक धारणा यह है कि यह स्क्रम के दिल में है।) एक आवश्यकता परिवर्तन को एक नई आवश्यकता के साथ एक पुरानी आवश्यकता को बदलने के रूप में व्यवहार करें। आपके पास आवश्यकताओं का एक बैकलॉग होना चाहिए, और आपके पास उपयोगकर्ता का चयन करना होगा कि वह किसे लागू करना चाहता है।
आप दो सप्ताह में एक्स और वाई चाहते थे, लेकिन अचानक आप जेड। वेल चाहते हैं, तो मैं आपको तीनों को 4 सप्ताह में वितरित कर सकता हूं। या मैं दो सप्ताह में एक जोड़ी (एक्स और जेड) या (एक्स और वाई) या (वाई और जेड) दे सकता हूं और शेष को बाद में वितरित कर सकता हूं। चुनें।
यह है कि आप ग्राहकों के साथ कैसे बातचीत करते हैं। यह है कि आप आवश्यकता परिवर्तन की लागत को कैसे संवाद करते हैं। यदि आपके समूह में वह शक्ति नहीं है, तो आप चुस्त दुकान में नहीं हैं, और ऐसा कुछ भी नहीं है जो आप इसके बारे में कर सकते हैं। यह बेकार है, लेकिन यह सच है।
मामले में जहां आप बातचीत कर सकते हैं, आपको आवश्यकताओं और आवश्यकता परिवर्तनों को लागू करने में लगने वाले समय को (सटीकता के साथ) ट्रैक करना होगा। यही है, आपको पिछले और वर्तमान परियोजनाओं से यह डेटा एकत्र करना होगा।
आप मूल समय अनुमान और वास्तविक पूरा होने का समय (डेवलपर गणना जैसे संसाधनों के अलावा) प्रति अनुरोध (या एन अनुरोधों से प्रभावित मॉड्यूल) इकट्ठा करते हैं। बेहतर अभी तक, अनुरोध / अनुरोध परिवर्तन के आकार का अनुमान लगाएं (पिछली परियोजनाओं और अनुरोधों में कोड या फ़ंक्शन बिंदुओं की पंक्तियों के संदर्भ में)।
कहें कि आपके पास एक मीट्रिक है, जिसके साथ आप उपयोगकर्ता से बात कर सकते हैं। आप जानते हैं कि एक नया अनुरोध, कोड की 1K लाइन्स, या 10 वेब पेजों के साथ औसतन 5 इनपुट फील्ड्स (प्रत्येक 50 फंक्शन पॉइंट्स) लेगा।
फिर अपने पिछले प्रोजेक्ट्स के लिए विशिष्ट ऐतिहासिक डेटा (कुछ कोड द्वारा लाइनों, कुछ वेब पेजों द्वारा, कुछ वास्तविक फ़ंक्शन बिंदुओं को देखकर ), और आप अनुमान लगा सकते हैं कि इनमें से प्रत्येक पूर्ण समय के संदर्भ में कैसे खर्च होता है। पर्याप्त डेटा वाले लोगों के लिए, आप उन आवश्यकताओं को भी पहचान सकते हैं जो एक वास्तविक डेवलपर हेड काउंट को ट्रैक करते हैं।
तब आप इसका उपयोग करते हैं और आप अपने ग्राहक को बताते हैं कि ऐतिहासिक डेटा पर आधारित है; आप तर्क देते हैं कि परियोजना विफलताओं के लिए एक घातीय वितरण का पालन करें; और फिर आप अपने ग्राहक के लिए निम्नलिखित तर्क से लैस हैं:
हमारी पिछली और वर्तमान परियोजनाओं और उपलब्ध संसाधनों के आंकड़ों के आधार पर, आप जो पूछ रहे हैं, वह आपको लगेगा
विफलता की 25% संभावना (या सफलता का 75%) के साथ पूरा करने के लिए समय की एक्स राशि
5% विफलता (या सफलता का 95%) के साथ पूरा करने के लिए 1.5 * X राशि का समय
विफलता के 95% (या सफलता का 5%) के साथ पूरा करने के लिए 0.5 * X राशि का समय
समय संसाधनों की मात्रा के एक समारोह के रूप में विफलता की संभावना आमतौर पर 95%, 25% और 5% जाती है (एक घातीय डिस्ट्रो से मिलती जुलती है।) आप यह संदेश देते हैं कि एक निश्चित आधारभूत राशि सफलता का एक अच्छा मौका देती है (लेकिन वास्तविक जोखिमों के साथ) )। इसमें से 1.5 न्यूनतम जोखिम के साथ सफलता का लगभग एक निश्चित मौका दे सकता है, लेकिन इससे बहुत कम (मूल गारंटी का 0.5 लगभग निश्चित विफलता)।
आप उन्हें उस पर पचने दें। यदि वे अभी भी जोखिम भरे प्रस्ताव के लिए जाते हैं ( कल किया है! ) कम से कम आपके पास लिखित में है कि आपने उन्हें ऐसा कहा था। अगर आपके समूह के लिए न केवल फुर्तीले होने की उम्मीद है, बल्कि इंजीनियरिंग की तरह, तो, ग्राहक आपके नंबरों पर गंभीर विचार कर सकते हैं और इस और भविष्य के अनुरोधों को तदनुसार निर्धारित कर सकते हैं।
एक इंजीनियर के रूप में यह आपका काम है कि आप इंजीनियर को स्पष्ट और स्पष्ट शब्दों में समझाएं कि परिवर्तन का अनुरोध एक मुफ्त भोजन नहीं है।