सॉफ़्टवेयर इंजीनियर के रूप में 20 साल में सीखी गई 20 बातें
(simplethread.com)- मुझे अभी भी सब कुछ नहीं पता: हम ऐसे लोग हैं जिन्हें पूरी ज़िंदगी सीखते रहना होता है
- सॉफ़्टवेयर डेवलपमेंट में सबसे ज़रूरी बात है वही बनाना जिसकी ज़रूरत है
- सर्वश्रेष्ठ सॉफ़्टवेयर इंजीनियर डिज़ाइनर की तरह सोचते हैं
- सबसे अच्छा कोड वह है जिसमें कोड न हो, या जिसे मेंटेन करने की ज़रूरत न पड़े
- सॉफ़्टवेयर किसी उद्देश्य को पाने का साधन है
- कभी-कभी आरी की धार तेज़ करना छोड़कर कुछ काटना शुरू करना चाहिए
- अगर आपको यह अच्छी तरह समझ नहीं है कि क्या संभव है, तो आप एक अच्छा सिस्टम डिज़ाइन नहीं कर सकते
- हर सिस्टम आखिरकार परेशान करने लगता है, इसलिए इसे पार करना सीखें
- कोई भी "क्यों" पर्याप्त बार नहीं पूछता
- हमें 10x प्रोग्रामर ढूँढ़ने से ज़्यादा, 0.1x प्रोग्रामर से बचने पर ध्यान देना चाहिए
- सीनियर इंजीनियर और जूनियर इंजीनियर के बीच सबसे बड़ा फ़र्क यह है कि क्या उन्होंने टूल्स या सॉफ़्टवेयर लिखने के तरीके पर अपनी राय विकसित की है
- लोग वास्तव में innovation नहीं चाहते
- आपका data आपके सिस्टम का सबसे महत्वपूर्ण हिस्सा है
- तकनीकी शार्क खोजें (ऐसी तकनीक जो तेज़ बदलावों के बावजूद लंबे समय तक टिकती है)
- विनम्रता को अज्ञानता समझने की गलती न करें
- सॉफ़्टवेयर इंजीनियरों को नियमित रूप से लिखना चाहिए
- process को जितना संभव हो उतना Lean रखें
- सॉफ़्टवेयर इंजीनियरों को भी (हर इंसान की तरह) ownership महसूस होनी चाहिए
- कोई उम्मीदवार अच्छा teammate होगा या नहीं, यह इंटरव्यू से पता नहीं चलता
- हमेशा और छोटे सिस्टम बनाने की कोशिश करें
महत्वपूर्ण
- इस लेख की शुरुआत में यह चेतावनी दी गई है
जब आप "सलाह से भरे ब्लॉग" पढ़ते हैं, तो ज़्यादातर सलाह context पर निर्भर होती है, लेकिन अक्सर वह context साथ में नहीं दिया जाता
context को समझे बिना दी गई सलाह बेकार हो सकती है, बल्कि नुकसानदेह भी - इसलिए उन्होंने अपने context के बारे में थोड़ा बताया है
- अपने करियर के पहले आधे हिस्से में उन्होंने छोटे व्यवसायों/startup में काम किया, फिर consulting company में जाकर बड़े बिज़नेस से जुड़े काम किए
- उसके बाद SimpleThread की स्थापना की और उसे 2 लोगों से बढ़ाकर 25 तक पहुँचाया
- 10 साल पहले वे ज़्यादातर छोटे व्यवसायों के साथ काम करते थे, और अब बड़े व छोटे व्यवसायों का मिश्रण है
- इसलिए वे
- हमेशा छोटे, Lean टीमों में काम करते रहे हैं जहाँ बहुत छोटी शुरुआत से बहुत काम करना पड़ता है
- किसी खास टूल से ज़्यादा "काम करने वाला सॉफ़्टवेयर" को महत्व देते हैं
- हमेशा नए प्रोजेक्ट शुरू करते हैं, लेकिन कई सिस्टमों का मेंटेनेंस भी करना पड़ता है
- ज़्यादातर अन्य बातों से ऊपर इंजीनियर productivity को महत्व देते हैं
- इस context को समझकर ऊपर की बातों को पढ़ें। यहाँ केवल शीर्षक/बिंदु दिए गए हैं, विस्तृत सामग्री के लिए मूल लेख देखें।
14 टिप्पणियां
मैं इसे दिन में एक बार पढ़ने आया करूंगा। 23/06/04
यह
इससे बेहतर लगता है।
सॉफ़्टवेयर डेवलपमेंट में सबसे महत्वपूर्ण बात
ज़रूरीचीज़ बनाना हैयह ज़्यादा बेहतर लगता है।
अच्छा है, धन्यवाद~!
लोग सच में innovation नहीं चाहते <- इसका क्या मतलब होगा?
लोग innovation के बारे में बात करते हैं, लेकिन कहते हैं कि जब आप वास्तव में कुछ innovative लेकर आते हैं, तो ज्यादातर नकारात्मक feedback ही मिलता है। इसलिए वे कहते हैं कि लंबी अवधि को ध्यान में रखकर आगे बढ़ना चाहिए।
यह चेतावनी काफ़ी गहराई से असर करती है।
वाह, यह सचमुच बहुत अच्छा लेख है..
लगता है यहाँ technical sharks का मतलब 'पुरानी' तकनीक नहीं, बल्कि परखी हुई और स्थिर तकनीक से है।
अरे, अभिव्यक्ति थोड़ी अजीब थी। मैंने उसे ठीक कर दिया है।
अच्छा लेख है।
"महत्वपूर्ण" के तौर पर अलग से चिन्हित किए गए हिस्से मुझे सच में बहुत अच्छे लगे। खासकर इसलिए कि उसके साथ context भी दिया गया था।
आह, अब यह काफी बेहतर है। मैंने इसे संशोधित कर दिया है।