एक विकास मंच से दूसरे में मेरा बहुराष्ट्रीय संक्रमण कैसे हो सकता है?


10

मैं एक बड़ी, अंतर्राष्ट्रीय कंपनी के आईटी विभाग में कार्यरत हूं। हम व्यापार के लिए अलग-अलग इंट्रानेट एप्लिकेशन विकसित कर रहे हैं (शिकायतें, छूट, सेवा डेस्क आदि)। अब हमने PHP प्लेटफ़ॉर्म से .NET पर माइग्रेट करने का निर्णय लिया (MS CRM Dynamics, Exchange और MS Office के साथ एकीकरण कई कारणों से)। जैसा कि लगभग 20 अलग-अलग अनुप्रयोग हैं जो व्यापार वर्तमान, पीएचपी प्लेटफॉर्म पर उपयोग कर रहा है, हमें उन सभी को नए प्लेटफॉर्म पर ले जाने के लिए सबसे अच्छा तरीका है। मैं विवरण में नहीं जाना चाहता कि कोड आदि को कैसे बदलना है, जबकि हम प्रवास करते हैं हम इन सभी अनुप्रयोगों में सुधार करना चाहते हैं।

इसलिए हम इन ऐप्स को स्थानांतरित करने के 2 मुख्य तरीकों के साथ आए:

  1. सिर्फ एक मंच का समर्थन करें। इसका क्या मतलब होगा? होमपेज बनाएं और सचमुच सभी ऐप को माइग्रेट करें क्योंकि वे .NET पर हैं (उन्हें सुधारते समय हम ऐसा करते हैं)। न्यू इंट्रानेट के चलने के बाद हम माइग्रेट किए गए अनुप्रयोगों का पुनर्निर्माण शुरू करेंगे और उनमें सुधार करेंगे। PHP प्लेटफॉर्म को सपोर्ट करते हुए हमें .NET में इंट्रानेट डेवलप करने से बचाएगा।

  2. कुछ समय के लिए दोनों प्लेटफार्मों का समर्थन करें। इसका मतलब होगा कि सिर्फ एक होमपेज और 1 या 2 नए एप्लिकेशन (जो हमारे PHP प्लेटफॉर्म पर मौजूद नहीं हैं) का निर्माण। उपयोगकर्ताओं को ये उपलब्ध करा रहे हैं लेकिन PHP प्लेटफ़ॉर्म से दूर नहीं कर रहे हैं (हम उपयोगकर्ताओं को PHP पेज और नए एक पर ऐप के बीच स्थानांतरित करना आसान बनाने के लिए मेनू और लिंक शामिल करेंगे)। फिर हम उन्हें सुधारते हुए PHP अनुप्रयोगों को फिर से लिखना शुरू करेंगे।

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

क्या आप में से कोई भी इस तरह से आया है? तुम क्या चुनोगे? या शायद वहाँ भी अलग है, बेहतर तरीका है जो मैंने प्रस्तुत किया है? मैं जानना चाहूंगा कि आप क्या सोचते हैं और आप कैसे दृष्टिकोण करेंगे।


1
# 2 # 1 का एक कदम नहीं है?
ताए-सुंग शिन

नहीं, ये 2 अलग चीजें हैं। 1 में हम उपयोगकर्ताओं को इसका उपयोग करने की अनुमति देने से पहले संपूर्ण इंट्रानेट पर माइग्रेट करेंगे और फिर हम ऐप्स को बेहतर बनाने पर काम करेंगे। 2 में हम इंट्रानेट के आवश्यक भाग को माइग्रेट करेंगे, उपयोगकर्ताओं को इसका उपयोग करने की अनुमति देंगे, और फिर अन्य एप्स को माइग्रेट करना शुरू करेंगे और जब हम माइग्रेट करेंगे तब उन्हें

@greengit: विषय को पढ़ें, अन्य के साथ एकीकरण, व्यावसायिक महत्वपूर्ण अनुप्रयोग इसका एक कारण है। मेरा सवाल हालांकि 'क्यों नहीं माइग्रेट करना है', लेकिन 'कैसे माइग्रेट करना है' के बारे में इलाज नहीं है।
डैनियल ग्रूसज़िक

