क्या नई तकनीकों के उपयोग से उत्पादकता प्रभावित होती है? [बन्द है]


20

ऐसा लगता है कि उपकरण के विशिष्ट सेट के साथ अनुभव के रूप में आपको बड़े पैमाने पर काम करना पड़ता है, नई चीजों को आज़माने का प्रोत्साहन कमजोर पड़ता है।

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

अब मैंने देखा है, अधिक से अधिक मामलों में जहां, एक भी समस्या के लिए, मैं देखते हैं कि पता है कि वहाँ शायद है "वहाँ" एक बेहतर समाधान है, और खोजने यह होगा - शायद - कोड में सुधार होगा। हालाँकि, कोड आधार के बारे में मेरी अब अंतरंग जानकारी को देखते हुए, हमारे पास जो भी दत्तक ग्रहण करने वाले उपकरण हैं, उनका उपयोग करना आसान है, और कुछ नया और "बेहतर" और "सुधार" कोडबेस खोजने की तुलना में एक समाधान (परीक्षण सहित) प्राप्त करें।

तो यह तनाव है: "इसे ठीक से करें" बनाम "काम को शालीनता से करें"।

क्या यह कुछ ऐसा है जो बहुत सारे डेवलपर्स के लिए होता है? क्या यह एक ज्ञात विशिष्ट समस्या है? (क्या यह एक वास्तविक समस्या है?) क्या इसका वास्तव में अनुभव के बढ़ते स्तर के साथ क्या करना है?

ओह, और ध्यान दें: मैं अभी भी अपनी नौकरी पसंद करता हूं और इसे रखना पसंद करता हूं। यह सिर्फ इतना है कि ऐसा लगता है - हमेशा दिलचस्प! - अनुसंधान का हिस्सा छोटा हो जाता है क्योंकि मैं कोड आधार और समस्या सेट सीखता हूं जो हम अपने ऐप के साथ सामना करते हैं।


3
अल्पकालिक: हाँ - दीर्घकालिक: ठीक है, हम सब COBOL पर फंस सकते हैं
HorusKol

किया गया निर्णय उचित भी हो सकता है।
क्वांहद

जवाबों:


17

नई चीजों की कोशिश करना अक्सर जोखिम भरा होता है। हम कभी-कभी परेशानी में पड़ जाते हैं क्योंकि हम दो काम करते हैं:

  1. शांत / नई / snazzy बात उपयोगी है overestimate। हम कुछ अच्छा उदाहरण देखते हैं, कुछ कोड ऑनलाइन फेंक दिए जाते हैं। बहुत अच्छा हम सोचते हैं। बहुत ही शांत! XI में Y को दस गुना तेजी से टास्क कर सकते हैं। यह स्पष्ट रूप से बेहतर है। हम अभी तक सभी "अज्ञात अज्ञात" नहीं देखते हैं। हमें उन समस्याओं से नहीं जोड़ा गया है, जो नई चीज के सैलपीस को छोड़ते हैं। हमारे पास नई चीज़ों में पर्याप्त विशेषज्ञता नहीं है, जो बारूदी सुरंगों को सड़क से नीचे देख रही है।

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

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

तो हाँ हमें वर्तमान चीज़ों को बनाए रखने और कुछ स्तरों के साथ चंचल / शैक्षिक प्रयोग को नए तरीकों से संतुलित करने की आवश्यकता है ताकि समस्याओं को हल करने में नए तरीकों के साथ यह ध्यान रखा जा सके कि उन नए तरीकों में से कई मृत अंत हैं जबकि अन्य भुगतान कर सकते हैं। IMO यह एक अच्छा कारण है कि कई कंपनियों के पास नई चीजों के साथ खेलने के लिए 20% समय है। वे बहुत बार जानते हैं कि वे काम नहीं करते हैं, लेकिन 20% समय से बाहर आने वाले विचारों में से कई गैंगबस्टर बन जाते हैं। खेलने और प्रयोग के बिना आप आसानी से एक कंपनी के रूप में स्थिर हो सकते हैं और वास्तव में अपने आप को खत्म कर सकते हैं।


1
मुझे लगता है कि यह "नए" के प्रकार पर निर्भर करता है जिसे आप खोज रहे हैं। मैंने 60, 70, 80 के दशक से प्रोग्रामिंग अवधारणाओं की खोज की है और वे सभी नए लगते हैं क्योंकि कुछ प्रोग्रामर वास्तव में क्षेत्र के इतिहास को देखते हैं।
रुडोल्फ ओलह

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

8

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

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


+1, हालांकि मैं कहता हूं कि "शिपिंग सुविधा" अक्सर आलसी (परीक्षण, स्थिरता, आदि) होने का एक बहाना है
मार्टिन बा

