मैं एक बुरी तरह से संरचित सॉफ्टवेयर विकास मॉडल को कैसे पार कर सकता हूं?


11

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

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

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

इसके अलावा, मैं वर्तमान में C # WPF में हमारे बीआई टूल पर दो डेवलपर्स के साथ काम कर रहा हूं, जहां मैं कई बार डेवलपर की भूमिका निभाता हूं (जो मुझे पसंद है)।

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

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


4
मुझे यकीन नहीं है कि आपके पास पहले से ही है, लेकिन क्या आपने अपने तत्काल सहयोगियों के साथ स्थिति पर चर्चा की है?
Fanatic23

जवाबों:


14

लगभग दो साल पहले जिस कंपनी में मैं काम करता हूं, हमें (तकनीकी विवरण के बिना) एक समान समस्या थी।

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

धीरे-धीरे निर्माण करें (लेकिन जितनी तेजी से आप कर सकते हैं: पी), लगातार और निश्चित रूप से।

मैं अगले चरणों की सिफारिश करूंगा (ऐसा करने के लिए, आप प्रबंधन से कुछ समय के लिए विकास पर स्विच कर सकते हैं, लेकिन यह ठीक होना चाहिए)

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

इसके अलावा, यदि संभव हो तो, एक सलाहकार को बस काम पर रखें ताकि वह प्रक्रिया की जांच कर सके और बेहतर सलाह दे सके।

आलसी या निराश न हों। बस अपनी गलतियों से सीखें और विभिन्न तरीकों की कोशिश करें। यह सिर्फ शुरुआत है!

संपादित करें:

यहाँ कुछ लिंक और किताबें दी गई हैं जिन्हें मैं हाल ही में पढ़ रहा हूँ / उपयोग कर रहा हूँ ...

लर्निंग गिट: प्रो गिट

ये कुछ ब्लॉग हैं जिनकी मैं सिफारिश करूंगा (उनमें से अधिकांश .NET उन्मुख हैं):

पुस्तकों के लिए, आप अमेजन पर Buiding A Solid Programming Core सूची देख सकते हैं । मैं यह भी सिफारिश करेंगे:


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

1
@picmate ज़रूर यार, वही तुम्हारी पुकार है। इसके अलावा, उदाहरण के लिए, डेवलपर्स द्वारा की गई किसी भी प्रगति की प्रशंसा करना सुनिश्चित करें।
एडगर गोंजालेज

@ एडगर, पक्की बात। यदि आपको कोई अच्छा संसाधन पता है, जिसका मैं उपयोग कर सकता हूं, तो कृपया उन्हें अपने उत्तर में (यदि लागू हो) प्रत्येक बिंदु के खिलाफ मेरे लिए डाल दें। इसके अलावा इस तरह से किसी भी अच्छी विकास फर्म को अपने सॉफ्टवेयर विकास के साथ मिलता है? (चूंकि मुझे कभी भी एक अच्छी विकास कंपनी में आने का मौका नहीं मिला है)
पिकमेट

1
@ सबसे पहले, इस चरण को अलग से लागू नहीं किया जाना चाहिए। वे एक-दूसरे को ओवरलैप करते हैं, वे किसी विशेष क्रम में नहीं होते हैं (पहले एक को छोड़कर)। मैं बाद में दिन में कुछ लिंक पोस्ट कर रहा हूँ
एडगर गोंजालेज

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

6

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

यदि सीईओ आपको कार्यों को पूरा करने के लिए आवश्यक समय देने के लिए तैयार नहीं है, तो आईएमएचओ, या तो किसी अन्य नौकरी पर जाने के लिए तैयार रहें या लगातार मौत के लिए तैयार रहें। अंतिम उपाय के रूप में, सीईओ को बर्नआउट के बारे में समझाएं, जिसमें कोई संदेह नहीं है कि यह अवास्तविक उम्मीदों से आता है।

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

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

संस्करण नियंत्रण स्थापित करें । वास्तव में, Git सेट अप करने में 5-10 मिनट लगते हैं, और अधिक उन्नत अवधारणाओं को प्राप्त करने के लिए बुनियादी संचालन को कम करने और एक या दो दिन पढ़ने में कुछ मिनट लगते हैं।


1

हम्म, अगर मुझे टोरंटो में एक फुर्तीली / XP घटना में आपको यकीन नहीं है - यह परिचित लगता है

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

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

प्रोजेक्ट प्रबंधन पर लक्षित एक (बीटा) pm.stackexchange.com साइट है, आपको अच्छी तरह से कुछ उपयोगी सलाह / समर्थन मिल सकता है - लेकिन हर तरह से, यहां भी सवाल रखें।

तकनीकी सामान पर आगे बढ़ना:

जगह में कोई संस्करण नियंत्रण प्रणाली नहीं है

अपनी सर्वोच्च प्राथमिकता के रूप में एक रखो। मैं git / mercurial पर SVN (तोड़फोड़) जैसी केंद्रीकृत प्रणाली पसंद करता हूं, क्योंकि एक चोरी हुए लैपटॉप का स्थानीय स्तर पर उतना इतिहास नहीं होगा। विशेष रूप से महत्वपूर्ण है अगर कुछ भी सुपर-सीक्रेट (जैसे पासवर्ड और ssh- कीज़) गलती से जाँच की गई। लेकिन, यह स्वाद की बात है। 'मैनुअल वर्जन कंट्रोल' से बग के अलावा ज्यादा समय बर्बाद नहीं होता है - जैसे आप सोचते हैं कि कोड को वापस डाल दिया।

सौभाग्य


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

0

ऐसा लगता है कि आपके पास कई समस्याएं हैं: 1. गैर-तकनीकी वरिष्ठ प्रबंधन के साथ संवाद करना ताकि वे आपके सुधार कार्यक्रम का समर्थन करेंगे; और 2. सफलता के लिए सुधार कार्यक्रम चला रहा है।

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

प्रक्रिया सुधार में सफलता के लिए बहुत सारी सड़कें हैं, उनमें से सभी बहुत लंबी हैं। सीएमएम के साथ अनुभव से पता चलता है कि इसे 1 से 5. के स्तर पर आने में 8 से 10 साल लग सकते हैं। 6 सिग्मा के साथ अनुभव से पता चलता है कि प्रत्येक पुनरावृत्ति में कुछ सुधार होता है, लेकिन अधिकांश संभावित समस्याओं को दूर करने के लिए कई पुनरावृत्तियों की आवश्यकता होती है और, जब तक आप प्राप्त करते हैं तब तक एक बार में सब कुछ बदलने की कोशिश करने का जोखिम लेने के बिना गुणवत्ता के 6 सिग्मा, काम पूरी तरह से अलग तरीके से किया जा रहा है।

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

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

गुड लक सर!


0

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

जैसा कि दूसरों ने आपको बताया है:

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