मैंने इस विषय को पढ़ा था और उसी प्रश्न का उत्तर दिया था। मुझे बहुत संदेह है कि क्या परियोजना कभी भी उचित हो सकती है। क्या आप हमें कंपनी का नाम बता सकते हैं ताकि हम इसे संक्षिप्त रूप से बेच सकें? ;)
mcottle

हाहा, मैं लागत के बारे में ईमानदार होने की परवाह नहीं करता हूं क्योंकि मैं कंपनी के साथ काम करने वाले प्लेसमेंट पर सिर्फ एक आईटी छात्र हूं। मैं सिर्फ अपने ज्ञान के लिए कह रहा हूँ ... जाहिर है मेरे प्रबंधक ने सीईओ से आगे बढ़ने के लिए लागतों को उचित ठहराया है ...
डैनियल ग्रूसज़िक

जवाबों:


5

चलो दोनों परिदृश्य पर विचार करें:

सब कुछ-एक बार प्रवास

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

टुकड़ा-दर-टुकड़ा प्रवास

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

निष्कर्ष

व्यक्तिगत अनुभव से मैं आपको दो बातें बता सकता हूं:

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

आपने बहुत ही पेचीदा बिंदु बनाए हैं। हालाँकि यह स्वयं पर निर्भर नहीं है कि हम प्लेटफ़ॉर्म को स्विच करते हैं या नहीं, और मैं कंपनी के लिए काम करूंगा, केवल सितंबर के अंत तक (मैं यूनी वर्क प्लेसमेंट पर उनके साथ हूं)। PHP से .NET पर स्विच करना एक अच्छा विचार हो सकता है, क्योंकि पुराने PHP फ्रेमवर्क के बाद से हमें कुछ MAJOR कार्यों, डेटाबेस की आवश्यकता होगी, इस समय कंपनी जो सिस्टम उपयोग करती है वह OLD है और इसे उन लोगों द्वारा बनाया गया है जिनके पास महान विकास कौशल नहीं थे। ..
डैनियल ग्रूसज़क

यह भी मेरा सवाल होगा: क्या पुराने प्लेटफॉर्म पर 'चेंज फ्रीज' एक अच्छा विचार है? मेरे कहने का मतलब यह है कि जब तक हम .NET को दिए गए एप्लिकेशन को आगे बढ़ाना शुरू नहीं करते, तब तक बग फिक्स के अलावा पीएचपी प्लेटफॉर्म पर मौजूदा सिस्टम में कोई भी बदलाव जमे हुए हैं। मेरे प्रवास की योजना का हिस्सा मेरे प्रबंधक हैं ...
डैनियल ग्रूसज़क सिप २'११ को .:

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

एक और बिंदु: यदि सिस्टम को फिर से बनाया जा रहा है, तो इस बार बेहतर कोड गुणवत्ता सुनिश्चित करने के लिए कौन से सुरक्षित-गार्ड हैं? मैंने एक एप्लिकेशन देखा है जो प्लेटफ़ॉर्म और कोड गुणवत्ता के मुद्दों के कारण 4 बार फिर से लिखा गया था।
जोएरी सेब्रचेट्स 10

2

वित्तीय कारण से, मैंने जिन कंपनियों के साथ काम किया है, वे दूसरे दृष्टिकोण के साथ गए हैं, सही है कि मैं जोड़ सकता हूं। उन्हें # 1 हासिल करने में बहुत पैसा, समय और जोखिम लगता है। उपयोगकर्ता ज्यादातर # 2 को तब तक समझेंगे जब तक वे आपकी प्रगति और उनके साथ बातचीत को देखते हैं। इस दुबली और क्षुद्र अर्थव्यवस्था में, मुझे संदेह है कि कोई भी # 1 दृष्टिकोण लेगा।


ठीक ऐसा ही मेरा विचार था। मेरा प्रबंधक # 1 के साथ आगे बढ़ना चाहता है, जिसे मुझे समझना मुश्किल है।

2

बिग बैंग एप्रोच शायद ही रचनात्मक हो जहाँ तक एंड-यूज़र्स का सवाल है। मैं इसके खिलाफ सलाह दूंगा और ईमानदार होने के लिए मैं विश्वास नहीं कर सकता कि कोई भी गंभीरता से इस पर विचार करेगा कि संबंधित आवेदनों की संख्या को देखते हुए एक विकल्प के रूप में।

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