हालांकि मैं आपके उत्तर में जो कुछ कहता हूं, उससे बहुत सहमत हूं, मैं यह तर्क दूंगा कि डेवलपर्स वास्तव में एक निश्चित सीमा तक सुरुचिपूर्ण कोड विकसित करने के व्यवसाय में हैं। यदि इसे ठीक करने / बनाए रखने के लिए कोई आसान तरीका नहीं है, तो यह भेज दिया गया कोड बेकार है। यह वह जगह है जहां आज एन घंटे खर्च करके "लालित्य" हासिल करने के लिए कोड को रिफ्लेक्ट किया जाता है, जो कल n * 10 घंटे बचाता है।
hspain

@hspain: मैं बिल्कुल सहमत हूं और यह सिद्धांत में जाने का तरीका है, हालांकि यह वास्तविक दुनिया में (कम से कम, मेरे अनुभव में) तब तक नहीं होता है, जब तक कि आपकी नौकरी पुस्तकालयों में न हो और उत्पाद स्वयं न हो।
डेमियन ब्रेख्त

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

@ स्लेसके: ... और फिर वे प्राथमिकता के दौरान गिर जाते हैं;)
डेमियन ब्रेख्त

4

मुझे लगता है कि इसमें से कुछ का विस्तार करने के लिए नीचे आता है और कुछ समस्याओं को सफलतापूर्वक हल करने के लिए अधिक गहन ज्ञान है।

जब आप नए होते हैं, तो सभी समस्याएं भी नई होती हैं और आपको उन्हें कैसे करना है, इस पर शोध करने की आवश्यकता है। लेकिन जैसा कि आप एक ही प्रकार की समस्या को हल कर चुके हैं बार-बार शोध की आवश्यकता कम हो जाती है क्योंकि आप उस एक सफल समाधान को जानते हैं।

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

लेकिन कम झुकाव का मतलब यह नहीं होना चाहिए कि आप सीखना बंद कर दें या कभी भी नई तकनीक का इस्तेमाल न करें, बस जब आप उचित हों तो आप अधिक विवेकपूर्ण हों।


4

यहाँ कुछ विवरण है:

  1. समय सीमाएं हैं : प्रोग्रामर की पहले से आवश्यक सभी विवरण उपलब्ध उपकरण हैं जो वह उपयोग कर रहा है। कुछ वेब साइट को पढ़ना, कुछ नई शांत चीज़ खोजना, और फिर उत्पादन वातावरण में इसका उपयोग करना कोई बड़ी संख्या नहीं है। आपके पास उपकरण के साथ पर्याप्त अनुभव नहीं है, और इससे भी महत्वपूर्ण बात, आपके पास कुछ नया सीखने के लिए आवश्यक समय नहीं है। यदि आप कुछ अच्छा नया सामान चाहते हैं, तो उपयोग करने से पहले इसे आधे साल या साल में सीखें।
  2. सुनिश्चित करें कि आप इसे उपयोग करने से पहले इसे ठीक से जानते हैं : कुछ अच्छे नए उपकरण उपयोग करने में मज़ेदार हो सकते हैं, लेकिन समाधान के लिए गुगली करना और फिर उन्हें ठीक से सीखने के बिना उनका उपयोग करना बहुत बुरा हो सकता है। आपके पास इसके साथ पर्याप्त अनुभव नहीं है। यदि आपको यह पता लगाने के लिए Google की आवश्यकता है कि इसका मतलब है कि आप इसे ठीक से नहीं जानते हैं तो इसे ठीक करने के लिए पर्याप्त है जब यह आधा सिस्टम को तोड़ता है।
  3. नवीनतम सामान का उपयोग करना ठीक से नहीं कर रहा है : नया सामान तकनीक सिद्ध नहीं है। अगले साल टेक शायद पूरी तरह से चला गया है, आप इसे अब किसी भी समय का उपयोग करके दुनिया में एकमात्र हैं। बाकी सभी ने देखा कि यह काम नहीं करता है। चांदी की नई बुलेट से बचने के लिए कड़ी मेहनत करनी पड़ती है, लेकिन यह इसके लायक है।
  4. उन तकनीकों पर ध्यान केंद्रित करें जो आपका मुख्य ज्ञान हैं : प्रत्येक प्रोग्रामर दुनिया में उपलब्ध पूरे प्रोग्रामिंग ज्ञान का केवल छोटा हिस्सा जानता है। वह भाग जहाँ प्रोग्रामर पर्याप्त आरामदायक होता है, वह छोटा होता है। जो हिस्सा वास्तव में काम करता है वह और भी छोटा है। केवल उस ज्ञान का उपयोग करें जो आपने ठीक से सीखा है और आप जानते हैं कि यह काम करता है। यह आपको तेजी से प्रोग्रामर बनाता है और बेहतर कोड में परिणाम देता है।
  5. इसे अंतहीन रूप से ट्विस्ट न करें : परफेक्ट कोड एक अच्छा लक्ष्य है, लेकिन इसका मतलब यह नहीं है कि आप पहले कुछ बकवास लिख दें, और फिर इसे बेहतर रूप से बेहतर बनाने के लिए इसे अन-ट्विट करें। आपके पास सभी अच्छे ज्ञान का उपयोग करके पहली बार इसे पूरी तरह से लिखें। अपने आप पर भरोसा। दुनिया पर भरोसा मत करो। कोई और नहीं बिल्कुल वही सामान जानता है जो आप करते हैं। उनकी राय मायने नहीं रखती। आप प्रोग्रामर हैं, आपको इसे काम करने की आवश्यकता है। दुनिया आपके लिए ऐसा नहीं कर सकती। एक बार जब यह हो जाता है, तो रुकें। जब तक कोई इसके बारे में शिकायत न करे, इसे न छुएं।
  6. नई चीजें सीखने के लिए समय बिताएं : हर किसी को लगातार नई चीजें सीखने की जरूरत होती है। हमारा भविष्य इस पर निर्भर करता है। बस इसे इस्तेमाल करने से मना करें! नया सामान सीखें, लेकिन इसका उपयोग तब तक न करें, जब तक आपको यह सुनिश्चित न हो जाए कि यह वास्तव में काम कर रहा है। एक बार तकनीकी सिद्ध होने के बाद आपको अगले साल इसका उपयोग करने का मौका मिलेगा। या आप बस इसे भूल गए, बाकी सभी की तरह - केवल अच्छी चीजें बनी हुई हैं ...
  7. अच्छा सामान न खोएं : एक बार जब आप बड़ी प्रणालियों का सफलतापूर्वक निर्माण कर लेते हैं और उनमें सभी समस्याओं को ठीक कर लेते हैं, और कुछ अच्छी तकनीकों को सीख लेते हैं, तो सबसे बुरी बात यह है कि आप केवल उस ज्ञान को डंप कर सकते हैं और कुछ नया कर सकते हैं। आप पहले से ही जानते हैं कि यह कैसे काम करता है, वहां क्या समस्याएं हैं और उन समस्याओं को कैसे हल किया जाए। इसे फेंकना सिर्फ समय की बर्बादी है।
  8. नई तकनीक के साथ रहें : नई प्रणालियों में से एक सफल होने जा रही है। यह बाजार में किसी भी चीज़ की तुलना में मौलिक रूप से बेहतर है। आपको अभी पता नहीं है कि चांदी की गोली कौन सी है। यदि आप इसे समय पर खोजने में विफल रहते हैं, तो आपका ज्ञान पुराना हो जाएगा। दुनिया आपको पुराने सिस्टम तक पहुंच हटाकर सभी अच्छे सामान खो सकती है।

