किस बिंदु पर आप अधिक पैसे की खातिर सॉफ्टवेयर विकास के अपने कुछ सिद्धांतों को छोड़ देंगे?


16

मैं इस सवाल को दिलचस्प तरीके से वहाँ देखना चाहता हूँ जहाँ माध्यम है।

मैं मानता हूँ कि अपने पिछले 12 महीनों में, मैंने सॉफ्टवेयर विकास में TDD और ढेर सारे चंचल मूल्यों को उठाया। मैं इस बात से बहुत अभिभूत था कि सॉफ्टवेयर का मेरा विकास कितना बेहतर हो गया कि मैं उन्हें कभी सिद्धांत से बाहर नहीं करूंगा। जब तक ... मुझे एक अनुबंध भूमिका की पेशकश की गई, जिसने वर्ष के लिए मेरे घर भुगतान को दोगुना कर दिया।

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

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

अपना पैसा दोगुना करें, राड वापस जाएं? या फिर चलते हैं, और फुर्तीले किसी को खोजते हैं, और कभी पीछे मुड़कर नहीं देखते ...


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

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

5
लोग, आप में से लगभग सभी उसे पैसे लेने के लिए कहते हैं। क्या आपके साथ ऐसा हुआ है कि किसी के लिए यह ट्रेडऑफ एक भौतिक विज्ञानी के बराबर हो सकता है जिसे नशीली दवाओं का निर्माण करने के लिए परमाणु हथियार या रसायनज्ञ बनाने के लिए कहा जाता है। ठीक है, बुरा कोड शायद मौत का कारण नहीं होगा। लेकिन सिद्धांत वे हैं जो हमें और हमारे चरित्र को परिभाषित करते हैं, उन्हें बलिदान करने से पहले दो बार सोचें।
डेव ओ।

1
@ क्या: यह परियोजना के महत्वपूर्ण पैमाने पर निर्भर करता है: en.wikipedia.org/wiki/Cockburn_Scale
rwong

1
मैं काम ले लूँगा। आप हमेशा अपने सहकर्मियों को डार्क साइड से दूर करने की कोशिश कर सकते हैं।
कोई भी

जवाबों:


25

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

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

अपडेट करें

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


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

17

यह वह जगह है जहां मुझे लगता है कि सभी डेवलपर्स को परियोजना प्रबंधन के बारे में थोड़ा जानना चाहिए। सब कुछ समय, धन और संसाधनों के बीच का व्यापार है। अपने आप को संसाधन पर विचार करें।

प्रोग्रामिंग के मेरे 12 वर्षों में मुझे नहीं लगता कि मैंने कभी भी एक परियोजना पूरी की है और इसके बारे में सोचा है, या मेरे दिमाग में पूरा हो गया है। हमेशा कुछ ऐसा था जो मैं चाहता था कि मैं बेहतर, या क्लीनर कर सकता था। मुझे यह महसूस करने में बहुत लंबा समय लगा कि यह उन ट्रेड ऑफ की वजह से है।

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

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

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


s / संसाधन / गुणवत्ता / g = समय और धन संसाधनों को योग्य बनाता है। वास्तविक संतुलन समय, लागत और गुणवत्ता है। दूसरे शब्दों में: मैं इसे जल्दी कर सकता हूं, मैं इसे अच्छी तरह से कर सकता हूं, मैं इसे तेजी से कर सकता हूं, किसी भी दो को चुन सकता हूं।
asoundmove

10

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

लेकिन अगर आपको उन चीजों को छोड़ना है जो कोडिंग (या उस मामले के लिए किसी भी नौकरी) में खुशी रखते हैं, तो मेरा अनुभव है कि आप जल्द या बाद में चले जाएंगे। मैंने सीखा कि निराशा को कभी कम नहीं आंकना चाहिए ...


4
+1 "मैंने सीखा कि निराशा को कभी भी कम करके नहीं आंका जाना चाहिए ..." - बहुत सही। लंबे समय तक चलने वाली कुंठाएं निश्चित रूप से एक काम हत्यारा हैं।
मार्टिन ब्लेयर

7

