मेरा एक प्रश्न है जो मेरी नवीनतम नौकरी (बल्कि इंटर्न) द्वारा उठाया गया है।
बस चीजों को संदर्भ में रखने के लिए - मैं 21 साल का हूं और मैंने अपना 2 साल का विश्वविद्यालय पूरा कर लिया है, इससे पहले कि मुझे लगभग 2 साल का अनुभव है, जो कि sys admin / QA जॉब कर रहा है और मूल रूप से मैं कह सकता हूं कि मैंने देखा है कि कितना अलग है आईटी सेक्टर संचालित। वर्तमान समय के लिए आगे बढ़ें और यहां मुझे यूके में प्रमुख अनुसंधान संस्थान में से एक में एक इंटर्निंग नौकरी मिल रही है।
मुझे जो कुछ करना है वह प्रौद्योगिकियों के मिश्रण का उपयोग करके कुछ आंतरिक उपकरण बनाना है - मुख्य रूप से AWS / Java / Bash - आपको चित्र मिलता है। सब कुछ ठीक है, मैं अपना काम कर रहा हूं लेकिन मैं खुश नहीं हूं। ऐसा क्यों है - क्योंकि मुझे एक तदर्थ मामले में काम करने की उम्मीद है। कि डिजाइनिंग पर समय खर्च किए बिना, चीजों को जल्दी से बनाएं। मेरे प्रबंधक ने स्पष्ट रूप से कहा कि यह समस्याओं के माध्यम से "जल्दी" होने की उम्मीद थी क्योंकि वे उत्पन्न होते हैं और हम अनिवार्य रूप से। एक परिणाम के रूप में यह पता चला है कि चीजों को फिर से किया जाना था और फिर से इंजीनियर और वे अभी भी सही नहीं हैं। जहां तक परीक्षण का सवाल है - इसे कम से कम रखें, जब तक यह काम करता दिखता है तब तक यह ठीक है।
क्या मैं काम करने के इस तरीके से असहमत हूँ? क्या सिस्टम पर समग्र रूप से विचार करना चाहते हैं, तो अलग-अलग घटकों पर ध्यान दें और देखें कि वे कैसे अंतर-संचालन कर सकते हैं, विभिन्न "प्रमुख बिंदुओं" पर शून्य कर सकते हैं जो भविष्य में समस्याग्रस्त हो सकते हैं? क्या एक अच्छा काम करना और "त्वरित नौकरी" नहीं करना अपराध है? क्या यह एक गलती या गलत दृष्टिकोण है जो किसी समस्या पर लागू डेटा संरचनाओं पर शोध करना चाहता है ताकि आप किसी विशेष समस्या सेट के आधार पर सर्वश्रेष्ठ चुन सकें? "सॉफ्टवेयर इंजीनियरिंग" में "इंजीनियरिंग" बिट को समझने के लिए मेरी समझ में ठीक यही आया है - अपने समस्या डोमेन पर शोध करें और एक सूचित समाधान के साथ आएं, फिर आवश्यक रूप से परिष्कृत करें?
मैं यूके में एक शाखा के कार्यालय में एक साक्षात्कार के लिए गया हूं और उन्होंने मुझे अपना एससीआरयूएम कक्ष दिखाया और यह देखा कि उन्हें अपने प्रोजेक्ट को कैसे प्रबंधित करना है, इसके बारे में बहुत अच्छा विचार था - उनके पास एक बैकलॉग था, उनके पास मेट्रिक्स थे कि प्रत्येक को कितने समय तक मुद्दा हल करने में लग सकता है - एससीआरयूएम के लिए सामान्य चीजें - जिस तरह से "यहां" चलाए जा रहे हैं उससे बिल्कुल अलग।
क्या मैंने सामान्य रूप से सॉफ़्टवेयर उद्योग के बारे में एक गलत विचार बनाया है? मैं उस पर आपका इनपुट सुनना चाहूंगा। मेरा मतलब है कि मैंने शुद्ध रूप से सॉफ्टवेयर विकास में "प्रवेश" किया क्योंकि मैं चीजों को बनाना चाहता हूं - सादे और सरल, लेकिन मैं गुणवत्ता वाली चीजें बनाना चाहता हूं। मैं अपने सॉफ्टवेयर को विभिन्न परिदृश्यों में उपयोग करना चाहता हूं, मैं इसे बुलेट प्रूफ देखना चाहता हूं - क्या यह सभी सॉफ्टवेयर इंजीनियरों के लिए प्रेरणा नहीं है? मुझे लगता है कि हर कोई सिंटैक्स सीखकर एक प्रोग्रामर / कोडर हो सकता है, लेकिन मेरे लिए जहां वास्तविक मज़ा शुरू होता है, जब आपको वास्तव में एक डिजाइन के साथ आना होगा जो वास्तविक दुनिया में उल्लेखनीय है।
मैं अपने विश्वविद्यालय के कामों को सिर्फ उन्हें देखकर करता था और सीधे कोडिंग शुरू करता था और 75% से अधिक अंक आसानी से प्राप्त कर सकता था और कभी भी "सॉफ्टवेयर डेवलपमेंट लाइफसाइकल" मॉड्यूल की सराहना नहीं करता था। लेकिन अब जब मैंने वास्तविक दुनिया में देखा कि बिना किसी औपचारिक प्रक्रिया के काम करना कितना बुरा है और यह निराशा उस स्थिति में है जहाँ आप नहीं जानते कि कल की आवश्यकताओं को बदलने जा रहे हैं तो (ओह, क्या मैंने कहा कि हम डॉन 'टी ने स्पष्ट रूप से आवश्यकता विश्लेषण को परिभाषित किया है?'
मैं वास्तव में विश्वास करना पसंद करता हूं कि मैंने सिर्फ एक स्थिति उतारी है जहां कुछ लोगों को अपने गंदे काम करने के लिए सिर्फ एक कोड बंदर की आवश्यकता थी और यह मामला नहीं है कि बड़े पैमाने पर सॉफ्टवेयर की दुनिया कैसे संचालित होती है।
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing
- रियल वर्ल्ड ™ में आपका स्वागत है, जहां समय सीमाएं हैं और कंपनियों को परिणाम देने की उम्मीद है।