महंगे प्रोग्रामर के लिए केस कैसे बनाऊं?


33

हमारी कंपनी में, हमें कई चीजें करने की आवश्यकता नहीं है, जैसे कि मोबाइल यूआई विकसित करना।

मान लीजिए कि अनुभवी प्रोग्रामर हमें लागत 4x के रूप में शुरुआती के रूप में ज्यादा है।

दोनों मूल रूप से एक ही समय में प्रतीत होता है सरल चीजों को पूरा करने में सक्षम हैं।

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

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

क्या हमें अधिक और बेहतर प्रोग्रामर या अधिक और बेहतर पीएम में निवेश करना चाहिए, यह देखते हुए कि हमारे क्षेत्र में अनुभवी और नए प्रोग्रामर के बीच अंतर 4x हो सकता है।


18
अनुभवी प्रोग्रामर अधिक तेज़ी से और कम बग के साथ कोड का उत्पादन करेंगे, लेकिन वे सरल परियोजनाओं पर काम करते हुए तेजी से ऊब भी जाएंगे।
david25272

18
Let's say the experienced programmers costs us 4x as much as the beginners.- इसकी संभावना कम है। अनुपात 2x या 3x की तरह अधिक है। यदि आप प्रोग्रामर को खराब भुगतान कर रहे हैं, जो आप वास्तव में कर रहे हैं, तो आप शौकीनों को काम पर रख रहे हैं और उन्हें आपकी जरूरत के काम करने के लिए प्रशिक्षित कर रहे हैं, केवल अपनी बेल्ट के तहत कम से कम अनुभव प्राप्त करने के बाद उन्हें अपनी कंपनी को हरियाली के चरागाहों के लिए छोड़ना होगा।
रॉबर्ट हार्वे

4
Both are basically able to complete the seemingly simple things in the same amount of time.- ठीक है, अनुभवी प्रोग्रामर लंबे समय में पर्याप्त समय बचाता है क्योंकि आपको उसे वास्तव में क्या करना है पर अधिक विशिष्ट निर्देश नहीं देने थे।
रॉबर्ट हार्वे

8
@ जूल्स: आउटसोर्स / ऑफशोर करने के लिए, आपको एक बहुत ही विस्तृत विनिर्देश लिखना होगा, एक प्रक्रिया जो अनुभवी प्रोग्रामर को वास्तविक कार्यक्रम लिखने में अधिक समय ले सकती है। इसके लिए मेरा शब्द न लें, किसी से भी बात करें। मेरे पास है।
रॉबर्ट हार्वे

2
@ ईवान: कृपया एक बड़ी कंपनी का उदाहरण दें, जिसने पिछले दो वर्षों में ब्रिटेन में कहीं और सस्ता सॉफ्टवेयर डेवलपर्स खोजने के लिए लंदन छोड़ दिया है।
gnasher729

जवाबों:


60

मेरे पास वास्तविक दुनिया में आजमाए जा रहे दोनों सिद्धांतों का पहला अनुभव है - एक ही परियोजना में।

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

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

एक या दो महीने के बाद यह स्पष्ट रूप से स्पष्ट हो गया कि यहां तक ​​कि काम करने के लिए नहीं जा रहा था, इसलिए मूल टीम को परियोजना से हटा दिया गया था और कुछ और शीर्ष-दराज प्रोग्रामर जोड़े गए थे। उन्होंने परियोजना को वितरित किया कि मूल टीम खरोंच से शुरू होने वाले 3 एक महीने के स्प्रिंट में कोशिश करने के 8+ महीनों में देने में पूरी तरह से विफल रही क्योंकि मूल कोड अप्रतिस्पर्धी था।

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

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

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

टीएल; डीआर गुड प्रोग्रामर एक सौदा हैं। कठिन बिट उन्हें ढूंढ रहा है और उन्हें रखने के लिए एक आकर्षक पर्याप्त कार्य वातावरण बना रहा है।


3
मैं आपके tl में "Good" के साथ "अनुभवी" को स्वैप करूंगा, उन कारणों के लिए ड्राप करें जो आप इसके ठीक ऊपर इंगित करते हैं। इसके अलावा, अपेक्षाकृत कम या कोई पेशेवर अनुभव के साथ अच्छे प्रोग्रामर को खोजने के लिए यह काफी संभव है (लेकिन अभी भी मुश्किल है)। हालांकि, मैं स्वीकार करूंगा कि इन डेवलपर्स की क्षमता को अनलॉक करने के लिए संवारने की आवश्यकता है, और यह बहुत संभावना है कि ओपी की कंपनी के पास ऐसा करने के लिए उपयुक्त संस्कृति नहीं है। एक महान प्रोग्रामर होने का एक फायदा अच्छे व्यवहार और प्रथाओं का एक रोल मॉडल और सामान्यता के विपरीत है।
डेरेक एल्किन्स

