कुछ बिंदु पर एक कार्यक्रम विकास में है। सुविधाओं को हर समय जोड़ा या हटाया या बदला जा रहा है। हर संस्करण एक प्रोटोटाइप के अलावा कुछ भी नहीं है। इसलिए मैं उस समय सुपर क्लीन कोड लिखने में ज्यादा समय बर्बाद नहीं करता क्योंकि मुझे कभी नहीं पता कि कुछ समय तक रहता है। बेशक मैं कुछ मानकों पर कोड की गुणवत्ता को बनाए रखने की कोशिश करता हूं, लेकिन समय हमेशा एक मुद्दा है।
फिर वह बिंदु आता है जहां कार्यक्रम समाप्त हो गया है और निर्णय निर्माता ने कहा कि "यह बात है"। मेरे पास इस बिंदु पर एक कार्यशील प्रोटोटाइप है, लेकिन अंदर का कोड विकास के चरण के दौरान आगे और पीछे से थोड़ा गड़बड़ है। मुझे परीक्षण / अंतिम डिबगिंग शुरू करने की उम्मीद है, लेकिन मेरी आंत कहती है कि मुझे अब किसी तरह सफाई करनी चाहिए या सामान को फिर से लिखना चाहिए ताकि इसे उचित वास्तुकला प्रदान की जा सके जो रखरखाव आदि को आसान बनाता है।
एक बार जब सामान का परीक्षण और अनुमोदन हो गया, तो यह फिर से लिखने के लिए कोई मतलब नहीं है। एक नियमित आधार पर मैं एक कार्यशील 'समाप्त' प्रोटोटाइप के साथ वहां खड़ा हूं और मुझे परीक्षण के दौरान एक बग मिलता है और मैं देखता हूं कि यह नॉट-स्मार्ट कोडिंग का परिणाम है जो संपूर्ण विकास प्रक्रिया का एक परिणाम है। मैं परीक्षण के बीच में हूं और बगफिक्स फिर से लिखना होगा ... यह एक गड़बड़ है!
बेहतर / पाठ्यपुस्तक के तरीके हैं, मुझे यकीन है। लेकिन मुझे एक वास्तविक कार्य वातावरण में काम करना होगा जहां सब कुछ पाठ्यपुस्तक नहीं है।
तो एक स्थिर कोड बेस के साथ मैं अपने वर्किंग प्रोटोटाइप को रिलीज़ संस्करण में कैसे बदलूं? हो सकता है कि मुझे एक बार किए गए विकास पर विचार नहीं करना चाहिए और वास्तव में इसे क्लीन-अप चरण के रूप में देखना चाहिए ... मुझे नहीं पता, मुझे यहां मदद की आवश्यकता है।
संपादित करें
मैं कुछ बातें स्पष्ट करना चाहता हूं।
मैं इसे ठीक से करने से पहले 100% हूं और बाद में नहीं, कोड साफ और पठनीय है। लेकिन मुझे भी काम करना होगा और कोड की सुंदरता के बारे में सब साफ और चमकदार नहीं हो सकता। मुझे एक समझौता खोजना होगा।
अक्सर एक नई सुविधा वास्तव में सिर्फ एक चीज होती है जिसे हम आज़माना चाहते हैं और देखते हैं कि क्या यह इस तरह से कुछ को लागू करने के लिए समझ में आता है। (मोबाइल ऐप में जासूसी, वास्तविक डिवाइस पर वास्तविक रूप से देखने और महसूस करने के लिए) इसलिए यह कुछ छोटा है जो (imho) पहले "चलो देखते हैं" पुनरावृत्ति में बहुत अधिक काम का औचित्य नहीं रखता है। हालांकि कभी-कभी यह सवाल उठता है कि मैं इस Tech.debt का भुगतान कैसे करूं? यही सवाल है।
अगर मुझे पता है कि एक दिन बाद आधी सुविधाओं को गिरा दिया जाएगा (अब तक हमारी कंपनी में पर्याप्त अनुभव), तो मुझे वास्तव में यह विश्वास करना कठिन लगता है कि मेरी समस्या से निपटने का सबसे अच्छा तरीका फिर भी सब कुछ साफ लिखने के लिए अतिरिक्त समय निवेश करना है, भले ही इसके कुछ समय बाद ही इसे गिरा दिया जाएगा। यह मुझे लगता है कि अगर मैं एक बार ठोस काम करता हूं, तो मैं समय की बचत करूंगा, इसलिए मेरा सवाल है।