3 पॉइंट द्वारा GN⁺ 2023-12-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

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 टिप्पणियां

 
GN⁺ 2023-12-09
Hacker News राय
  • Software engineering, computer science (CS) का मुख्य विषय नहीं होता; इसे अक्सर अन्य क्षेत्रों में पढ़ाया जाता है और यह elective subjects या software engineering courses में कवर किया जाता है.

    CMU में software engineering के master's और PhD programs चलाए जाते हैं, और वहाँ blog post में बताई गई बातों सहित कई तरह के topics पढ़ाए जाते हैं.

  • जिन लोगों के पास computer science degree होती है, उनके साथ सहयोग करना ज़्यादा आसान लगता है. वे अच्छे algorithms के महत्व को समझते हैं और parser या encryption को खुद implement करने की कोशिश नहीं करते.

    यह भी कहा गया है कि software engineering में teamwork और quality को लेकर मौजूद भोलेपन को ठीक करने की प्रक्रिया की कमी है.

  • High-quality software development, experienced companies में सीखा जा सकता है.

    पहले यह FAANG कंपनियाँ थीं, लेकिन अब TailScale जैसी कंपनियों से भी सीखा जा सकता है. बेकार microservices, Docker, JSON processing आदि का अति-प्रयोग किए बिना, QuickCheck, hypothesis testing, और fuzzing जैसी तकनीकों से quality बढ़ाई जा सकती है.

  • यह दावा कि bug-free software को समय पर deploy करना चाहिए, quality software पर लेख शुरू करने के लिए एक अनुपयुक्त premise है.

    यह मानना कि bug-free code deploy किया जा सकता है, वास्तविकता से कटा हुआ विचार है.

  • कुछ universities, computer engineering programs के साथ internships और practical training पर ज़ोर देती हैं.

    कई universities के CS departments, mathematics departments से अलग होकर बने हैं और इसलिए theory पर ज़ोर देते हैं. University सिर्फ job training school नहीं है, बल्कि जटिल सामग्री में mastery हासिल करने की क्षमता विकसित करने की जगह है.

  • यह दावा कि universities industrial software building सिखाती हैं, बढ़ा-चढ़ाकर कहा गया है.

    आज के समय में जब continuous deployment pipelines आम हो चुकी हैं, QA departments द्वारा manually bugs ढूँढ़ना पुराने तरीके के रूप में देखा जाता है.

  • यह तर्क कि software "ज़्यादा stable" होगा या "maintenance आसान होगी", codebase पर सीधे काम न करने वाले लोगों को ज़्यादा persuasive नहीं लगता.

    Developers, quality assurance (QA) न करने की लागत की बात करते हैं, क्योंकि यही business और managers को समझ आने वाली भाषा है.

  • Quality, time, communication complexity, और cost में से तीन चुने जा सकते हैं.

    Software engineering एक team sport है, जिस पर factory process लागू करना मुश्किल है; इसलिए teamwork और individual growth को महत्व देना चाहिए.

  • Software developers ने high-quality software बनाना सीखा है, लेकिन company चलाने वाले MBA या board इसे समझ नहीं पाते, इसलिए इसे व्यवहार में लागू करना मुश्किल होता है.

    ज़्यादातर workplaces में software developers की राय को बड़े पैमाने पर नज़रअंदाज़ कर दिया जाता है.

  • Quality वास्तव में ऐसा गुण है जिसे केवल practice के माध्यम से ही हासिल किया जा सकता है.

    High-quality results देने की क्षमता, बार-बार के अभ्यास से आती है.