+1 नॉट टू ट्वीक इट एंडलेस।
श्रीसना

3

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

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


3

हां, नई चीजें उत्पादकता को नुकसान पहुंचाती हैं

हां बिल्कुल। यहां तक ​​कि सबसे अच्छी स्थिति के लिए नई चीजों को अतिरिक्त समय की आवश्यकता होती है क्योंकि वे अपरिचित हैं। यह अक्सर अधिक समय खर्च कर सकता है।

नहीं, नई तकनीकें उत्पादकता में सुधार कर सकती हैं

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


1

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

इसे लिखने के लिए उसे एक सप्ताह का समय दिया, लेकिन समस्या उसके कुछ ही सेकंड में हल हो गई।

मुझे लगता है कि आपके प्रश्न पर भी यही बात लागू होती है: हां, आप नई चीजों को सीखकर अपनी उत्पादकता बढ़ा सकते हैं, लेकिन फिर भी आप अपने मौजूदा ज्ञान को कार्य पर लागू करना बेहतर समझेंगे और कुल मिलाकर यह जल्दी हो जाएगा। एक नए पुस्तकालय को खोजने और सीखने के बारे में कौन परवाह करता है, यदि आप कम समय में अपना खुद का लिख ​​सकते हैं।

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


दृढ़ता से असहमत: एक नई लाइब्रेरी को खोजने और सीखने के बारे में कौन परवाह करता है, अगर आप कम समय में अपना खुद का लिख ​​सकते हैं। और यह बेहतर होगा कि पुराने C तरीकों का उपयोग करने के बजाय सभी को जोड़ने के लिए ... और वह सब ... - इस तरह भी त्रुटि प्रवण और रूढ़िवादी IMHO है।
मार्टिन बा

@ मर्टिन, निश्चित रूप से विपरीत भी लागू होता है - एसओ पर आपने बहुत से लोगों को यह कहते हुए पढ़ा कि 'हर समय नई चीजें सीखें', जिसका अर्थ अक्सर 'एक ही पहिए को सुदृढ़ करना होता है, लेकिन इस बार एक नए उपकरण में'। मैं एक व्यावहारिक दृष्टिकोण अपनाता हूं, जहां काम करवाना हर उस चीज पर प्राथमिकता देता है जो मैं करना चाहता हूं, या जीवन को आसान बना सकता हूं, मैं बूढ़ा हूं यह जानने के लिए कि 'अंततः' से अधिक बार इसका मतलब है 'विशेष रूप से' कभी नहीं। परिवर्तन की दर जहां आप अंत में आने वाले नए सामान के लिए नए सामान की अनदेखी करते हैं।
gbjbaanb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.