इसके अतिरिक्त, यदि आपकी वेब सेवाओं पर आधारित अनुप्रयोगों के भारी थोक पहले से ही php में लिखे गए हैं, तो .Net विशेषज्ञता कैसे उपलब्ध है?

मुझे लगता है कि या तो आपके उपयोगकर्ताओं को बदलाव का अनुभव करना है, या तो बड़ा धमाका करना है (बहुत सारे समर्थन कॉल) या टुकड़ा (परिचितता बढ़ाना)। मुझे लगता है कि आप वास्तव में पूरी तरह से पूरी तरह से .p या तो पूरी तरह से सभी पीपी के पास होने से जाने के लिए किया जा रहा है कितना वास्तव में आकार नहीं है के लिए इच्छुक हूँ।


मुझे लगता है कि यह सिर्फ दो अलग प्लेटफार्मों का समर्थन करने या नहीं करने की तुलना में अधिक जटिल है। किसी भी तरह से वास्तव में अच्छा तरीका नहीं है ... आपके समय के लिए धन्यवाद!
डैनियल ग्रूसज़िक

1

सबसे पहले, मैं जोरी के हर बात से सहमत हूं।

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

विकल्प दो का अर्थ है कि आप समय की विस्तारित अवधि के लिए दोनों तकनीकों का समर्थन करेंगे। समय की यह अवधि आपके विचार से अधिक लंबी होगी और आप स्थायी रूप से खंडित पारिस्थितिकी तंत्र के साथ समाप्त हो सकते हैं - अर्थात PHP कोड की एक महत्वपूर्ण राशि जो नए .NET कोड के साथ मिश्रित फिर से लिखना आर्थिक नहीं है।

जो कोई भी यह सुझाव दे रहा है, उसके खिलाफ कड़ी मेहनत करें। .NET में सब कुछ फिर से लिखने के लिए सुझाए गए उत्पादों के साथ PHP अनुप्रयोगों को एकीकृत करने के लिए कोड लिखना बहुत सस्ता होगा। फिर उत्पादों के साथ फिर से लिखे गए कोड को एकीकृत करें, मत भूलना, यदि आप .NET का उपयोग करते हैं तो एकीकरण जादुई रूप से नहीं होगा। ।

एक और बात, PHP कोड की लाइनों की संख्या ले लो और इसे फिर से लिखने के लिए आपको कितने समय और कितने डेवलपर्स की आवश्यकता होगी, इसका अंदाजा लगाने के लिए एक COCOMO 2 टूल में डालें।


अच्छी बात। यदि आप सिस्टम को माइग्रेट करते हैं या नहीं, तो आप क्या करेंगे, तब आप क्या करेंगे। आप कौन सा दृष्टिकोण चुनेंगे? या मायबे उनके पास एक और दृष्टिकोण है जिसे मैंने सूचीबद्ध किया है? यदि आपका प्रबंधक आपसे सहमत नहीं होगा, तो क्या आप यह साबित करने की कोशिश करेंगे कि आपका दृष्टिकोण बेहतर है?
डैनियल ग्रूसज़िक 13

एक अधिक स्तरित "सेवा उन्मुख" तरीके से PHP अनुप्रयोगों को लिखें। PHP और Microsoft भूमि के बीच इंटरफ़ेस को बफ़र करने के लिए एंटरप्राइज़ सर्विस बस का उपयोग करें। प्रमुख बात COCOMO का अनुमान है, जो आपके प्रबंधक से जीवित पुनर्लेखन को डराना चाहिए।
mcottle

1

आपके पास एक तीसरा विकल्प है: -

अपने विंडोज़ सर्वर और आईएसएस के लिए php कोड माइग्रेट करें (जैसा कि आप .NET चलाने की योजना बनाते हैं!)

तब आप अपने उपयोगकर्ताओं को किसी एकल सिस्टम की तरह दिखने के साथ .NET में नए एप्लिकेशन जोड़ सकते हैं (और धीरे-धीरे कुछ पुराने को .NET में बदल सकते हैं)।


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