क्या मेरे पास सॉफ्टवेयर इंजीनियरिंग के बारे में गलत विचार है? [बन्द है]


26

मेरा एक प्रश्न है जो मेरी नवीनतम नौकरी (बल्कि इंटर्न) द्वारा उठाया गया है।

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

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

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

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

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

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

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


13
अनुसंधान कई अन्य क्षेत्रों की तुलना में एक अलग जानवर है। यह वास्तव में एक दौड़ है।
कैफ़ीक्यूक


18
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing- रियल वर्ल्ड ™ में आपका स्वागत है, जहां समय सीमाएं हैं और कंपनियों को परिणाम देने की उम्मीद है।
रॉबर्ट हार्वे

1
मेरी पिछली नौकरी में, हमने इसे "गोल्ड-प्लेटिंग" कहा था, जैसे कि "गोल्ड-प्लेटिंग छोड़ो", और बस इसे! सभी गंभीरता में, हालांकि, एक अच्छा उत्पाद बनाने के लिए, आपको इसकी योजना बनाने में कुछ समय बिताने की आवश्यकता है; प्रोग्रामर
रॉबर्ट हार्वे

1
@ टायलर सिर्फ इसलिए कि उत्पाद व्यावसायिक नहीं होने जा रहा है इसका मतलब यह नहीं है कि उस उत्पाद पर पूर्ण और परिचालन (या उसके करीब) होने की समय सीमा निर्भर नहीं है।
केनेथ

जवाबों:


33

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

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

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


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

7
+1 परियोजना की बाधाओं को चर्चा में लाने के लिए, अकादमिक से आने वाले किसी भी व्यक्ति के लिए वास्तविक दुनिया की बाधाओं का सामना करना पड़ रहा है, अक्सर चेहरे पर ठंडे पानी का एक छींटा होता है =)
पैट्रिक ह्यूजेस

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

1
(5 मिनट के संपादन विंडो के बाद ऊपर संपादित करें) - कीचड़ की एक बड़ी गेंद उपयोगकर्ताओं के लिए इसे हल करती है की तुलना में अधिक समस्याएं पैदा करती हैं। और अगर यह अधिक समस्याएं पैदा नहीं करता है (उदाहरण के साथ आने के लिए मुश्किल है, तो शायद एक ऐसा फेंक जो वास्तव में दूर फेंक दिया जाता है?) फिर मिट्टी की एक बड़ी गेंद बनाना वास्तव में एक अच्छा समाधान होगा। या, कम से कम COULD हो।
psr

1
अगर इंजीनियरिंग केवल एक उत्पाद को खत्म करने के बाद कभी भी सही होता है, तो आविष्कार की गई पहली कार एक जेट्स जेट होगी, और हम सभी घोड़ों पर सवार होंगे क्योंकि यह अभी तक आविष्कार नहीं किया गया था।
जिमी हॉफ

17

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

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

चलो रुकें और इस बारे में एक सेकंड के लिए सोचें। आप किस प्रकार के उपकरण विकसित कर रहे हैं? यदि आप उस मॉडल का डेटा विकसित कर रहे हैं, तो यहां एक बड़ी नैतिक दुविधा है। कुछ स्थितियों में, वैज्ञानिक अनुसंधान ऐसे निर्णय लेते हैं जो बड़े पैमाने पर बहुत से लोगों को प्रभावित करते हैं।

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

क्या यह सुनिश्चित करना नैतिक नहीं है कि मॉडलिंग सॉफ्टवेयर को अपनी भविष्यवाणियों के साथ बड़ी समस्याएं नहीं हैं?

पूरी समस्या यह नहीं है कि ग्रीनहाउस गैसें पृथ्वी को गर्म करती हैं। समस्या यह है कि क्या प्रतिक्रिया प्रभावों का शुद्ध परिणाम तापमान में तेजी है, जो एक सीमा को तोड़ने के बाद अब प्रतिवर्ती नहीं होगा।

यदि कहा जाता है कि लाभ हो रहा था, तो शुद्ध परिणाम का प्रमाण मामूली होगा, शायद गलत सीमा के भीतर।

इसलिए, मामूली गलतफहमी, यहां तक ​​कि कार्यप्रणाली जिसमें डेटा स्टोरेज और बैक एंड पर पुनर्प्राप्ति शामिल है, या तो विफलता के एक छोर पर एक गंभीर पर्यावरणीय समस्या की अनदेखी कर सकती है, या अंतर्राष्ट्रीय नीति जो बहुत से लोगों को प्रभावित करती है (नौकरियों को नष्ट कर देती है, तनाव को नष्ट कर देती है)। ) दूसरे पर।

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


