हाल ही में मैंने एक ऐसी परियोजना पर काम करना शुरू किया, जहाँ एक बहुत पुराने अखंड अनुप्रयोग को माइक्रो-सर्विस-आधारित वास्तुकला में माइग्रेट किया जा रहा है।
विरासत कोडबेस बहुत गन्दा है ('स्पेगेटी कोड') और अक्सर एक जाहिरा तौर पर सरल फ़ंक्शन (जैसे "मल्टीवैल्यू बाइटेन" के रूप में नामित) बाद में "3 अलग-अलग स्कीमाओं में 10 तालिकाओं के लिए सत्यापन कोड की हजारों लाइनें" के रूप में प्रकट होता है।
अब मेरा बॉस (सही है) मुझसे यह अनुमान लगाने के लिए कह रहा है कि नई वास्तुकला में फीचर एक्स को लिखने में कितना समय लगेगा। लेकिन मैं एक यथार्थवादी आकलन के साथ आने में कठिनाइयों का सामना कर रहा हूं; अक्सर मैंने ऊपर बताए गए कारणों के कारण कार्य को बहुत कम कर दिया है और अपने आप को शर्मिंदा करता हूं क्योंकि मैं समय पर समाप्त नहीं कर सकता।
समझदार बात वास्तव में कोड में मिल सकती है, प्रत्येक शाखा को नोट करें और अन्य कार्यों को कॉल करें और फिर समय की लागत का अनुमान लगाएं। लेकिन पुराने कोड के दस्तावेजीकरण और वास्तव में नए संस्करण को लिखने के बीच वास्तव में एक मामूली अंतर है।
मुझे इस तरह से परिदृश्य कैसे देखना चाहिए?
जबकि मैं पूरी तरह से समझता हूं कि विरासत कोड रीफैक्टरिंग कैसे काम करता है, मेरा सवाल "रिफैक्टर / पुनर्लेखन कैसे करना है?" लेकिन "एक्स / रिफैक्ट्री पार्ट एक्स को फिर से लिखने में कितना समय लगेगा?"