Role of a software architect

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

एक सॉफ्टवेयर आर्किटेक्ट की मुख्य भूमिका

दूसरी ओर, सॉफ्टवेयर आर्किटेक्ट को इस बात की जानकारी होनी चाहिए कि वह सिस्टम बनाने के लिए उपयोग करेगा या नहीं, उदाहरण के लिए, डेवलपमेंट एन्वायरमेंट या प्रोजेक्शन या DevOps का हिस्सा और यहां तक ​​कि बेसिक फंक्शनलिटी (DDD, निरंतर इंटीग्रेशन, TDD) … सभी अच्छे व्यवहार )

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

एक सॉफ्टवेयर टीम में एक सॉफ्टवेयर आर्किटेक्ट होने का महत्व

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

फिर से, एक अच्छा सॉफ्टवेयर आर्किटेक्ट उन समस्याओं को हल कर सकता है जो कंपनी कई वर्षों में हल नहीं कर पाई थी। और एक खराब एक या किसी भी सॉफ्टवेयर आर्किटेक्ट के बिना एक टीम 2-सप्ताह की परियोजना को 1-वर्षीय परियोजना में बदल सकती है। मुझे जोर देने दें, सभी “सॉफ्टवेयर आर्किटेक्ट” अच्छे नहीं हैं।

मैं कहूंगा कि दुनिया में बहुत कम लोग हैं, लेकिन अब सॉफ्टवेयर विकास टीम एक होने के महत्व को समझने लगी है और यह क्षेत्र बहुत तेजी से विकसित हो रहा है। और अनुभव यह साबित करता है कि सॉफ्टवेयर आर्किटेक्ट द्वारा 90% महत्वपूर्ण निर्णय सही लिए जाते हैं। इसके अलावा, वह एक टीम की दक्षता में सुधार कर सकता है, सही लक्ष्य और सिद्धांत निर्धारित कर सकता है।

सॉफ्टवेयर आर्किटेक्ट और सॉफ्टवेयर डेवलपर के बीच अंतर

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

आइए इसे और अधिक विस्तार से देखें:

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

सॉफ्टवेयर डेवलपर – आम तौर पर एक डेवलपर एक विशिष्ट समय में अपनी जिम्मेदारियों के भीतर एक विशिष्ट निर्णय लेता है।

इसे शामिल करने के लिए, मैंने अपने विचार पर प्रकाश डाला कि एक “सॉफ्टवेयर वास्तुकार” एक मानसिक स्थिति है, एक सोचने का तरीका है, डिप्लोमा नहीं। सॉफ्टवेयर वास्तुकार संपूर्ण रूप से सिस्टम के बारे में सोचता है और मैक्रो स्तर पर इसका विश्लेषण भी करता है।

उच्च रखरखाव

स्थिरता तकनीकी ऋण की अनुपस्थिति है। एक आवेदन के एक क्षेत्र में परिवर्तन वास्तव में दूसरों को प्रभावित नहीं करते हैं। सुविधाओं को जोड़ने के लिए बड़े कोड-बेस परिवर्तनों की आवश्यकता नहीं होती है। आवेदन के साथ बातचीत करने के लिए नए तरीके जोड़ना कुछ परिवर्तनों की आवश्यकता है। परीक्षण अपेक्षाकृत आसान है।

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

यदि आप सॉफ्टवेयर आर्किटेक्चर में रुचि रखते हैं, तो मैं आपको नवीनतम रुझानों और सर्वोत्तम प्रथाओं को प्राप्त करने के लिए हमारे मासिक समाचार पत्र की सदस्यता लेने की सलाह देता हूं।

परिवर्तन की विभिन्न दरों का पृथक्करण

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

Role of a software architect

Leave a Reply