1
@ डेरेक एल्किंस - अच्छा सुझाव, किया। अपने दूसरे बिंदु से सहमत हैं। एक काम में मैं बजट के लिए बेहद विवश था और अभी भी एक अनुभवी अयोग्य प्रोग्रामर और 3 बहुत जूनियर प्रोग्रामर (कोई डिग्री, बहुत कम अनुभव) से एक बहुत अच्छी टीम को नए कामों के रूप में इकट्ठा करने में कामयाब रहा - जिनमें से एक विशेष रूप से असाधारण था। लेकिन मैंने कुछ निराशाजनक रूप से खराब सीवी से गुजरने से पहले बहुत सारा पैसा "खर्च" किया, इससे पहले कि मैंने उन्हें पाया और अधिक समय / पैसा उन्हें सही स्तर पर छोटे कार्यों को पिच करके और उन्हें अपने समाधान देने और अपनी उपलब्धियों का जश्न मनाने के लिए खुद को प्रशिक्षित किया।
mcottle

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

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

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

19

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

एक और तर्क बाजार का समय हो सकता है। यह ऊपरी प्रबंधन द्वारा आसानी से समझा जाता है। हालांकि अगर समय वास्तव में महत्वपूर्ण नहीं है, तो यह मदद नहीं करेगा।

अंतिम उपाय में, की एक तस्वीर को खोजने के लाल Adair , प्रसिद्ध फायर फाइटर, जो कम अनुभवी लोगों के कई असफल प्रयासों के बाद एक बड़ी आपदा में बुलाया गया था। उनका प्रसिद्ध उद्धरण:

यदि आपको लगता है कि एक पेशेवर को काम पर रखना महंगा है, तब तक प्रतीक्षा करें जब तक आप एक शौकिया किराए पर नहीं लेते।

... रंग में मुद्रित होने के योग्य है और आपके कार्यालय के दरवाजे पर प्रमुखता से प्रदर्शित किया जाता है, ताकि हर कोई यह समझ सके कि यह क्या है;;


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

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

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

@Christophe स्टोरी पॉइंट्स एक कार्य की जटिलता की तुलना दूसरे के खिलाफ करने के लिए करते हैं - वे समय को मापने के लिए डिज़ाइन नहीं किए जाते हैं, हालांकि वे उस तरह से बड़े पैमाने पर दुर्व्यवहार करते हैं (2 इप्स = 1 दिन आदि)।
रॉबी डे

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

10

मुझे mcottle का उत्तर पसंद है और उसे उभारना है, लेकिन मैं कुछ अन्य गतिकी और तर्कों को कवर करना चाहता हूं जो अन्य उत्तरों ने नहीं उठाए हैं।

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

एक सवाल यह है कि आपकी कंपनी की योजना वास्तव में क्या है? ठीक है, वे सस्ते, जूनियर प्रोग्रामर किराए पर लेंगे। तीन साल बीत गए, अब क्या? वे उन तीन वर्षों में उनके साथ रहे डेवलपर के साथ क्या करते हैं? क्या उन्होंने सिर्फ उसे कभी नहीं उठाया? यहाँ विकल्प निम्नलिखित हैं:

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

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

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

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

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


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

6

यह या तो / या स्थिति नहीं है।

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

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

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

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


5

कोई भी वास्तविक दुनिया परियोजना ग्राहक की मांग से प्रेरित होती है, और इसलिए इसमें ऐसे कार्य शामिल होते हैं जो निम्न जटिलता वाले होते हैं (जैसे कि CRUD फॉर्म का निर्माण), और उच्च जटिलता (जैसे एक ईवेंट-संचालित सूचना प्रणाली का निर्माण)। केवल कम जटिलता वाले कार्यों का एकमात्र तरीका ग्राहकों को बार-बार "नहीं" शब्द बताना है, जो कि मैंने कभी नहीं सुना है, कोई बिक्री विभाग करने के लिए तैयार नहीं है।

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

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

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


3

मेरे जवाब में मैं तर्क दूंगा कि वरिष्ठ प्रोग्रामर जरूरी नहीं कि जूनियर डेवलपर्स की तुलना में तेजी से कोड करें। वास्तव में, सबसे तेज प्रोग्रामर औसत लोग हैं, जिन्होंने सिर्फ विश्वविद्यालय छोड़ दिया है।