पूरी तरह से मान्य बिंदु! हालांकि, शुक्र है, यह इस विशेष उदाहरण में एक मुद्दा नहीं है!
टायलर डर्डन

मैं बाकी उत्तरों के दृष्टिकोण से थोड़ा अधिक चिंतित हूं, कि किसी और ने इस चिंता का उल्लेख नहीं किया है।
ली लौविएरे

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

8

सॉफ्टवेयर इंजीनियरिंग क्या है, इस बारे में आपके पास गलत विचार नहीं है। हालाँकि, आपको इसका एक बहुत महत्वपूर्ण पहलू याद आ रहा है: यह एक सेवा उद्योग है। हममें से कुछ सालों तक किसी उत्पाद पर काम करते हैं, और v1 में आने से पहले डिजाइन और फिर कई पुनरावृत्तियों से गुजरते हैं। दूसरों को 3 घंटे में कुछ उत्पादन करना होगा। यह इस बात पर निर्भर करता है कि आप किसकी सेवा कर रहे हैं और इसका उद्देश्य क्या है।

यदि आप 3 घंटे (या दिन) में एक एप्लिकेशन का उत्पादन कर सकते हैं जो वह करता है जो वह करने के लिए है, तो सामने वाले को डिजाइन करने के लिए उस पर अधिक समय क्यों खर्च करें? तुम सिर्फ पैसा बर्बाद कर रहे हो। पैसा बर्बाद करना आम तौर पर एक अच्छा विचार नहीं है।


+1 कुछ वर्षों के लिए उत्पाद हैं और दूसरों को 3 घंटे में कुछ उत्पादन करना है : D
कार्तिक श्रीनिवासन

5

जैसा कि दूसरों ने पहले ही कहा है, सॉफ्टवेयर इंजीनियरिंग के बारे में एक बड़ा हिस्सा "बाहरी बाधाओं" हैं। जैसे। समय, बजट, सेवा, समर्थन, तर्कहीन मूर्खतापूर्ण मांगों को पूरा करना आदि।

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

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

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

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

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


बहुत बढ़िया जवाब! ज्ञान का कथन - "अनुरक्षण चरण - जो आम तौर पर किसी उत्पाद के जीवनकाल का 90% + होता है और सबसे स्थायी वाणिज्यिक सॉफ़्टवेयर का ब्रेड और बटर रोजमर्रा की दिनचर्या"।
कार्तिक श्रीनिवासन

2

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

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

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


1

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

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


1

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

मेरे कहने का मतलब यह है कि:

"मुझे क्या करना है, प्रौद्योगिकियों के मिश्रण का उपयोग करके कुछ आंतरिक उपकरण बनाना है - मुख्य रूप से AWS / Java / Bash"

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

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

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

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


0

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

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

किसी काम को अच्छी तरह से करने के लिए समय निकालना संगठन की परिपक्वता पर थोड़ा निर्भर करता है और साथ ही यह महत्वपूर्ण है कि किसी चीज़ को अच्छी तरह से किया जाना चाहिए या किया जा रहा है।

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

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

स्क्रम एक विशिष्ट पद्धति है जिसे आप संभवतः अपने वर्तमान कार्यस्थल पर अपनाने की कोशिश कर सकते हैं। हालांकि, लगता है कि Scrum एक चांदी की गोली नहीं है। किन परिस्थितियों में प्रोजेक्ट्स के तहत स्क्रैम और एजाइल फेल हो सकते हैं? उस विषय पर एक ब्लॉग पोस्ट होगी जो ब्याज की हो सकती है।

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


0

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

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


3
मुझे लगता है कि आपने मुझे गलत समझा है। मैं इस तथ्य से अच्छी तरह से वाकिफ हूं कि डिज़ाइन-वर्क के बीच संतुलन बनाए रखने की ज़रूरत है लेकिन जब डिज़ाइन में पूरी तरह से कमी होती है तो मेरा मानना ​​है कि वास्तविक दुनिया में इसका कोई मूल्य नहीं हो सकता।
टायलर डर्डन

कोई भी मौका जिसे आप अपने प्रश्न को स्पष्ट करने के लिए फिर से डिज़ाइन कर सकते हैं? एक ही निष्कर्ष पर कई जवाब आए।
जेफ़ओ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.