2000 के दशक से सॉफ़्टवेयर समाधान, क्या मुझे पूरी चीज़ को पैच या रीमेक करने का प्रयास करना चाहिए?


9

मुझे एक प्रणाली पर चर्चा करने के लिए बाहर भेजा गया था जो एक निश्चित कंपनी वर्तमान में उपयोग कर रही है और इसके साथ क्या किया जाना चाहिए।

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

सिस्टम के बारे में कुछ जानकारी

  • इसे वर्ष 2000 के आसपास विकसित किया गया था
  • औसत रूप से छोटी प्रणाली, 2-5 उपयोगकर्ता, 6 फ़ॉर्म, डेटा की औसत मात्रा के साथ ~ 8 टेबल
  • शुरुआती विज़ुअल बेसिक पर निर्मित, ड्रैग एंड ड्रॉप डिज़ाइन के साथ बनाए गए फॉर्म। इंटरफ़ेस मूल रूप से सिर्फ एक विंडो है जिसमें मेनू और कुछ रूप हैं
  • डेटा और ODBC ड्राइवर को क्वेरी करने के लिए MSSQL डेटाबेस (SQL2005 सर्वर) का उपयोग करता है, इस प्रणाली से पहले डेटा को एक्सेल से माइग्रेट किया गया था, और एक्सेल से पहले इसे हाथ और कागज द्वारा संभाला, गणना और लिखा गया था।
  • उपयोगकर्ता Microsoft XP वातावरण (और ऊपर) में काम करते हैं

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

मैंने 3 संभावित उपाय सुझाए

  1. वर्तमान प्रणाली को पैच करने का प्रयास
  2. एक नया नया इंटरफ़ेस बनाएं (अधिमानतः समान वातावरण, VB.net या VB आधारित)
  3. यह एक छोटी सी प्रणाली है, इसे देखते हुए इसे एक एक्सेल समाधान में वापस लाएं

अधिक विकल्प हो सकते हैं, लेकिन ये वही हैं जिनके बारे में मैं सोच सकता था।

मेरे सवाल हैं

  • मुझे क्या सिफारिश करनी चाहिए और क्यों?
  • इन विकल्पों के पक्ष और विपक्ष क्या हो सकते हैं?
  • क्या अन्य (संभवतः बेहतर) विकल्प हैं?

3
आप यह तय नहीं कर सकते कि डेटाबेस स्कीमा को प्रलेखित करने तक आप वर्तमान प्रणाली को कितनी बुरी तरह से तोड़ चुके हैं।

@ ThorbjørnRavnAndersen यह सच है। मैंने केवल डेटाबेस में झाँका है। जिस उम्र में इसे बनाया गया था, उसे देखते हुए, मैं यह मानने जा रहा हूं कि यह वास्तव में बहुत ही डिज़ाइन किया गया है और प्राथमिक चिकित्सा की आवश्यकता है ... या सर्जरी।
२१

1
क्या आप जानते हैं कि मूल प्रणाली किसने लिखी थी? क्या यह एक इनडोर प्रयास था या इसे अनुबंधित किया गया था?
maple_shaft

7
ऐसा मत करो। ग्राहक को बताएं कि डेटाबेस की स्थिति विभिन्न विकल्पों की लागत के लिए महत्वपूर्ण है, और यह सुनिश्चित किया जाना चाहिए कि वे किस विकल्प का चयन करते हैं। यहां तक ​​कि खरोंच से फिर से लिखने के लिए, वे सबसे अधिक संभावना चाहते हैं कि उनके डेटा को चित्रित किया जाए।

4
डेवलपर्स को "खरोंच से फिर से लिखना" और केवल आवश्यक होने पर रिफ्लैक्टर को डिफ़ॉल्ट करना पसंद है। मैं "धीरे-धीरे रिफ्लेक्टर" के लिए डिफ़ॉल्ट रूप से चाहता हूं और आवश्यक होने पर केवल फिर से लिखता हूं।
quant_dev

जवाबों:


5

केवल 6 रूपों के साथ कुछ और इस तरह के एक और अधिक आधुनिक ढांचे पर पुनर्निर्माण करना आसान होना चाहिए । मैंने VB6 परियोजनाओं को माइग्रेट करने के साथ काम किया है, जिसमें दर्जनों कक्षाओं और डेटाबेस तालिकाओं के साथ लगभग 200 रूप थे। ऐसा नहीं लगता कि आप कुछ भी देख रहे हैं जो गड़बड़ है लेकिन लगता है कि धोखा हो सकता है।

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


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

@ShadowScripter मैं वीबी से बेहतर भाषा में इसे लिखने पर एक नज़र डालूंगा, जबकि आप इस पर हैं। ओपन सोर्स लाजर प्रोजेक्ट देखें।
स्पेंसर रथबुन

5

अब तक की सबसे अधिक प्रतिक्रियाओं के बारे में मुझे थोड़ी अलग सलाह है।

वर्तमान प्रणाली को पैच करने का प्रयास

मैं कम से कम मौजूदा प्रणाली को अच्छी तरह से सीखूंगा कि ग्राहक को यह कैसे समझा जाए कि इसका उपयोग कैसे किया जाए। मुझे इस समय उनकी मौजूदा प्रणाली की खामियों को समझने में मदद मिलेगी, नकारात्मक शब्दों से बचें, बस उन्हें बताएं कि सभी ज्ञात कीड़े ठीक होने पर भी यह क्या नहीं कर सकता है।

