कई डोमेन में हालांकि, विशिष्ट ग्राहक है:
- दैनिक परिचालन चिंताओं में रुचि - कम दूरी की रणनीति ... रणनीति नहीं;
- केवल तत्काल समाधान से संबंधित;
- आम तौर पर एक आयामी, गैर-अमूर्त विचारक;
- स्थायी रूप से, गुणवत्ता समाधान के साथ आने के विपरीत "काम पूरा करने" में दिलचस्पी है।
और फ्रैंक होने के लिए, उनके पास आमतौर पर इस तरह के सोचने के अच्छे कारण होते हैं। सबसे पहले, वे एक व्यवसाय चला रहे हैं, जो आज और कल में राजस्व उत्पन्न करना चाहिए, कुछ दूर के भविष्य में नहीं। दूसरे, वे तकनीकी विशेषज्ञ नहीं हैं - वे नहीं जानते कि क्या संभव है और क्या नहीं, और विशिष्ट वास्तु / डिजाइन / कार्यान्वयन विकल्पों के क्या परिणाम हैं। यह हम जानते हैं।
तो जवाब है - शायद ही आश्चर्य की बात - संचार ।
आपको एक दूसरे को शिक्षित करने के लिए, एक दूसरे को शिक्षित करने के लिए, एक दूसरे को देखने के बिंदु को कम से कम बुनियादी स्तर पर समझने के लिए, बहुत कुछ संवाद करने की आवश्यकता है। आपको उन्हें संभावित विकल्पों के छोटे और दीर्घकालिक परिणामों की व्याख्या करने की आवश्यकता है। और आपको उनकी समझ में आने वाली भाषा का उपयोग करने की आवश्यकता है ।
- यदि आप कहते हैं "यह एक हैक होगा, जो कोड को कम पठनीय और एक्स्टेंसिबल बनाता है" , वे कहते हैं, "हाँ, जो भी हो" ।
- यदि आप कहते हैं, "यह एक अल्पकालिक फिक्स होगा, जो विकास और रखरखाव को अधिक महंगा बना देगा, और बग को शुरू करने के जोखिम को बढ़ाएगा" , वे कहते हैं "एक हा, चलो विचार करें" ।
- और यदि आप कहते हैं "इस समाधान में आपको $ 100 का खर्च आएगा, लेकिन $ 500 का तकनीकी ऋण प्रस्तुत करता है, जिसे आप जल्द या बाद में ब्याज के साथ वापस भुगतान करने के लिए बाध्य होते हैं; ओटीओएच इस अन्य समाधान की कीमत आपको $ 400 है और कोई तकनीकी ऋण नहीं छोड़ता है; चाहते हैं " , वे कहते हैं " अब हम बात कर रहे हैं! ।
OTOH से वे हमें व्यावसायिक दृष्टिकोण के बारे में एक या दो बातें सिखा सकते हैं। व्यापार उपयोगी और काफी अच्छा चाहता है - शायद ही सही - समाधान। और वे शायद किसी से भी बेहतर जानते हैं कि "पूर्ण अच्छे का दुश्मन है"। इसलिए आपको यह ध्यान रखने की जरूरत है कि हमारा काम हमारे ग्राहकों की समस्याओं का समाधान प्रदान करना है, न कि तकनीकी रूप से सही सॉफ्टवेयर का उत्पादन करना। कभी-कभी ये दोनों एक ही में परिवर्तित होते हैं, लेकिन अधिक बार नहीं। यह कई लोगों द्वारा दुखी देखा जा सकता है, लेकिन यह व्यावसायिक वास्तविकता है। मेरे लिए, अगर मैं अपने ग्राहक की समस्या को हल करने में कामयाब रहा, और मैं देख रहा हूं कि इसने उनके जीवन को आसान बना दिया है, तो मैं जितना खुश हूं उतना ही खुश हूं। ओटोह अगर मैं मन में सही डिजाइन को लागू करने में कामयाब रहा, लेकिन कंपनी अगले सप्ताह दिवालिया हो जाती है, तो यह शायद ही किसी के लिए जीत है?
एक समझदार व्यवसाय मालिक समझ जाएगा - यदि आप उन्हें अपनी भाषा का उपयोग करते हुए समझाते हैं - तो सॉफ्टवेयर को साफ रखना, यूनिट टेस्ट लिखने के लिए, रिफ्लेक्टर आदि के लिए क्यों महत्वपूर्ण है। भले ही ये सीधे अल्पावधि में कुछ भी योगदान करने के लिए नहीं लगते हैं, वे दीर्घकालिक रखरखाव के लिए आवश्यक हैं। और समझदार ग्राहक अपने व्यवसाय की दीर्घकालिक स्थिरता के बारे में परवाह करते हैं, इसलिए वे निश्चित रूप से इसमें निवेश करने के इच्छुक हैं जब वे अपने निवेश के मूल्य को देखते हैं। हालांकि, उनके संसाधन और आपका समय दोनों सीमित हैं, इसलिए आपको सबसे महत्वपूर्ण चीजों पर प्राथमिकता देने और ध्यान केंद्रित करने की आवश्यकता है। लेकिन यह महत्वपूर्ण है केवल अगर यह आप दोनों के लिए महत्वपूर्ण है ।
आप मॉड्यूल ए को रिफलेक्टर करना चाह सकते हैं क्योंकि वहां का कोड अभी भयानक है, और आपके पास एक शानदार विचार है कि कोड को कैसे संक्षिप्त, सुरुचिपूर्ण और स्वच्छ बनाया जाए, जिस डिजाइन पैटर्न के बारे में आपने पढ़ा है। हालाँकि, अगर उस मॉड्यूल को वर्षों तक नहीं छुआ गया है, और यह मज़बूती से काम करता है, तो आप मॉड्यूल बी पर ध्यान केंद्रित करने की सबसे बेहतर संभावना रखते हैं, जिसे अगले सप्ताह एक बहुत ही महत्वपूर्ण नई सुविधा के साथ बढ़ाया जा रहा है, और इसमें टन के कीड़े शामिल हैं। पहले से।