2009-05-06 9 views
5

एक आम घटक एक पुस्तकालय या कोड का कुछ अन्य टुकड़ा है जिसे एक समूह द्वारा बनाया और बनाए रखा जाता है और कई समूहों द्वारा उपयोग किया जाता है।आपका संगठन सामान्य घटकों को कैसे संभालता है?

कुछ समस्याओं हमारे पास हैं:

  • उन घटकों के साथ समस्याओं की रिपोर्ट नहीं है।
  • उपयोगकर्ता अपनी आवश्यकताओं के अनुरूप घटकों को कामकाज बनाते हैं।
  • वे अपनी समयसीमा को पूरा करने के लिए ट्रंक संस्करण के साथ संगतता तोड़ते हैं।
  • उपयोगकर्ता अपने स्वयं के (कम मजबूत) समाधान कोडिंग को समाप्त करते हैं क्योंकि उन्हें लगता है कि यह बेहतर है।

आपका संगठन सामान्य घटकों को कैसे संभालता है?

विचार मेरे पास है:

  • एक ओपन सोर्स प्रोजेक्ट की तरह घटक इलाज और पैच प्रस्तुत करने के लिए टीमों की आवश्यकता है।
  • कोड में कस्टम संशोधन को पूरी तरह से अस्वीकार करें।
  • ...

उत्तर

2

आपके पास जो कुछ है वह एक तकनीकी कारक की बजाय मानव कारक समस्या हो सकती है। असल में यह प्राथमिक रूप से एक सीखने का मुद्दा हो सकता है (सामान्य रूप से यहां सिंड्रोम का आविष्कार नहीं किया गया है)।

बड़ी कंपनियों में काम करने के बाद, मुझे एहसास हुआ कि एक नए व्यक्ति को उनके लिए उपलब्ध सभी संसाधनों (यानी साझा कोड पुस्तकालय) को समझना मुश्किल है, उन्हें कितनी कम और कब सही तरीके से उपयोग करना है।

जब आपके पास कोई नया किराया है, तो क्या उसे आपकी सामान्य घटक लाइब्रेरी में औपचारिक प्रशिक्षण दिया जाता है?

तब लोगों की क्या समस्या है, इसकी समस्या है। समीक्षा समय पर प्रबंधकों ने आम घटकों का उपयोग करने, उन्हें सुधारने और पुस्तकालय में सुधार वापस करने के लिए लोगों को पुरस्कृत किया है? या प्रबंधकों को बस अपनी परियोजनाओं की परवाह है।

आपके समूह के लिए जो सामान्य पुस्तकालय को बनाए रखता है, वे लोगों को क्या फॉर्म या पुनर्संरचना देते हैं जो सुझाव देने या सुधार करने के लिए समय लेते हैं? क्या वे कंपनी न्यूजलेटर में लिखे गए हैं? नकद बोनस प्राप्त करें? बुलिटन बोर्ड पर अपनी तस्वीर प्राप्त करें?

याद रखें, लोगों को ऐसी कंपनी के लिए कुछ करने की संभावना नहीं है जिसके लिए उन्हें कोई मान्यता या इनाम नहीं मिलता है।

+0

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

+0

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

+0

मेरे विशेष संगठन में, मैं पूरी तरह से एमजीएम के आरक्षण से असहमत नहीं हूं। पिछले कुछ सालों में, मैंने जो कुछ सीखा है, वह यह है कि मेरा संगठन नहीं जानता कि सॉफ्टवेयर को अच्छी तरह से कैसे लिखना है, या सॉफ्टवेयर जोखिम को अच्छी तरह से प्रबंधित करना है। वे इतने लंबे समय से इतने लंबे समय से रहे हैं कि मृत वजन "lifers" बहुत कम लोगों की तुलना में काफी अधिक है जो वास्तव में कम रखरखाव, उच्च गुणवत्ता वाले सॉफ्टवेयर बनाने की परवाह करते हैं।मेरा विशेष समूह का "वरिष्ठ डेवलपर" अपने सी # कक्षाओं में एक स्थिर "मुझे" चर बनाता है और इसे "उदाहरण" को उसके उदाहरण ctor में निर्दिष्ट करता है, उदा। अगर आप कभी दूसरा उदाहरण बनाते हैं तो यह बदसूरत है। :( –

1

केवल सफल घटक मैं यहाँ के आसपास देखा है एक संकलित संस्करण में पुनः वितरित किया जाता (* .dll)। उपयोगकर्ता बग की रिपोर्ट करते हैं और सीधे टीम के साथ सुविधाओं का अनुरोध करते हैं, और वे स्वयं को लागू करते हैं। सामानों के लिए अपने स्वयं के प्लगइन लिखने के लिए एक एपीआई है जो बदलने की सबसे अधिक संभावना है, इसलिए लोग कई मामलों में कार्यक्षमता बढ़ा सकते हैं।

वहाँ हमेशा के लिए

  • समझाने लोगों को अपने घटक
  • उपयोग करने के लिए

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

1

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

1

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

2

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

स्वाभाविक रूप से यह कुछ प्रकार के घटकों के लिए बेहतर काम करता है (उदाहरण: हमने हाल ही में पीडीएफ निर्माण सेवा बनाई है) शायद (स्ट्रिंग मैनिपुलेशन यूटिलिटी के लिए ओवरकिल)।

1

संगठन कितना बड़ा है? मैंने यह सामान एक छोटे संगठन (कुछ दर्जन प्रोग्रामर कुल) में बहुत अच्छी तरह से संभाला है, जहां एक या दो व्यक्तियों को प्रत्येक घटक का स्वामित्व माना जाता है, और फीचर अनुरोधों के प्रति उत्तरदायी होते हैं।

  • की उम्मीद जिस तरह से आप क्या चाहते करने के लिए, जोड़ने के लिए
  • समझौता:

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

  • अनुमति,

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

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

+0

लगभग 50 डेवलपर। –

+0

यह उस कंपनी के साथ तुलनीय है जिसे मैं सोच रहा हूं, फिर भी। संस्कृति के साथ बहुत कुछ करना था - वरिष्ठ डेवलपर्स जानबूझकर बहुत उपलब्ध थे, और आम घटक केवल काले-बॉक्स थे उपयोगकर्ता उन्हें बनना चाहता था। स्रोत के ज्ञान के आधार पर विस्तृत परिवर्तन प्रस्तावित करना पूरी तरह से ठीक था, यह देखने के लिए कि यह एक घटक में एक संगतता-ब्रेकिंग परिवर्तन को धक्का देना कितना आसान होगा, पूरे भंडार की जांच करें। –