किसी प्रोजेक्ट के लिए # प्रोग्रामर्स का निर्धारण कैसे करें


18

आप कैसे जानते हैं कि किसी विशेष परियोजना के कितने प्रोग्रामर को सफल होने की आवश्यकता है?

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

यह परियोजना हर दिन कोड की एक चौथाई मिलियन लाइनों के साथ जटिल और बढ़ती जटिलता में है। यह VB.NET कोड की लगभग 250,000 लाइनें, Ruby कोड की 6,200 लाइनें और PHP की शायद 5,000 लाइनें हैं। इसमें लगभग 200 टेबल के साथ MySQL डेटाबेस भी है।

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

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

वर्तमान में, हमारे पास केवल एक प्रोग्रामर के रूप में ही है, लेकिन मुझे विश्वास नहीं है कि यह पर्याप्त है। क्या किसी के पास कोई सिफारिश है कि कितने प्रोग्रामर के पास इस परिमाण की परियोजना होनी चाहिए या हमें उस प्रश्न का उत्तर निर्धारित करने के बारे में कैसे जाना चाहिए? विशेष रूप से इस तथ्य को देखते हुए कि प्रबंधन अगले वर्ष तक उत्पाद को व्यावसायिक गुणवत्ता वाला बनाना चाहेगा?


11
मैं एक हल्के-फुल्के मज़ाक का इंतज़ार कर रहा था :(
उबेद

lol ... शीर्षक शीर्षक और आप शायद कुछ मिल जाएगा। जब मैं गुगली कर रहा था तो मुझे वास्तव में उन दुर्घटनावश लोल का एक गुच्छा मिला।
kstevens715

8
यदि आवश्यकताएं बदलती रहती हैं, तो अतिरिक्त उत्पादों की कोई संख्या इस उत्पाद को दरवाजे से बाहर भेज दी जाएगी। आपको पहले आवश्यकताओं को पूरा करना पड़ता है।
ऊद

मेरे मामले में यह निश्चित रूप से सच है। मुझे पता है कि मैं जो सवाल पूछ रहा हूं वह बहुत जवाबदेह नहीं है। लेकिन अगर मैं तुलना कर सकता हूं कि अन्य लोग किस तरह की परियोजनाओं पर काम कर रहे हैं और कितने लोग उन परियोजनाओं में पूर्णकालिक रूप से शामिल हैं, तो शायद इससे मदद मिलेगी।
kstevens715

यह सवाल बहुत के समान प्रतीत हो रहा है इस सवाल का । शायद आपको उपयोगी होने के लिए कुछ उत्तर भी मिलेंगे।
रॉबिन्स

जवाबों:


3

मैं कम से कम 5 व्यक्तियों को कहूंगा। परीक्षण के लिए एक, कल्पना, समर्थन और प्रलेखन और 3 डीवाईएस के लिए एक। आपके मामले में बहुत सी चीजों का परीक्षण किया जाना है, इसलिए 50% समर्पित परीक्षक अनुचित नहीं होना चाहिए। आवश्यकताओं को लिखने वाला व्यक्ति और परीक्षण आदि के लिए अपना इन्फ्रा स्ट्रक्चर स्थापित करने के लिए ग्राहक सहायता होना चाहिए। तीन डेवलपर्स मुझे लगता है कि इस तरह की परियोजना के लिए काफी कम है। एक बड़ा बैक एंड जो कई थर्ड पार्टी सिस्टम के साथ इंटीग्रेटेड है और पूरी तरह से बहुत सारी कस्टमाइज़्ड रिपोर्ट्स के साथ सामने है। मैं लेना पसंद करूँगा।

  1. एक अच्छा बैक एंड डेवलपर (दृढ़ता / व्यवसायिक परत)
  2. एक्शन क्लासेस और जावास्क्रिप्ट सीएसएस डिज़ाइन बनाने वाला एक अच्छा मध्य छोर / फ्रंट एंड डेवलपर।
  3. एक अच्छा सराउंड डेवलपर एक्टिंग आर्किटेक्ट, लेकिन दो अन्य से विशेषज्ञ की मदद से सभी परतों में कोड बनाना। यह डेवलपर JUnit फ्रेमवर्क मावेन जेनकिंस गिट ब्रांचिंग और इतने पर स्थापित करने जैसी चीजें भी कर सकता है।

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


1
मैंने पिछली गर्मियों में 2 दिन की छुट्टी ली थी और किसी को अपना लैपटॉप पाने के लिए मेरे घर में तोड़ना पड़ा ... हाँ। मैं हमेशा वैक्यूम में काम करने के बारे में बात करता हूं क्योंकि मेरे पास बातचीत करने के लिए कई अन्य डेवलपर्स नहीं हैं। और एक छोटे से शहर में रहने वाले किसी भी उपयोगकर्ता समूह या कुछ भी शामिल होने के लिए नहीं हैं। हमने (मैंने?) हाल ही में परीक्षण कोड लिखना शुरू किया, वास्तव में जब हमने रेल को संक्रमण करना शुरू किया। मैं पहले से ही परीक्षण के बिना विकसित होने की कल्पना नहीं कर सकता। मुझे 50% समर्पित परीक्षक होने का विचार पसंद है।
kstevens715

1
कम से कम एक देव एक डेटाबेस सेपियनिस्ट होना चाहिए।
HLGEM

8

के बार बार बार मुश्किल दुनिया में आपका स्वागत है resourcing !

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

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

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

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


स्कोप 250K SLOC सिस्टम के पूर्ण पुनर्लेखन में प्रतीत होगा जो कि सिक्रेटवैप क्वालिटी (या कम से कम कंसल्टेंसी क्वालिटी) में है। लाभ यह है कि आवश्यकताओं को इकट्ठा करना और समग्र डिजाइन संभवतः पहले से ही किया गया है। यह छोटा नहीं है, और एक डेवलपर के लिए कुछ नहीं है जिसके पास अन्य जिम्मेदारियां हैं।
डेविड थॉर्नले

@DavidThornley यह डेवलपर्स के कर्तव्यों, उसके समय सीमा, उसके कार्यभार के दायरे पर अत्यधिक निर्भर है, कैसे उसकी कंपनी पहले से ही उत्पाद का विपणन कर रही है। मैंने कई जटिल परियोजनाओं को 1-2 व्यक्ति टीम द्वारा काम किया है जो बहुत सफल रहे हैं क्योंकि वे अच्छी तरह से प्रबंधित किए गए थे ... और कई और जो असफल रहे हैं। मैं इस बात से सहमत हूं कि कार्य एक बड़ा है, और यह अपने आप में पहले से ही पुनरुत्थान के संदर्भ में एक लाल झंडा है। बात यह है कि, पहले केवल थोड़ा सा होमवर्क किए बिना बहुत से लोगों को काम पर रखने के लायक नहीं है, जो वास्तव में मेरे जवाब का बिंदु है। :-)
रॉबिन्स

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

