एक प्रोग्रामर के रूप में, मैंने बहुत कुछ सीखा कि सॉफ्टवेयर कैसे बनाया जाता है। यहां कुछ तथ्य हैं जो आपको आश्चर्यचकित कर सकते हैं।
एक प्रोग्रामर अपने समय लेखन कोड का 10-20% खर्च करता है, और अधिकांश प्रोग्रामर
प्रति दिन कोड की केवल
10-12 लाइनें लिखते
हैं जो उनके स्तर की परवाह किए बिना अंतिम उत्पाद में आते हैं। अच्छे प्रोग्रामर अपना शेष 90% समय अधिकतर सोचने, शोध करने और सर्वोत्तम समाधान खोजने में लगाते हैं। खराब प्रोग्रामर इस समय डिबगिंग, कोड में बेतरतीब बदलाव और फिर प्रदर्शन के लिए इसकी जाँच करते हैं।
"एक अच्छा टर्नर औसत से कई गुना बेहतर काम करता है, लेकिन एक अच्छे प्रोग्रामर की लागत एक साधारण से 10,000 गुना अधिक होती है"
बिल गेट्स।
एक अच्छा प्रोग्रामर औसत से 10 गुना अधिक उत्पादक है। एक उत्कृष्ट प्रोग्रामर औसत से 20-100 गुना अधिक उत्पादक है। और यह
कोई अतिशयोक्ति नहीं है - 1960 के दशक के बाद से किए गए अध्ययन स्पष्ट रूप से यह दिखाते हैं। एक बुरा प्रोग्रामर सिर्फ अनुत्पादक नहीं है: वह न केवल अपना काम करता है, बल्कि ऐसी समस्याएं भी पैदा करता है, जिन्हें दूसरों को हल करना पड़ता है।
शीर्ष प्रोग्रामर बहुत कम समय कोड लिखने में बिताते हैं। कम से कम जो अंतिम उत्पाद में मिलता है। प्रोग्रामर जो कोड पर बहुत समय बिताते हैं, वे या तो बहुत आलसी हैं, या बहुत अनपढ़ हैं, या पुरानी समस्याओं के मौजूदा समाधानों को देखने के लिए बहुत अभिमानी हैं। उत्कृष्ट प्रोग्रामर मानक दृष्टिकोणों को परिभाषित करने और उपयोग करने के स्वामी हैं। अच्छे लोग सही वास्तुकला की खोज में निरंतर रिफैक्टिंग से डरते नहीं हैं। बुरे लोग कोड लिखते हैं जिसमें वैचारिक अखंडता, संक्षिप्तता, पदानुक्रम, डिजाइन पैटर्न का अभाव होता है, और इसे परिष्कृत करना अविश्वसनीय रूप से कठिन होता है। एक बुरे कोड को कूड़ेदान में फेंकना और उसमें कुछ बदलना शुरू करने की तुलना में अधिक आसान है।
कार्यक्रम ब्रह्मांड में बाकी सभी चीजों की तरह एंट्रॉपी के नियम का पालन करते हैं। निरंतर परिवर्तन कार्यक्रमों के विनाश का कारण बनता है, जो मूल वास्तुकला की अखंडता का उल्लंघन करता है। यह अपरिहार्य है, लेकिन प्रोग्रामर जिन्होंने खाते में अखंडता के मुद्दों को नहीं लिया है वे ऐसे प्रोग्राम लिखते हैं जो इतनी जल्दी टूट जाते हैं कि वे पूर्ण होने से पहले ही अनावश्यक हो जाते हैं। Entropic अखंडता त्रुटि शायद परियोजना विफलता के लिए सबसे आम त्रुटि है। और दूसरा सबसे आम एक प्रोग्राम का निर्माण है जो क्लाइंट की इच्छाओं के खिलाफ जाता है। कार्यक्रमों का विनाश विकास की प्रगति को तेजी से धीमा कर देता है, इसलिए कई परियोजनाएं बजट और समय सीमा में बढ़ते व्यवधानों के एक हिमस्खलन के लिए आती हैं, और यह तब तक जारी रहती है जब तक कि वे पूरी तरह से नष्ट नहीं हो जाते।
2004 के एक
अध्ययन में , यह पाया गया कि अधिकांश सॉफ्टवेयर परियोजनाएं (51%) गंभीर समस्याओं (
समय सीमा को पूरा करने में विफलता, बजट से अधिक, चूक, खराबी, आदि - लगभग। ), और 15% पूरी तरह से सामना कर रही हैं
। असफल। यह 1994 की तुलना में बेहतर है, जब उत्तरार्द्ध 31% था।
हालांकि अधिकांश कार्यक्रम टीमों द्वारा बनाए जाते हैं, यह एक लोकतांत्रिक गतिविधि नहीं है। आमतौर पर केवल एक व्यक्ति वास्तुकला के लिए जिम्मेदार है, बाकी केवल एनकोडर हैं।
प्रोग्रामिंग कठिन काम है। यह एक बहुत ही गहन मानसिक गतिविधि है। अच्छे प्रोग्रामर हफ्ते में 24 घंटे 7 दिन काम के बारे में सोचते हैं। वे अपनी आत्मा और अपने सपनों में सबसे अच्छा कोड लिखते हैं। चूँकि सबसे महत्वपूर्ण कार्य कीबोर्ड से दूर किया जाता है, सॉफ्टवेयर परियोजनाओं के विकास को गति नहीं दी जा सकती है, जिससे लोग कार्यालय में अधिक काम कर सकते हैं, या
नए लोगों को परियोजना में जोड़ सकते हैं ।
अनुवादक से। संभवतः, ये तथ्य इतने कम ज्ञात या अद्वितीय नहीं हैं। लेकिन वे मुझे कहीं अजीब, कहीं शिक्षाप्रद और निश्चित रूप से ध्यान देने योग्य लगे।