ओह लड़का, यह बहुत कुछ है अगर आप वास्तव में मतलब है कि सब कुछ आपके साथ हुआ है!
चेतावनी : नीचे दिए गए कई बिंदुओं में आपको ऐसा लग सकता है कि मैं आपकी आलोचना करता हूं और यह कि मैं आपको दुखी लोगों के लिए जिम्मेदार बनाना चाहता हूं और बाहरी कारकों पर विचार नहीं करना चाहता। मैं नही। यह सिर्फ इतना है कि आप ज्यादा जानकारी नहीं देते हैं, और मैं सिर्फ यह सुनिश्चित करने के लिए कार्रवाई की जांच-सूची प्रदान करता हूं कि चीजें गड़बड़ नहीं हुई हैं। मुझे पता है कि मैंने खुद बहुत सारी गलतियाँ की हैं (हर कोई करता है) और हम केवल तभी बेहतर होते हैं जब हम उनसे सीखते हैं। और उनसे सीखने के लिए, हमें उन्हें पहली जगह में गलतियों के रूप में देखना शुरू करना होगा, और हमारे हिस्से में जो कुछ भी गलत हुआ, उसके लिए जिम्मेदारी स्वीकार करनी होगी। नरक, अन्य लोगों के हिस्सों में क्या गलत हुआ, इसके लिए जिम्मेदारी स्वीकार करें, आप इससे भी सीख सकते हैं।
आपका प्रोजेक्ट विफल हो गया
अब आप इसे कम करने के लिए बहुत कुछ नहीं कर सकते।
हालांकि आप भविष्य में प्रजनन के लिए इससे बचने के लिए बहुत कुछ कर सकते हैं। मैं आपके प्रोजेक्ट और समय प्रबंधन कौशल को बेहतर बनाने की कोशिश करूँगा।
सबसे अच्छा अनुपात ((वैध सलाह) / पृष्ठ) वाली पुस्तकों में से एक मैंने इस विषय पर पढ़ा है, जबकि शायद यह सबसे अच्छा नहीं है, यह रोब थॉमसन के कट्टरपंथी परियोजना प्रबंधन है ।
आप वास्तव में निर्दिष्ट नहीं करते हैं कि आपकी परियोजना क्या विफल रही है, लेकिन मैं उस चीज का एक संयोजन मानूंगा जिसने सामान्य लागत / समय / क्वाली त्रिकोणीय में असंतुलित किया । मेरी नज़र में सबसे महत्वपूर्ण कारक परियोजना का नेतृत्व करना है और विकास करना है, जबकि आपके तकनीकी अभिनेताओं (देवों और परीक्षकों), लेकिन आपके हितधारकों दोनों के साथ हमेशा संपर्क में रहना चाहिए। बहुत अधिक परियोजनाएँ विफल हो जाती हैं क्योंकि वे प्रायोजकों या हितधारकों को नहीं सुनते हैं और प्रक्रिया में शामिल होने के लिए उन्हें धक्का नहीं देते हैं।
यदि वे शामिल नहीं हैं, तो आप नहीं जान सकते कि वे क्या चाहते हैं। यदि आप नहीं जानते कि वे क्या चाहते हैं, तो आप इसे वितरित नहीं कर सकते। यदि आप इसे वितरित नहीं करते हैं, तो वे दुखी होंगे। वह असफलता है। इसके अलावा, यदि आप अपने हितधारकों को शामिल नहीं करते हैं, तो वे सॉफ़्टवेयर इंजीनियरिंग की वास्तविकता से अलग हो जाते हैं, जिसका अर्थ है कि वे आपके मुद्दों को नहीं समझते हैं। यदि वे अक्सर आपके संपर्क में रहते हैं, तो उन्हें एक बेहतर समझ मिलती है कि आपको क्या करना है। जब आप उन्हें बताएंगे कि वे एक "छोटे" [हँसी] सुविधा के लिए महीनों लगेंगे, तो वे अधिक समझ पाएंगे। वे आपकी योजना पर बेहतर भरोसा कर सकते हैं क्योंकि उन्होंने इसे बनाने में मदद की। एक परियोजना शुरू में सफल नहीं हो सकती "अंत में देव, परीक्षण, वितरण।" यह कभी नहीं करता है। आप चश्मा में जो माँगा गया था, उसे वितरित कर सकते हैं,
साथ ही सबसे महत्वपूर्ण, एक पूर्वव्यापी करना , और यह सुनिश्चित करना कि यह अहंकार-रहित है और दोष-खेल नहीं है। बस मुद्दों की पहचान करें।
आपने जो दिन बिताए हैं उसकी कोडिंग को आपकी टीम ने अस्वीकार कर दिया था
मैं उस स्थिति में रहा हूं। इसके अलावा, आप इसे कम करने के लिए बहुत कुछ नहीं कर सकते हैं:
- इसे बाद में SCM में रखें।
- हो सकता है कि बड़े रिफैक्टिंग के बजाय छोटे बिट्स और टुकड़ों को उत्तरोत्तर प्रमुख कोड बेस में धकेलने की कोशिश करें।
लेकिन इस तरह की स्थिति को रोकने के लिए आप फिर से कुछ कर सकते हैं:
- यह क्यों हुआ? अस्वीकृति का कारण क्या है?
- अधिकांश समय जब मैं ऐसा होता हुआ देखता हूं (और मेरे लिए भी यही स्थिति थी), इसका मतलब है कि डेवलपर एकल या गाय-बॉय-कोडिंग मोड में चला गया और उन चीजों का उत्पादन किया जो कभी नहीं मांगे गए थे। कोड जो व्यवसाय की आवश्यकता से नहीं आता है वह फैंसी और "बेहतर" हो सकता है, लेकिन अक्सर समय और धन की बर्बादी होती है। इसके अलावा, यह और भी अधिक खर्च होगा यदि आप इसे एकीकृत करते हैं क्योंकि इसे फिर से परीक्षण की आवश्यकता होगी। उन लोगों की तरह सोचें जो आपको पैसे देते हैं: आपको उस स्तर पर भी कुशल होना होगा।
- क्या सॉफ्टवेयर की गुणवत्ता संतोषजनक थी? क्या यह आपकी कंपनी में गतिविधि में मानकों और सम्मेलनों का अनुपालन करता है?
- क्या आपने समय-समय पर (और अक्सर!) इस बारे में प्रत्यक्ष प्रबंधकों को रिपोर्ट की? क्या आपने कभी-कभी टीम के अन्य डेवलपर्स के साथ आदान-प्रदान किया? यदि नहीं, तो वे इसके बारे में कुछ भी नहीं जानते हैं, अब उनके लिए इसका आकलन और समीक्षा करना एक बड़ी लागत होगी। यह अंत में एक ही समय में खाता नहीं है। यह हमेशा अपने किराये के अपार्टमेंट की सफाई करने की कोशिश करना और फिर इसे साफ करने की कोशिश करना है जब आप बाहर निकलते हैं: यह एक भद्दा काम है, यह थकाऊ है, यह कठिन होता है अगर यह नियमित रूप से किया जाता है, और यह अक्सर नहीं होगा सही।
- क्या आपने परीक्षण का उत्पादन किया? इकाइयों परीक्षण? एकीकरण परीक्षण?
- क्या आपका कोड SCM में नियमित रूप से जांचा गया था? क्या यह एक अलग शाखा में था? क्या इसे एक अलग शाखा की आवश्यकता थी या यह ट्रंक में किया जा सकता था? कमिटिंग कोड डालना आमतौर पर एक बुरा संकेत है। जाहिर है कि कभी-कभी आपको ऐसा करने के लिए लुभाया जाता है, लेकिन आप बस अपने आप को पैर में गोली मारते हैं।
आपकी कंपनी में आपके विचारों को कोई नहीं सुनता है
खैर, यहाँ 2 विकल्प हैं, और हम दोनों को देखेंगे:
- तुम विचार बुरे थे।
- आप विचार अच्छे थे।
चलो मान लेना शुरू कर दिया कि वे बुरे थे (फिर, उस पर आत्म-चिंतन करना और अपने विचार को स्वीकार करना सिर्फ सादा बुरा मुश्किल हो सकता है, मुझे पता है)। उसे बदलने के लिए आप क्या करते हैं?
- आप विचार के साथ क्यों आए? औचित्य क्या है ? क्या आपके विचार को मेज पर लाने की कोशिश करने की वास्तविक आवश्यकता है?
- तुम्हें यह विचार कहाँ से आया? क्या आपने इसे अपने दम पर किया? क्या आपने शेयर किया? मंथन? योजना? प्रोटोटाइप? (इन्हें सही क्रम में करें। यदि यह रास्ते में विफल हो जाता है, तो विचार को छोड़ दें, नहीं रखें। या कम से कम अपने मोबाइल शेड्यूल पर नहीं।)
विचार केवल विचार हैं। यदि आप उन्हें केवल विचारों के रूप में सुझाव देते हैं और उन्हें अस्वीकार कर दिया जाता है, तो मुझे नहीं लगता कि आप इसके बारे में बुरा क्यों महसूस करेंगे। हालांकि अगर आप किसी को सूचित किए बिना उन पर कार्रवाई करते हैं और केवल आपके विचारों को प्रस्तुत करते हैं और वे अस्वीकार कर देते हैं, तो जाहिर है मैं समय बर्बाद होने पर निराशा महसूस करता हूं। और आपके प्रबंधकों को!
यह मानते हुए कि आपके विचार अच्छे थे:
- क्या आपकी प्रस्तुति अच्छी थी?
- क्या प्रस्तुति देने का आपका तरीका अच्छा था? (मैं एक डेवलपर हूं, मुझे पता है कि मैं किस बारे में बात कर रहा हूं: हम क्रोधी, अभिमानी , पांडित्य पीआईटीए हैं जो हमेशा सही होते हैं और जिनके साथ काम करना मुश्किल होता है क्योंकि अक्सर हमारे अनुपातहीन अहंकार के साथ )।
- क्या आपके पास इसे लागू करने की योजना है? क्या आपने लागत और समय के बारे में सोचा? क्या आपने सोचा कि यह उपयोगकर्ताओं / ग्राहकों को कैसे लाभ पहुंचाता है? क्या आपने सोचा कि यह बिक्री पर क्या प्रभाव डालता है? क्या आपने सोचा था कि उस विचार पर काम करना अन्य परियोजनाओं और प्राथमिकताओं को प्रभावित कर सकता है। आप मुझे बताने जा रहे हैं, "मुझे ये सब क्यों करना चाहिए, वे मेरे प्रबंधक और विपणन या बिक्री टीमों का काम कर रहे हैं ?!" अभी को छोड़कर, आप उनकी सभी नौकरियों का हिस्सा बनने की कोशिश कर रहे हैं।
आपकी टीम में बल के साथ पेश किए गए डिज़ाइन पैटर्न ने एक गड़बड़ पैदा कर दी
- आपने पैटर्न क्यों पेश किया?
- यदि इसने गड़बड़ी पैदा की है, तो यह संभवतः:
- सही पैटर्न नहीं था,
- ठीक से लागू नहीं किया गया,
- एकीकृत नहीं था।
- आपने इसे कैसे पेश किया? आप वास्तव में राज्य को "गड़बड़" कैसे परिभाषित करते हैं?
- कम पठनीय कोड?
- कम बनाए रखने योग्य?
- टूट रहे हैं?
- "गड़बड़" के विभिन्न प्रकार हैं। यह जानते हुए कि क्या गड़बड़ है पता है कि वहाँ में विफलता थी मदद कर सकता है, और अगर यह डिज़ाइन पैटर्न की गलती थी।
इसके अलावा, मैं खुद इस दृष्टिकोण से थोड़ा आश्चर्यचकित हूं। आपको वास्तव में एक डिज़ाइन पैटर्न पेश करने के लिए धक्का देना था? बल्कि अजीब लगता है। एक पैटर्न या तो पहले से ही है, या आपको पैटर्न के अनुसार अपने समाधान का एक हिस्सा फिर से भरने की आवश्यकता है। आप नहीं धक्का यह आप की तरह एक ढांचे या प्रौद्योगिकी को अपनाने (लोगों की तरह होगा धक्का दिया वास्तव में कड़ी मेहनत एक्सएमएल हर जगह के लिए, और अब जैसे लोगों लिखने के लिए सक्षम होने के लिए जोर दे रहा शुरू एचटीएमएल 5 बड़ा उज्ज्वल अक्षरों में अपने उत्पाद को कवर पर)।
आपको धक्का क्यों लगाना पड़ा? प्रतिरोध क्यों था? शायद यह उचित था।
क्या आप ऐसे उदाहरण प्रदान कर सकते हैं कि यह विशेष पैटर्न आपके कोड आधार को महत्वपूर्ण तरीकों से बेहतर बनाने में मदद करेगा (उदाहरण के लिए, इसे रिफैक्टरिंग टू पैटर्न के उदाहरण के साथ मिलान करके )।
पूरी तरह से ऑफ-टॉपिक नोट, लेकिन यही मैंने पहली बार सोचा था जब मैंने प्रश्न का शीर्षक पढ़ा, जैसा कि मैंने सोचा था कि यह सॉफ्टवेयर विफलताओं को संदर्भित करता है ... मेरे पास एक सॉफ्टवेयर था जिसने एक विशेष प्रकार के अपवादों को प्रबंधित करने के लिए ब्लैकहोल क्लास को लागू किया था। अवयव। ऐसा प्रतीत हो सकता है (और वास्तव में) एक स्पष्ट रूप से अजीब और गंदा हैक है, लेकिन नामकरण ही इतना शानदार था कि हम सभी ने इसे एक असफलता को संभालने के लिए एक शानदार तरीके से सराहना की! :)