6

उत्पाद / परियोजना की सफलता उस कंपनी की प्रतिबद्धता पर निर्भर करेगी जो इसके लिए भुगतान कर रही है। यदि वे अधिक प्रोग्रामर / सपोर्ट स्टाफ रखने जा रहे हैं, तो एक प्रोग्रामर से उत्पादकता में कमी आएगी, जो जानते हैं कि उन्हें प्रशिक्षित करना, सिखाना, प्रबंधन करना आदि है। ऐसा नहीं है कि यह एक बुरी बात है .. लेकिन वहाँ होगा किसी भी वृद्धि का एहसास होने से पहले कमी हो सकती है .. व्यापार विश्लेषकों, प्रबंधकों, बिक्री, और उत्पाद के समर्थन की आवश्यकता होने के बाद एक बार उपलब्ध होने की आवश्यकता है।

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

क्या आपके पास कोई अच्छा विश्लेषण / कल्पना / अनुमान प्रक्रिया है? यदि नहीं, तो अभी शुरू करें , आप स्वयं से ऐसा कर सकते हैं।

क्या आप अभी अपने दिमाग से काम कर रहे हैं? यदि ऐसा है, तो इस प्रक्रिया को प्रबंधित करने और विकसित करने (देय होने?) को जारी रखने की अपेक्षा करने के लिए दो बार कठिन काम करने के लिए तैयार रहें।

और यहाँ मेरे पिछले अनुभव से उत्तर दक्षिणी कैलिफोर्निया क्षेत्र मूल्य निर्धारण में एक समान स्थिति में है:

5-6 लोग && ~ 500k

  • 1 लीड डेवलपर / प्रबंधक सभी टोपी पहनने वाला (~ 100k - 120k)

  • अच्छा DB समझ और कौशल के साथ 2 सीनियर (बहुत सक्षम, स्व-चालित) प्रोग्रामर (2x ~ 80 - 100k)

  • 1 परियोजना प्रबंधक प्रबंधन के साथ इंटरफेस करने के लिए ($ $;) इस व्यक्ति को भी एप्लिकेशन की जरूरतों को समझने में सक्षम होना चाहिए, और प्रोग्रामर को सीधे उन जरूरतों को संवाद करना चाहिए

  • 1? (HTML / UI) डेवलपर? जावास्क्रिप्ट कौशल के साथ (मैं प्रोग्रामिंग यूआई / मार्कअप कोड से नफरत करता हूं)

  • 1? डेटाबेस व्यक्ति? हालाँकि, अधिकांश अच्छे प्रोग्रामर को स्केलेबल डेटा स्ट्रक्चर्स बनाने में कोई समस्या नहीं है, हालाँकि, यदि आप अनुकूलन चिंताओं में शामिल होने जा रहे हैं, तो आप कम से कम एक सलाहकार चाहते हैं


