क्या आप दबाव में खराब कोड लिखते हैं? [बन्द है]


14

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


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

जवाबों:


31

एक शब्द में, हाँ। कोई भी जो आपको अन्यथा बताता है, शायद सबसे अच्छा, गलत है।

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

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


मैं पद के लिए प्लस 10 दूंगा, बहुत अच्छी तरह से कहा
maz3tt

16

अगर टीम क्रंच में है तो कुछ गलत किया गया था।

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

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

एक 50% -good समाधान है कि लोगों को वास्तव में अधिक समस्याओं का हल है और एक 99% समाधान की तुलना में अधिक समय तक जीवित रहता है कि किसी के पास नहीं है क्योंकि यह आपकी प्रयोगशाला में है जहाँ आप अंतहीन चीज़ को पॉलिश कर रहे हैं। शिपिंग एक सुविधा है

सॉफ्टवेयर पर जोएल से डक्ट टेप प्रोग्रामर

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


1
केवल एक चीज जो मैं बदलूंगा वह है "आप" शब्द आपके मुख्य बिंदु पर। मेरा तर्क है कि आपकी टीम के प्रत्येक सदस्य के लिए चीजों का एक गुणक कारक है जो गलत हो सकता है, और हर बाहरी निर्भरता के लिए, कुछ चीजों के घातीय कारक हैं जो गलत हो सकते हैं। या ठीक इसके विपरीत। ;)
सिनको

2
@ysolik: रिवाइडिंग देखें। यह आपकी गलती नहीं हो सकती है कि नियोजन या अनुमान FUBAR'ED था।
जोश के

2
@ysolik: आप एक समय सीमा को पूरा करने के लिए कम आदर्श कोड लिखते हैं और प्रार्थना करते हैं कि आपको इसे बाद में ठीक करने का मौका मिलेगा। उचित योजना के साथ ऐसा कभी नहीं होता है।
जोश के

2
कभी मत कहो ... :)
विनको द सन

3
@Wonko: सही योजना के साथ, यह शायद ही कभी होता है।
जोश के

7

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

कुछ लोग कहेंगे "वेल दैट लाइफ, यू गॉट्टा शिप" लेकिन मैं वास्तव में इस रवैये से असहमत हूं।

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

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


5

हाँ। लेकिन यह हमेशा मुझे बाद में परेशान करने के लिए वापस आता है।


2

जब मैं तनाव की स्थिति में होता हूं, तो मेरा कोड काम पूरा करने के लिए होता है। बस। मैं दक्षता और अन्य मुद्दों पर ध्यान केंद्रित नहीं करता, जो कि खराब है, मेरे ऑपिनियन में।

मैं हालांकि इस पर काम करूंगा।


यह काम करो, इसे सही करो, इसे तेज करो :) c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast
Juha Untinen

1

मुझे विश्वास नहीं है कि मैं व्यक्तिगत रूप से काफी बदतर कोड लिखता हूं, लेकिन मैं एक बदतर उत्पाद प्रदान करता हूं।

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

एक क्रंच के दौरान आपके द्वारा लिखा गया सोर्स कोड उच्च गुणवत्ता वाला हो सकता है, लेकिन यह लगभग निश्चित रूप से एक घटिया उत्पाद के हिस्से के रूप में भेजा जाएगा।


0

निर्भर करता है।

क्या दबाव है क्योंकि वहाँ कोई रास्ता नहीं है सब कुछ किया जा सकता है और क्योंकि प्रमुख नई सुविधाओं को रिलीज से पहले घंटे जोड़े जा रहे हैं?

खराब कोड आ रहा है!

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


ऊह - अच्छी टिप्पणी, सिवाय इसके कि बहुत ही अंतिम वाक्य मुझे थोड़ा डराता है।
विनको

कुंआ। इसका मतलब यह नहीं है कि वे कभी नहीं लिखेंगे। यह डरावना है लेकिन मुझे लगता है कि इससे मुझे केंद्रित रहने में मदद मिलती है। और यूनिट टेस्ट हैं, सिर्फ 100% कवरेज नहीं। 66% से अधिक की तरह।
एलग्रिन्गोग्रैंड

एकमात्र समस्या यह है कि जो 34% कवर नहीं किया गया है, वह नया कोड है जिसे आपने जल्दी में रखा था, और पहले से स्थापित कोड नहीं है जो आपके परिवर्तनों के साथ (सभी) टूटने की संभावना नहीं है। यह कहने के लिए नहीं कि हमने यह सब नहीं किया है, बस यह एक डरावना प्रस्ताव है।
को सानेओ

0

मैं किसी ऐसे व्यक्ति को जानता हूं जो कभी दबाव में बुरा कोड नहीं लिखता है। उसके पास कुछ जादुई फलियाँ भी हैं जिनकी आपको दिलचस्पी हो सकती है।

हर कोई कभी-कभी खराब कोड लिखता है और बढ़ती समय सीमा सामान्य कारण है, पहली जगह में उस स्थिति में आने से बचने के लिए चाल है (और यह आसान भी नहीं है)।

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