डोमेन ज्ञान वरिष्ठ डेवलपर की एक कुंजी है। एक अच्छे वरिष्ठ डेवलपर को क्षेत्र का मजबूत ज्ञान होना चाहिए, कुछ ऐसा जो जूनियर डेवलपर के पास न हो। अनुभवी डेवलपर्स समस्या को समझते हैं, क्या हल करना है और इसे कैसे हल करना है। वे अधिकांश जूनियर डेवलपर्स की तुलना में व्यवसाय के लिए अधिक जटिल समस्या को हल कर सकते हैं।

प्रोग्रामिंग अपेक्षाकृत सस्ता कौशल सेट है, यह विशेषज्ञ ज्ञान है जो मायने रखता है।


2

'मामला बनाने की कोशिश मत करो' बाजार कर्मचारियों के लिए मूल्य निर्धारित करता है। यदि बाजार अनुभव के लिए 4 गुना अधिक भुगतान करने को तैयार है, तो इसकी वजह यह है कि एक पूरे के रूप में कंपनियों ने काम किया है कि 4x उत्पादकता में वृद्धि हुई है।

अब जाहिर है कि बाजार गलत हो सकता है, शायद इसका 3.5 या 5x लेकिन जब तक आप एक डिजिटल एजेंसी नहीं हैं, बाजार के खिलाफ प्रतिस्पर्धा या कुछ ऐसी बारीकियां महत्वहीन हैं।

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

पीएम बनाम डेवलपर बजट का आपका दूसरा सवाल। मैं कहूंगा कि एक डेवलपर बिना पीएम के कर सकता है, लेकिन एक पीएम एक डेवलपर के बिना नहीं कर सकता। अपने विकास इंजन को पहले क्रमबद्ध करें, फिर एक प्रशासक को अपने हाथों से निकाल लें।


यद्यपि यह आर्थिक अर्थों में सही हो सकता है, अलग-अलग क्षेत्रों जैसे छोटे शहरों, ग्रामीण क्षेत्रों में बाजार बहुत ही तिरछे हो सकते हैं। विश्वविद्यालय के शहर बेहतर हो सकते हैं।
रोंगोंग

सच है, लेकिन आपका व्यवसाय एक जगह पर है।
इवान

2

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

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

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


1

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

  1. क्या उन्होंने सही आकलन किया है कि आपके द्वारा बनाया गया सॉफ्टवेयर कितना जटिल है? ऐसा लगता है कि उन्हें नहीं लगता कि आप जो कर रहे हैं वह बहुत कठिन है, इसलिए बेहतर लोगों को क्यों नियुक्त करें? क्या आपने ऐसा मामला बनाया है जहाँ गलतियाँ की जाती हैं और बेहतर समाधान और उत्पादकता पैसे कैसे कमाएगी? समय की बचत करना बहुत अच्छा है, लेकिन कई कंपनियां एक प्रोग्रामर के पूरे हफ्ते के समय को बर्बाद कर देती हैं, बजाय इसके कि उन्हें माउस पैड खरीदने के लिए पैसे दिए जाएं।
  2. क्या आपकी कंपनी अच्छे प्रोग्रामर्स के लिए आकर्षक है? क्या वे उनकी पहचान करने में सक्षम हैं? एक सीनियर देव को काम पर रखने से ज्यादा बुरा कुछ नहीं है, उन्हें अधिक पैसा दें और वे कौशल और / या नेतृत्व की कमी के कारण पूरी टीम को नीचे ले जाएं।
  3. क्या आपकी कंपनी एक अच्छे प्रोग्रामर का उपयोग कर सकती है? यदि वे सब करने जा रहे हैं तो उन पर घटिया चश्मा फेंक दें और उन्हें बताएं कि बस इसे बनाने के लिए, क्या बात है? क्या वे उन्हें चीजों को अपने तरीके से करने की स्वतंत्रता देने जा रहे हैं? आखिरकार, परिभाषा के अनुसार एक अच्छा प्रोग्रामर जानता है कि उसे अपने समय का बेहतर उपयोग कैसे करना है। वे अपने आसपास के लोगों को प्रभावित करते हैं और अन्य प्रोग्रामर को सुधारने का कारण बनाते हैं। वे बेहतर डिजाइन और आर्किटेक्चर पेश करते हैं जो बाकी उत्पाद बनाने में बेहतर होते हैं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.