हम एक क्लाइंट के लिए एक CRM बना रहे हैं। अब जबकि पहला बड़ा चरण समाप्त हो चुका है, और एक दूसरे ने सहमति व्यक्त की है, ग्राहक कुछ काम चुनना चाहेंगे, डेटाबेस स्कीमा और व्यापार प्रक्रियाओं में मामूली संशोधन करना, जबकि हम दूसरा निर्माण करते हैं ।
मुझे यह पता नहीं है कि यह सब व्यावहारिक है या नहीं, लेकिन यह मानते हुए, मैं कुछ संकेत देता हूं, जिस पर काम करने के लिए उपाय किए जा सकते हैं। यहाँ मैंने अभी तक क्या किया है:
अब तक, ग्राहक ने परियोजना को ज्यादातर उपयोगकर्ता के दृष्टिकोण से देखा है; स्पष्ट रूप से, एक दो-भाग संगोष्ठी होनी चाहिए जहां हम उसे आंतरिक कामकाज से परिचित कराते हैं:
- पहले, मौजूदा डेटाबेस स्कीमा दिखा रहा है और, उदाहरण के लिए, इसे विस्तारित करते हुए,
- फिर, कुछ नमूना कोड दिखा रहे हैं, और स्कीमा बढ़ाने के लिए एक नई व्यवसाय प्रक्रिया लिख रहे हैं।
- वर्तमान में कोड एक आंतरिक सबवर्सन रिपॉजिटरी में रहता है। जब हम अपने नेटवर्क पर एक या एक (जिसे हम वीपीएन कर सकते हैं) एक सार्वजनिक सेट कर सकते हैं, मुझे लगता है कि एक वितरित प्रणाली बेहतर काम करेगी। मैं एकमात्र ऐसा व्यक्ति प्रतीत होता हूं जो उस तरह से महसूस करता है, हालांकि, इसलिए मैं कुछ अच्छे ठोस तर्क का उपयोग कर सकता हूं।
मुझे यकीन नहीं है कि उत्पादन में चलने वाले कोड को कैसे अनिवार्य / सुनिश्चित किया जाए। लगता है कि "x ने छुट्टी पर जाने से ठीक पहले एक महत्वपूर्ण, अविवादित परिवर्तन किया है; अब y इस बग का पता लगाने की कोशिश कर रहा है जो तब से हो रहा है" आपदाएं अपरिहार्य हैं। आदर्श रूप से, सभी परिवर्तन, परिनियोजन से पहले:
- एक समस्या ट्रैकिंग प्रणाली में प्रलेखित किया जाए,
- पहले एक अलग परीक्षण वातावरण पर, और
- स्वचालित परीक्षण पास करना होगा।
काश, मुझे संदेह है कि उनमें से किसी के लिए अनुशासन प्रबल होगा।
मान लें कि प्लग-इन आर्किटेक्चर या अलग प्रोजेक्ट व्यवहार्य विकल्प नहीं हैं, क्योंकि 1) पूर्व मौजूद नहीं है, और 2) बाद में क्लाइंट को मौजूदा कोड को देखने और संभवत: संशोधित करने से रोक देगा, एक क्षमता जो मुझे विश्वास है कि वह होगा पर जोर।