1
+1 मुझे आपका ब्रेकडाउन बहुत अच्छा लगता है! मेरे द्वारा बोली जाने वाली तनख्वाह ओटी को पूरा करें जो मेरे लिए निराशाजनक है क्योंकि मैंने सोकाल में काम करने के बारे में सोचा है, लेकिन वे पश्चिमी यूरोप की तुलना में बहुत अधिक नहीं हैं, अगर सीनियर लोग एमएससी + 5 साल काम करने की तरह हैं।
किसान

1
मैं इस बात से सहमत हूं कि मैं एक प्रवेश स्तर के प्रोग्रामर को समर्थन कर्तव्यों (ग्राहक सेटअप और मामूली वृद्धि) को संभालने और सामान्य रूप से गंभीर काम करने की सलाह दूंगा। कुछ भूमिकाओं के संयोजन कौशल स्तर के आधार पर काम कर सकते हैं।
jfrankcarr

वाह, आप 80-100K के लिए So Cal में वरिष्ठ देवता प्राप्त कर सकते हैं? लगता है कि जीवनयापन की लागत काफी कम है। शायद हमारे पास 'वरिष्ठ' के विभिन्न विचार हैं; मुझे पता है कि डलास में जितने वरिष्ठ देव हैं, वे उससे कहीं अधिक मिल रहे हैं।
केविन क्लाइन

हमारे पास अलग-अलग विचार हैं कि क्या स्वाद अच्छा है .. मैंने 2 .Net Sr. को काम पर रखा था, जो पिछले 10 वर्षों में बहुत सारे अनुभव के साथ युवा और प्रतिभाशाली थे, जो उस सीमा के भीतर काम करने के इच्छुक थे। हमने नवीनतम Microsoft Stack (TFS, .NET 4, C #, EF 4.1, MSSQL 2008 R2, blah blah ..) का उपयोग किया, और अच्छे साफ कोड को पीटने में कोई समस्या नहीं थी। हम एक छोटी सी टीम थे, और समस्या यह थी कि हमने कुछ सीनियर को नौकरी पर रखने की कोशिश की। वे सीखने के लिए प्रतिरोधी थे और उनकी बहुत सारी राय थी और बहुत अधिक सामान ले गए थे (हमारे पास हायरिंग विंडो भी नहीं थी)
hanzolo

2

एक बड़े कोडबेस पर 1 प्रोग्रामर कॉन्फिगरिंग, टेस्टिंग, कम्यूनिकेशन, सपोर्टिंग, डॉक्यूमेंटिंग और बग फिक्सिंग की सारी जिम्मेदारी के साथ नया कोड लिखने या फीचर्स जोड़ने (या पुराने कोड को रीक्रिएट करने) के लिए ज्यादा समय नहीं होने वाला है।

इन अनिवार्य कार्यों के प्रतिशत से अपने सप्ताह को तोड़ दें जो व्यवसाय का विस्तार नहीं करते हैं और आपको आश्चर्य होगा कि कैसे प्रबंधन अतिरिक्त सहायता को किराए पर लेता है।

बड़ी परियोजनाओं में एक निश्चित मात्रा में संबद्ध ओवरहेड होता है, जो दूर नहीं होगा (विशेषकर यदि नए ग्राहकों के साथ हर समय लागू / परीक्षण करना जैसा कि आप प्रतीत होते हैं)। यही कारण है कि आपके पास सामान्य रूप से समर्थन घुमाव और समर्थन है; इसलिए टीम के कुछ लोगों के पास नई सुविधाओं पर काम करने का समय है।

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


मेरा 95% समय उन कार्यों में से एक कार्य करने में व्यतीत होता है। मुझे सपोर्ट रोटेशन का विचार पसंद है। यह विचार करने के लिए कुछ हो सकता है कि क्या हम किसी को किराए पर लें जिसे मैं लोल के साथ घुमा सकता हूं। आज, उदाहरण के लिए, मैं वास्तव में कुछ कोर कोड पर काम कर रहा था और बाधित था क्योंकि किसी को बैटरी की आवश्यकता थी।
kstevens715

@ kstevens715 - ऐसा लगता है कि आपको मदद की ज़रूरत है, भले ही वह किसी का बच्चा हो जो तकनीकी हो। मुझे लगता है कि आपको कम से कम 5 आंकड़ा आय का भुगतान किया जा रहा है, अगर मुझे बैटरी प्राप्त करने के लिए कहा गया था, तो यह मेरे नियोक्ता के लिए $ 10 (मेरी प्रति घंटा मजदूरी का 35%) खर्च होगा।
रामहाउंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.