उच्च-गुणवत्ता वाला software development कैसे करें, यह सीख न पाने की हकीकत
(florianbellmann.com)software quality बनाने के तरीकों पर शिक्षा का अभाव
- विश्वविद्यालय में computer science पढ़ते समय software quality assurance (QA) पर शिक्षा नहीं दी जाती।
- ज़्यादातर समय algorithms, computer कैसे काम करता है, languages और concepts का इतिहास आदि पर खर्च होता है।
- project management approaches और Scrum पर semester होते हैं, लेकिन QA को बिल्कुल नहीं पढ़ाया जाता।
कंपनियाँ समय पर product launch कैसे करती हैं
- कंपनियाँ budget की वजह से QA standards और measures को project से सबसे पहले हटा देती हैं।
- development में देरी हो जाए या scope बढ़ जाए, तो QA के लिए पर्याप्त समय नहीं बचता।
- बहुत कम, बिना संरचना वाली testing के बाद unstable software release कर दिया जाता है।
hamster wheel से बाहर निकलने का तरीका
- project में छूट गए QA measures के बारे में बोलने के लिए अनुभव और आत्मविश्वास बनाने में कई साल लग जाते हैं।
- छूटी हुई monitoring का पता चलता है, production system fail होने जैसी समस्याएँ सामने आती हैं।
- QA measures लागू न करने पर ठीक से सीख न पाने की समस्या पैदा होती है।
पैसों की बात करना
- यह समझाना कि software "ज़्यादा stable" होगा या "maintain करना बहुत आसान हो जाएगा", non-developers के लिए ठोस बात नहीं लगती।
- QA न करने की cost के बारे में बात करनी चाहिए।
- उदाहरणों के साथ cost के नज़रिए से QA measures समझाना प्रभावी होता है।
minimum effective dose
- QA measures को over-engineer नहीं करना चाहिए और न ही project की प्रगति रोकनी चाहिए।
- application की core functionality को test करना और यह सुनिश्चित करना महत्वपूर्ण है कि वह हमेशा अपेक्षा के अनुसार काम करे।
- 'minimum effective dose' (MED) की अवधारणा का उपयोग करके सबसे महत्वपूर्ण हिस्सों से शुरुआत की जाती है।
जिन चीज़ों को ध्यान से देखना चाहिए
- नया project शुरू करते या उसमें शामिल होते समय QA concepts को ढूँढना चाहिए।
- team ने QA के बारे में सोचा है या नहीं, यह दिखाने वाले documents या testing plans महत्वपूर्ण हैं।
- नया code लिखते समय उसके साथ tests लिखने से code की structure ऐसी बनती है कि वह वास्तव में testable हो।
project के फायदे
- quality पर बात करके और संभव solutions सुझाकर एक developer के रूप में अपना प्रभाव बढ़ाया जा सकता है।
- QA measures की मदद से project स्वस्थ गति से बढ़ सकता है।
project को बेहतर बनाने के तरीके
- QA measures का उपयोग करके आप project में quality software लिखने वाले व्यक्ति के रूप में पहचाने जा सकते हैं।
- project में MED को ध्यान में रखना चाहिए और team के भीतर बदलाव की आवाज़ बनना चाहिए।
GN⁺ की राय
इस लेख की सबसे महत्वपूर्ण बात यह है कि software development process में quality assurance (QA) के महत्व और उसे लागू करने के तरीकों को लेकर जागरूकता की कमी है। QA को अक्सर नज़रअंदाज़ कर दिया जाता है, लेकिन लंबे समय में project की सफलता और स्थिरता के लिए यह अनिवार्य है। यह लेख शुरुआती software engineers को QA के महत्व से अवगत कराता है और वास्तविक projects में QA को integrate करने के ठोस तरीके प्रस्तुत करता है, इसलिए यह दिलचस्प और उपयोगी है।
1 टिप्पणियां
Hacker News राय
Software engineering, computer science (CS) का मुख्य विषय नहीं होता; इसे अक्सर अन्य क्षेत्रों में पढ़ाया जाता है और यह elective subjects या software engineering courses में कवर किया जाता है.
जिन लोगों के पास computer science degree होती है, उनके साथ सहयोग करना ज़्यादा आसान लगता है. वे अच्छे algorithms के महत्व को समझते हैं और parser या encryption को खुद implement करने की कोशिश नहीं करते.
High-quality software development, experienced companies में सीखा जा सकता है.
यह दावा कि bug-free software को समय पर deploy करना चाहिए, quality software पर लेख शुरू करने के लिए एक अनुपयुक्त premise है.
कुछ universities, computer engineering programs के साथ internships और practical training पर ज़ोर देती हैं.
यह दावा कि universities industrial software building सिखाती हैं, बढ़ा-चढ़ाकर कहा गया है.
यह तर्क कि software "ज़्यादा stable" होगा या "maintenance आसान होगी", codebase पर सीधे काम न करने वाले लोगों को ज़्यादा persuasive नहीं लगता.
Quality, time, communication complexity, और cost में से तीन चुने जा सकते हैं.
Software developers ने high-quality software बनाना सीखा है, लेकिन company चलाने वाले MBA या board इसे समझ नहीं पाते, इसलिए इसे व्यवहार में लागू करना मुश्किल होता है.
Quality वास्तव में ऐसा गुण है जिसे केवल practice के माध्यम से ही हासिल किया जा सकता है.