स्टार्टअप्स 2022 के लिए रिफ्लेक्टर कैसे करें: कारण और ट्रेडऑफ़

Nov 27 2022
(क्लॉथो वेब साइट से क्रॉस-पोस्ट किया गया) यह ब्लॉग पोस्ट स्टार्टअप सेटिंग में कोड और सिस्टम को रीफैक्टर करने के कारणों पर एक उच्च स्तरीय अवलोकन है। हम 2022 में विचार करने के लिए जोखिमों, दृष्टिकोणों और ट्रेडऑफ़ को कवर करते हैं।

( क्लॉथो वेब साइट से क्रॉस पोस्ट किया गया )

स्टार्टअप सेटिंग में कोड और सिस्टम को रीफैक्टर करने के कारणों पर यह ब्लॉग पोस्ट एक उच्च स्तरीय अवलोकन है। हम 2022 में विचार करने के लिए जोखिमों, दृष्टिकोणों और ट्रेडऑफ़ को कवर करते हैं।

कैसे न्याय करें जब लागत लाभ के लायक है

खुद के साथ ईमानदार हो

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

हमारे शोध से पता चलता है कि मध्यम आकार की कंपनियां और तेजी से बढ़ते स्टार्टअप इंफ्रास्ट्रक्चर जैसे अलग-अलग काम पर इंजीनियरिंग क्षमता का 39% खर्च करते हैं। कहानियों को बुनियादी ढाँचे और रीफैक्टरिंग जैसे उप-कार्यों में विभाजित करें ताकि आप माप सकें कि आपका समय कहाँ जा रहा है।

अच्छी तरह से संरचित अच्छी तरह से बनाए रखा है

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

व्यवसायों में विभक्ति बिंदु

कोड आधार खुद को तीन आयामों पर व्यवस्थित करते हैं: टीम का आकार, नई सुविधाओं की गति और ग्राहकों की संख्या। जब ये संख्याएं महत्वपूर्ण रूप से बदलती हैं, तो यह समय घटकों को विभाजित करने पर विचार करने का हो सकता है।

यदि आप टीम बढ़ा रहे हैं या फीचर विकास की दर बढ़ा रहे हैं, तो सीमित कारक कोड की पठनीयता होगी। लक्षित, अवसरवादी रिफैक्टरिंग के साथ प्रारंभ करें। यदि आपका ग्राहक आधार बढ़ रहा है, तो आपको अधिक मापनीय तकनीकों या कार्यप्रवाहों की आवश्यकता हो सकती है।

आप जो कर सकते हैं उसे नियंत्रित करें, बाकी के लिए योजना बनाएं

सही चुनने से री-आर्किटेक्चरिंग नहीं रुकेगी

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

आसान डायल से शुरू करें...

f चार आयामों में, जिन दो को नियंत्रित करना सबसे आसान है वे हैं नई सुविधाओं की दर और इंजीनियरिंग टीम का आकार। आप नियोजन और प्राथमिकता के बारे में सख्ती से नई सुविधाओं की दर को नियंत्रित कर सकते हैं। टीम को स्केल करना एक धीमी प्रक्रिया है, लेकिन आमतौर पर आप कम से कम इसके लिए योजना बना सकते हैं।

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

…और फिर कठिन पर जाएं

आपकी टीम अविभाजित काम पर जितना समय बिताती है, उस पर लगाम लगाना कठिन हो सकता है, और ग्राहक वृद्धि सभी को प्रभावित करने का सबसे कठिन उपाय है। यदि ये आसान होते, तो हर कोई अविभेदित कार्य को कम कर देता और ग्राहक वृद्धि को अधिकतम कर देता! फिर भी, आप कर सकते हैं

रिफैक्टरिंग के लिए एक सावधान और सक्रिय दृष्टिकोण के साथ समस्याओं से आगे बढ़ें।

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

यदि आपकी टीम अविभाजित कार्य पर बहुत अधिक समय व्यतीत कर रही है, तो यह समय है कि उस वास्तुकला पर फिर से विचार किया जाए जो आपकी कंपनी की आज की स्थिति के लिए बेहतर है।

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

एक लक्ष्य निर्धारित करें, फिर वहां पहुंचने के लिए शॉर्टकट खोजें

एक योजना बनाएं, भले ही वह पूर्ण न हो

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

बड़ी योजनाएं बनाएं, छोटे कदम उठाएं

एक बार जब आप जान जाते हैं कि आप कोड कहां चाहते हैं, तो इसे वहां कैसे प्राप्त करें, इसके बारे में सामरिक रहें। एक समय में एक घटक पर काम करें, या ऐसे घटकों को चुनें जो एक दूसरे से यथासंभव दूर हों। यदि आपने यूनिट और सिस्टम दोनों स्तरों पर ठोस परीक्षण में पहले से निवेश नहीं किया है, तो अब समय आ गया है। परीक्षण आपको विश्वास दिलाएंगे कि आपके परिवर्तन मौजूदा ग्राहक अनुभवों को नहीं तोड़ेंगे, लेकिन वे आपकी टीम को पूर्ण की परिभाषा के साथ आने में भी मदद कर सकते हैं। जब परीक्षण पास हो जाते हैं, तो घटक तैयार होता है!

सबसे अच्छी तकनीक वह है जिसे आप अनुकूलित कर सकते हैं

विशेष रूप से स्टार्टअप्स पर रीफैक्टरिंग और री-आर्किटेक्चरिंग के प्रभाव को कम करने की कुंजी अनुकूलनीय तकनीक का उपयोग करना है।

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

एक अनुकूली वास्तुकला वह है जो आपको किसी भी तकनीक पर अपने एप्लिकेशन को समान रूप से आसानी से होस्ट करने देती है। यह आपको अपनी वर्तमान आवश्यकताओं के अनुरूप होस्टिंग वातावरण को तुरंत समायोजित करने देता है। AWS लैम्ब्डा, Fargate, Kubernetes, gRPC, Linkerd, Azure/GCP जैसे विशिष्ट प्रौद्योगिकी विकल्प विनिमेय हो जाते हैं।

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

एब्स्ट्रक्शन और टूल्स की तलाश करें जो हल्के वजन वाले हैं, लेकिन आपको प्रौद्योगिकियों को स्विच करने के लिए पर्याप्त लचीला है। हमें लगता है कि क्लोथो एनोटेशन बिल को फिट करते हैं, क्योंकि वे आपको अपने आर्किटेक्चर के सिमेंटिक अर्थ को परिनियोजन कॉन्फ़िगरेशन से अलग करने देते हैं - लेकिन रनटाइम लाइब्रेरी और इंफ्रास्ट्रक्चर ऑटोमेशन में पर्याप्त निवेश के साथ, आप स्वयं एक समान समाधान बना सकते हैं।