एक नया नया इंटरफ़ेस बनाएं (अधिमानतः समान वातावरण, VB.net या VB आधारित)

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

एक और चिंता यह है कि यह डेटाबेस के साथ संचार का तरीका है। Microsoft धीरे-धीरे अपने डेटाबेस उत्पादों (एक्सेस, MSSQL) के साथ संचार करने के कुछ पुराने तरीकों से छुटकारा पा रहा है, इसलिए आप उन उत्पादों के साथ बातचीत करते हैं जो यह निर्धारित करेंगे कि भविष्य में समाधान का उपयोग विंडोज 9 और विंडोज 10 पर किया जा सकता है।

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

मुझे नहीं लगता कि विज़ुअल बेसिक 6 एप्लिकेशन के साथ "गलत" कुछ भी है, इस तथ्य के अलावा, भविष्य के संस्करणों के लिए इसका समर्थन अज्ञात है। आज भी विंडोज 7 और 64-बिट ऑपरेटिंग सिस्टम के साथ इसका समर्थन करना कठिन और कठिन होता जा रहा है। यह एक प्रमुख कारण है कि 64-बिट समर्थन के साथ आधुनिक भाषा में फिर से लिखना एक अच्छा विचार हो सकता है।

यदि उनके पास उस बिंदु पर स्रोत नहीं है, तो एक पुनर्लेखन वास्तव में उनका एकमात्र समाधान है।


क्या आप " Microsoft is slowly getting rid of some of the older ways to communicate..." का संदर्भ दे सकते हैं ? इसके बारे में और पढ़ना चाहेंगे।
शैडोस्क्रिप्ट

@ShadowScripter - विरासत को एक्सेस करने के लिए Microsoft.Jet.OLEDB.4.0 प्रदाता उदाहरण के लिए, जब प्रक्रिया 32-बिट प्रक्रिया नहीं है तो एक्सेस डेटाबेस फ़ाइलों का समर्थन नहीं किया जाता है। WinRT भी बदल सकता है कि हम इन Microsoft उत्पादों से कैसे जुड़ें। मैं भूल जाता हूं कि मैं भविष्य में होने वाले बदलाव के बारे में कहां पढ़ता हूं, मेरी समझ MSSQL 2012 के बाद है। Microsoft केवल इसे कनेक्ट करने के विशेष तरीके का समर्थन करेगा। बेशक विंडोज में निर्मित प्रदाताओं और इसके विकास के प्रसाद के संदर्भ में
रामहाउंड

1

इंटरफ़ेस को फिर से लिखना एक उत्कृष्ट विकल्प है, यह देखते हुए कि सिस्टम अपेक्षाकृत छोटा है। लाभ हैं -

  1. बेहतर स्थिरता (यह मानते हुए कि आप इसे अच्छी तरह से करते हैं!)
  2. बेहतर रखरखाव
  3. आधुनिक इंटरफ़ेस

मुख्य नुकसान यह है कि यह अभी भी मौजूदा कोड को हैक करने की तुलना में काफी अधिक खर्च करेगा।


इंटरफ़ेस को फिर से लिखना मैं जिस तरह से झुक रहा था। और ईमानदार होने के लिए, मुझे यकीन नहीं है कि मैं पुराने इंटरफ़ेस के साथ शुरू करूँगा, आज के मानकों को देखते हुए, यह बस इतना ही है ... चारों ओर बुरा।
शैडोस्क्रिप्ट

1

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

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

  • आवश्यकताओं को इकट्ठा करना
  • वर्तमान प्रणाली को समझना
  • एक सार्थक डेटाबेस स्कीमा के साथ आने के लिए कि कैसे वे सॉफ्टवेयर का उपयोग करने का इरादा रखते हैं

यह परियोजना आर्थिक रूप से सफल नहीं थी!


मैं सुनता हूं कि आप क्या कह रहे हैं: इससे पहले कि मैं एक अंतिम निर्णय लेता हूं मुझे इसकी वर्तमान विफलताओं, कार्यों और उद्देश्य से पूरी तरह से परिचित होना चाहिए। यह ऐसा नहीं है कि मैं सभी में जाना चाहता हूं, बंदूकों के साथ, चिल्लाते हुए All right, let's do this. LEEEEEEEROOOOOOOY...! : पी
शैडोस्क्रिप्ट

0

एक अन्य विकल्प पूरी चीज़ को फिर से लिखने और मौजूदा ऐप को हैक करने के बीच एक समझौता हो सकता है।

उन्हें स्क्रैच से बने नए एप्लिकेशन में नई कार्यक्षमता दें।

यह संभवतः करने में आसान हो सकता है, और एक पूर्ण पुनर्लेखन के रूप में ज्यादा खर्च नहीं करना चाहिए।

एक बार यह हो जाने के बाद और वे खुश हैं कि वे डेटा जोड़ / अपडेट कर सकते हैं, यह एक ऐप दो को खोलता है जो नए ऐप में मौजूदा फ़ंक्शनलिटी की जगह ले सकता है।

यह एक और अधिक उपयोगी दृष्टिकोण हो सकता है।


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

0

पुनर्वित्त में अक्सर बजट से बाहर निकलने की प्रवृत्ति होती है ... बुरी तरह से।

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

इसके अलावा, VB6 समर्थन के लिए खराब है। जब आपको 10 वर्षों में विशेषज्ञों को खोजने की आवश्यकता होगी, तो यह काफी समस्याग्रस्त होगा।

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