आपकी पिछली नौकरी के लोग पहले से ही TDD, SOLID आदि के बारे में जानते थे। मुझे यकीन है कि आपने वहां काम करने का आनंद लिया और बहुत कुछ सीखा। अब आपके पास उन अवधारणाओं को सिखाने का अवसर है (एक ही समय में बड़ी रकम बनाते हुए)। मेरे अनुभव में, किसी और को सिखाने के लिए एक अवधारणा ने मुझे हमेशा इसे और भी अधिक विस्तार से सीखने में मदद की है। बस उनके साथ धैर्य रखें, और अपनी अवधारणाओं को एक बार में धकेलें। जब आप निराश हो जाएं, तो घर जाकर अपने पैसे गिनें। या एसई पर समर्थन की तलाश करें।


3

मुझे यह मानना ​​चाहिए कि मैं इस संबंध में ab * tch हूं। एक फ्रीलांसर के रूप में, जो भी क्लाइंट प्रोजेक्ट के लिए सही कार्यप्रणाली के रूप में संबंध रखता है, वह मेरे साथ ठीक है। इसका मतलब यह नहीं है कि पैसा केवल एक चीज है जिसकी मुझे परवाह है, लेकिन क्या करना है और क्या छोड़ना है इसके बारे में निर्णय ग्राहक पर निर्भर है। मैं बुरा काम करने की स्थिति (ज़ोर, लंबे समय आदि) को स्वीकार नहीं करूँगा, हालाँकि।


2

मैं अपने एक पूर्व सहयोगी को उद्धृत करना चाहता हूं। उन्होंने कहा, जब भी वह नौकरी की तलाश में होता है, या एक पार्ट टाइम प्रोजेक्ट होता है, तो तीन मानदंड होते हैं जो प्रोजेक्ट को पूरा करना चाहिए:

  • इसके साथ काम करने में मज़ा आना चाहिए
  • यह आपकी सक्षमता के विकास के लिए फायदेमंद होना चाहिए (यकीन नहीं कि यह वाक्यांश के लिए सही तरीका है)
  • इसका अच्छा भुगतान करना चाहिए

जैसा कि मैंने आपके प्रश्न को पढ़ा है, यह परियोजना केवल अंतिम मानदंडों को संतुष्ट करती है।

जैसा कि आप TDD के शौकीन हो गए हैं (जैसा कि मेरे पास है), मुझे लगता है कि आप दैनिक आधार पर घूमेंगे और चाहते हैं कि आपके सभी सहकर्मी आपके पास उसी अंतर्दृष्टि तक पहुंचे, जैसा कि आपके पास है। इसलिए पहले मानदंड शायद पूरे नहीं होंगे।

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

इसलिए व्यक्तिगत रूप से, अगर मैं आपकी स्थिति में था, और मैं टीडीडी को कंपनी में पेश करने में मदद करने की स्थिति में नहीं था, तो मैं कहीं और देखूंगा।


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

2

कभी नहीँ।

जीवन बहुत छोटा है (विशेषकर जब आप बड़े हो जाते हैं) उन चीजों को करने के लिए जिन्हें आप घृणा करने जा रहे हैं।

बेशक, यह नौकरियों को बदलने के लिए कठिन बनाता है, और काम करने के लिए कम स्थान हैं।

लेकिन कम से कम केवल विरासत कोड में बदबू आती है। (और मुझे स्वायत्तता है, इसलिए हम समझदार चीजें कर सकते हैं जैसे कि एक सप्ताह बिताने से विरासत कोडेज से संकलक चेतावनी को समाप्त कर दिया जाता है ....)


2

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


1

बस सुनिश्चित करें कि नई टीम के साथ काम करना आपके समय का अच्छा निवेश है।

शायद वे इस तरह से सामना करने की तुलना में अधिक कुशल तरीके से काम करते हैं? यदि उनके साथ काम करना आपके लिए एक महान सीखने का अनुभव होगा (इसलिए अच्छा निवेश)।

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


1

मैं कहीं काम नहीं करूंगा जो मुझे उस तरीके से काम करने की अनुमति नहीं देता जो मैं चाहता था। इसके द्वारा मेरा मतलब है कि मैं micromanaged नहीं होना चाहता।

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

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

अगर मैं ऐसा नहीं कर सकता, तो मुझे नहीं पता कि मैं वहां काम करना चाहता / चाहती हूं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.