paint-brush
सॉफ्टवेयर विकास में तेजी लाने के लिए संगठनात्मक बाधाओं को तोड़नाद्वारा@hacker9096769
306 रीडिंग
306 रीडिंग

सॉफ्टवेयर विकास में तेजी लाने के लिए संगठनात्मक बाधाओं को तोड़ना

द्वारा Illia Halashko9m2024/07/13
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

तकनीकी कंपनियों में फीचर डिलीवरी में देरी अक्सर विशुद्ध तकनीकी समस्याओं के बजाय संगठनात्मक मुद्दों से उत्पन्न होती है। कंपनी की संरचना, कर्मचारी पदानुक्रम, टीम की ज़िम्मेदारियों और फीचर डिलीवरी प्रक्रिया को समझकर, आप मूल कारणों की पहचान कर सकते हैं और सुधार के लिए वृद्धिशील परिवर्तन लागू कर सकते हैं।
featured image - सॉफ्टवेयर विकास में तेजी लाने के लिए संगठनात्मक बाधाओं को तोड़ना
Illia Halashko HackerNoon profile picture
0-item


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

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

किसी भी बदलाव या सुधार को लागू करने से पहले अपने काम के माहौल को समझना बहुत ज़रूरी है। हालाँकि इस विषय पर कई व्यावहारिक किताबें लिखी गई हैं, लेकिन सभी दृष्टिकोण हर कंपनी के लिए उपयुक्त नहीं होंगे। यह कुछ गलत करने का प्रतिबिंब नहीं है, बल्कि प्रत्येक कंपनी की अनूठी प्रकृति की स्वीकृति है।

एक महत्वपूर्ण बात यह है कि यहां साझा की गई जानकारी मुख्य रूप से सॉफ्टवेयर विकास से संबंधित है और 50 या अधिक कर्मचारियों वाली कंपनियों या विभागों पर सबसे अधिक लागू होती है।

संगठनात्मक संरचना

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

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



एक बार जब आपके पास अपने संगठनात्मक ढांचे का स्पष्ट आरेख तैयार हो जाए, तो आगे क्या होगा?

कर्मचारी पदानुक्रम

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

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



टिप्पणी

सीईओ — मुख्य कार्यकारी अधिकारी
सीपीओ - मुख्य उत्पाद अधिकारी
सीटीओ - मुख्य तकनीकी अधिकारी
सीओओ - मुख्य परिचालन अधिकारी
एच.डी. — डिजाइन प्रमुख
पीओ — उत्पाद स्वामी
महामहिम — इंजीनियरिंग प्रमुख
एचएस — बिक्री प्रमुख
एचएम - विपणन प्रमुख
डी — डेवलपर
पीएम — उत्पाद प्रबंधक
टीएल — टेक लीड
ईएम — इंजीनियरिंग मैनेजर
एस — बिक्री प्रबंधक
एम — मार्केटर


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


एक विभाग पर अपने कर्मचारी पदानुक्रम का मानचित्रण करना

टीम की जिम्मेदारियां

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

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

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

कर्मचारी की जिम्मेदारियां

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

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

सुविधा वितरण प्रक्रिया

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

कृपया, यहाँ CI/CD जैसे तकनीकी पहलुओं पर ध्यान न दें, बल्कि व्यवसाय से डेवलपर्स तक के प्रवाह पर ध्यान दें, यह मानते हुए कि डेवलपर्स कोड लिखते हैं और इसे सीधे उत्पादन में तैनात करते हैं। इसका उद्देश्य व्यवसाय से टीम तक आपकी प्रक्रिया में किसी भी समस्या की पहचान करना है और यह देखना है कि कर्मचारी इसके साथ कितनी अच्छी तरह तालमेल बिठाते हैं।

इन पहलुओं पर विचार करें:

  • आप कितनी बार नई सुविधाओं की योजना बनाते हैं और प्रत्येक विभाग और टीम को कार्य सौंपते हैं?
  • आप प्रमुख निष्पादन संकेतक कैसे निर्धारित और मापते हैं?
  • क्या आप मील के पत्थर का उपयोग करते हैं? उनकी प्रारंभिक तैयारी में कौन शामिल होता है? आप टीम के साथ उनकी योजना कैसे बनाते हैं?
  • योजना एवं कार्यान्वयन प्रक्रिया का समन्वय कौन करता है?
  • क्या आप वाकई एक चुस्त कंपनी हैं? क्या आप SAFe, Prince2 या PMP जैसे फ्रेमवर्क का इस्तेमाल करते हैं, या आपके पास कुछ ऐसा कस्टमाइज़्ड है जो आपके लिए काम करता है?
  • आप क्रॉस-टीम जटिल कार्यों को कैसे संभालते हैं और प्रगति को कैसे नियंत्रित करते हैं? क्या आपके पास एक संरचित दृष्टिकोण है, या आप इस बात पर भरोसा करते हैं कि चीजें किसी तरह हल हो जाएंगी?

याद रखें, प्रबंधन और रिपोर्टिंग का प्रत्येक स्तर जटिलता और अनिश्चितता को बढ़ाता है, चाहे दिशा कुछ भी हो। अंततः, आपके प्रक्रिया आरेख को एक सरल प्रश्न का उत्तर देना चाहिए: "कैसे?"

आप टेम्पलेट्स के साथ खेल सकते हैं और इसे अपनी ज़रूरतों के हिसाब से समायोजित कर सकते हैं। यहाँ डिलीवरी प्रक्रिया का बहुत ही उच्च स्तरीय उदाहरण है, जिसमें डिलीवरी को नियंत्रित करने वाले प्रमुख खिलाड़ी नहीं हैं, लेकिन समय-सीमा के साथ।



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

प्रतिक्रिया एकत्रित करें

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

कर्मचारियों से अपने दस्तावेज़ों की गुणवत्ता का मूल्यांकन करने के लिए कहें। वे डिलीवरी प्रक्रिया के बारे में क्या सोचते हैं? क्या यह वास्तव में दर्शाता है कि काम कैसे किया जाता है? उन्हें कहाँ बाधाएँ नज़र आती हैं?

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

अनुमानित परिणाम

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

यहां कुछ ऐसे क्षेत्र दिए गए हैं जिन पर ध्यान देना चाहिए:

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

अंत में आप अपनी कंपनी की वास्तविक समस्याओं की एक सूची तैयार कर सकते हैं, जिस पर आप काम करेंगे। उन्हें प्राथमिकता दें, महत्वपूर्ण समस्याओं से लेकर जिन्हें तत्काल समाधान की आवश्यकता है और “अच्छे” सुधारों तक।

परिवर्तन कैसे करें

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

आपकी सुधार प्रक्रिया को निर्देशित करने के लिए यहां कुछ चरण दिए गए हैं:

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


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

सारांश

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

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