बिना * समर्पित * परीक्षक भूमिका [बंद] के साथ एक विकास दल की व्यवहार्यता


9

मैं हाल ही में एक दुबला विकास टीम बनाने के बारे में बहुत सोच रहा हूं। अंततः, मैं अपने छोटे सॉफ्टवेयर हाउस को कम संख्या में समान विचारधारा वाले लोगों के साथ खोलना चाहूंगा। लक्ष्य अमीर बनने के लिए नहीं होगा, बल्कि एक स्वस्थ कार्य वातावरण होगा।

अब तक, मैं निम्न के रूप में एक दुबली टीम को परिभाषित कर रहा हूं:

  • छोटे;
  • स्व आयोजन;
  • सभी सदस्यों के मन में क्यूए होना चाहिए;
  • सदस्यों को कई भूमिकाएं निभाने में सक्षम होना चाहिए

अंतिम बिंदु यह है कि मैं थोड़ा चिंतित हूं क्योंकि मंत्र के रूप में ...

डेवलपर्स खराब परीक्षक बनाते हैं।

जबकि मैं समझता हूं कि, अक्सर, डेवलपर अपने कोड या अपने सहकर्मी के कोड को गुणवत्ता के उच्च-स्तरीय आकलन करने के लिए "बहुत करीब" होते हैं, मुझे यकीन नहीं होता कि वे वास्तव में खराब परीक्षक हैं। इसके विपरीत, मेरी राय है कि एक अच्छे डेवलपर के गुण एक अच्छे परीक्षक के गुणों के साथ बहुत अधिक ओवरलैप करते हैं।

यह सही है, मैं देव / परीक्षक समस्या के आसपास होने के विभिन्न तरीकों के बारे में सोच रहा था और मुझे विश्वास है कि मैं एक व्यवहार्य मॉडल के साथ आया हूं।

मेरे मॉडल की आवश्यकता है:

  • 2+ परियोजनाओं के साथ एक छोटा सा सॉफ़्टवेयर हाउस
  • एगाइल (पुनरावृत्त) विकास और वितरण के लिए दृष्टिकोण
  • प्रति प्रोजेक्ट 1 टीम
  • टीम के सभी सदस्य सॉफ्टवेयर डेवलपर होंगे
    • उनकी नौकरी का विवरण स्पष्ट रूप से विकास , गुणवत्ता आश्वासन , परीक्षण और वितरण को जिम्मेदारियों के रूप में बताएगा

यदि इन सभी पूर्व शर्तो को पूरा किया गया है, तो परियोजनाएं निम्नलिखित फैशन में आयोजित की जा सकती हैं (यह उदाहरण दो परियोजनाओं, और बी का उल्लेख करेगा ):

  • टीम का प्रत्येक सदस्य डेवलपर भूमिका और परीक्षक भूमिका के बीच वैकल्पिक रूप से काम करेगा
  • यदि कोई टीम सदस्य प्रोजेक्ट A पर डेवलपर है , तो वे प्रोजेक्ट B पर एक परीक्षक होंगे
    • सदस्य एक समय में केवल 1 परियोजना पर काम करेंगे, और इसलिए के रूप में कार्य होने की उम्मीद है या तो एक देव या एक परीक्षक।
  • एक भूमिका चक्र में देव के रूप में 3 पुनरावृत्तियां और परीक्षक के रूप में 2 पुनरावृत्ति (फिर से, दो अलग-अलग परियोजनाओं पर) शामिल हैं।
  • प्रोजेक्ट टीमों में हर समय 3 देव और 2 परीक्षक होंगे।
  • सदस्य भूमिका चक्र 1 पुनरावृत्ति द्वारा चरण से बाहर होना चाहिए।
    • यह टीम में परिवर्तन की अचानकता को कम करता है। प्रत्येक पुनरावृत्ति के लिए, 2 देवता और 1 परीक्षक पिछले पुनरावृत्ति के समान रहेंगे।

उपरोक्त को देखते हुए, मैं निम्नलिखित पेशेवरों और विपक्षों को देखता हूं:

पेशेवरों

  • कंपनी भर में परियोजना ज्ञान वितरित करता है।
  • सुनिश्चित करता है कि टीम के सदस्य उस कोड का परीक्षण नहीं कर रहे हैं जो उन्होंने लिखने में मदद की है।
  • आउट-ऑफ-फेज रोल साइकिल का मतलब है कि किसी भी परियोजना में 100% सदस्य स्विच नहीं है।
  • वैकल्पिक भूमिकाएँ उबाऊ परियोजनाओं की एकरसता को तोड़ती हैं।

विपक्ष

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

मित्रों और सहकर्मियों के साथ इस दृष्टिकोण पर चर्चा करने पर मुझे मिश्रित समीक्षा मिली है। कुछ का मानना ​​है कि कुछ डेवलपर्स कभी इस तरह की भूमिकाएं करना चाहते हैं, जबकि अन्य मुझे बताते हैं कि वे व्यक्तिगत रूप से इसे आजमाना पसंद करेंगे।

तो मेरा सवाल है: क्या इस तरह का मॉडल व्यवहार में काम कर सकता है? यदि नहीं, तो इसे एक कामकाजी मॉडल में बदल दिया जा सकता है?

नोट: संक्षिप्तता के लिए मैंने केवल देव और परीक्षक भूमिकाओं पर ध्यान केंद्रित किया है। यदि आवश्यक हो तो मैं अन्य भूमिकाओं पर विस्तार करूंगा।



हालांकि डेवलपर्स या परीक्षक हो सकते हैं, इस बारे में ओवरलैप है, मुझे लगता है कि इस सवाल का क्रूस 2 प्रोजेक्ट मॉडल पर आउट-ऑफ-फेज 2 भूमिकाओं के बारे में है।
मेटाफ़ाइट

2
FWIW मेरी निजी राय है कि आप इस तरह दृष्टिकोण के साथ काफी जोखिम उठा रहे हैं। मैं एक पूर्व-परीक्षक हूं (और सबसे खराब नहीं) और जब मैं एक बार एक परियोजना में उतरा था, जहां मैं 2 भूमिकाएं कर सकता था "मैंने पहली बार सोचा था कि वाह, यह सही करने का तरीका जानने का मौका है।" लगभग आधे साल के बाद मैंने अपना विचार बदल दिया और फिर कभी कोशिश नहीं करना चाहता। दोनों भूमिकाओं (देव और क्यूए) को इसे सही करने के लिए 100% फोकस की आवश्यकता होती है, लेकिन जब आप जिल्द बनाते हैं, तो आप गुणवत्ता या उत्पादकता या दोनों में विचलित होते हैं। BTW हो रही है कि इस परियोजना में समर्पित परीक्षक सबसे प्रभावशाली आरओआई मैंने कभी देखा उत्पादित
कुटकी

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

2
आप जो करना चाहते हैं उसे पैराफ्रेसिंग करना: "मैं एनेस्थेटिस्ट की एक जोड़ी को किराए पर लेने के बजाय एक मेडिकल सर्जरी खोलना चाहता हूं, मैं पर्याप्त सर्जन नियुक्त करूंगा और उन्हें पूरी तरह से घुमाऊंगा"। आपका प्रस्ताव एक पेशेवर परीक्षक एक टीम प्रदान करता है की समझ की कमी (ठेठ) को दर्शाता है। आप यह कर सकते हैं, कई करते हैं, कुछ इसे काम करते हैं। जो आपको कभी पता नहीं चलेगा कि आप क्या याद कर रहे हैं और आप क्या बेहतर कर सकते हैं। वैसे - परीक्षण क्यूए नहीं है - बस एक सबक एक पेशेवर परीक्षक आपको सिखाएगा।
मटनज़

जवाबों:


8

मैं इससे सहमत नहीं हूं

डेवलपर्स खराब परीक्षक बनाते हैं

मैंने अपने करियर में जिन टीमों में काम किया है, उनमें से अधिकांश को कोई क्यूए समर्थन नहीं मिला है। इसमें कुछ बड़े, वैश्विक निगम शामिल हैं जो अपने वैश्विक लॉगिन और पंजीकरण प्रणाली जैसे उत्पादों को शामिल करते हैं। एक अन्य मामले में, मेरे पास कंपनी का 30% राजस्व मेरे डेस्क पर एक बॉक्स के माध्यम से चल रहा था। (इन प्रथाओं को बीटीडब्ल्यू की सलाह नहीं दी जाती है;)) इन कंपनियों ने अपने कोड को सही तरीके से काम करने के लिए सुनिश्चित करने के लिए इंजीनियरों पर भरोसा किया था। और हम, हमारे काम को सही ढंग से सुनिश्चित करने के लिए, हमारे काम पर गर्व करने के लिए, विस्तार-उन्मुख, थोड़ा बाध्यकारी और गर्व के साथ।

इसके अलावा, एक डेवलपर के रूप में मैं परीक्षकों की तुलना में बहुत अधिक परीक्षण करता हूं । अगर मैं जावा के साथ काम नहीं कर रहा हूं, तो मैं नियमित रूप से इकाई का परीक्षण अपने कोड को ९ ०% या १००% तक कर सकता हूं।

मुझे टेस्टर्स के साथ काम करना पसंद है क्योंकि वे इस पर एक अलग दृष्टिकोण से आते हैं, और उन चीजों को पकड़ते हैं जिनके बारे में मैंने नहीं सोचा था। लेकिन मैं वास्तव में 30-50% से अधिक परीक्षण कवरेज प्रदान करने के लिए उन पर भरोसा नहीं करता, जबकि मैं 100% के लिए खुद को जिम्मेदार ठहराता हूं। (BTW कि उन पर एक स्लैम नहीं है - वे आमतौर पर परियोजनाओं में पतली फैली हुई हैं।)

इंजीनियरों से साक्षात्कार में यह पूछने के बजाय कि क्या वे क्यूए करना चाहते हैं, पूछें: यदि उत्पादन में बग दिखाई देता है, तो कौन जिम्मेदार है? यदि मैं बग का परिचय देता हूं, और एक ग्राहक इसका अनुभव करता है, तो मुझे बुरा लगता है और जिम्मेदारी लेता हूं। मैं क्यूए लोगों को दोष नहीं देता। IMHO वह इंजीनियर है जिसे आप किराए पर लेना चाहते हैं (और उसके साथ काम करना चाहते हैं)

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

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

लेकिन मैंने जिन टीमों पर काम किया है, उनमें से अधिकांश ने विशेष रूप से छोटी कंपनियों के लिए, औपचारिक क्यूए घटक नहीं लिया है।


6

मैं @Rob Y के उत्तर से सहमत हूं, और कुछ बिंदु जोड़ना चाहूंगा:

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

  • देव बुरे परीक्षक बनाते हैं ... और परीक्षक बुरे परीक्षक बनाते हैं। क्यूए कठिन है। वास्तव में, यह बहुत कठिन है। आपकी समस्या लोगों और भूमिकाएं नहीं हो सकती हैं। आपकी समस्या यह हो सकती है कि आपके सॉफ़्टवेयर को बाहर ले जाया जाए। फिर से, फुर्तीले में, यह आपकी टीम की जिम्मेदारी है कि वह उत्पादन से पहले परीक्षण करे (चाहे उन्होंने क्यूए समर्पित किया हो या नहीं)।

  • क्यूए विकास का हिस्सा है, जैसे कि रिफैक्टिंग, आर्किटेक्चर, आदि। यह एक निश्चित, सहमत, यथार्थवादी मानक के लिए सॉफ्टवेयर का उत्पादन करने के लिए एक विकास टीम की जिम्मेदारी है। क्यूएएस उस मानक में सुधार नहीं करेंगे। बेहतर डेवलपर्स शायद करेंगे।

  • प्रोवोकेशन: कौन कहता है कि क्यूए क्यू-आईएनजी में डेवलपर्स से बेहतर है? यह कुछ लोग कहते हैं लेकिन ... [उद्धरण वांछित]। क्यूए की आवश्यक "हैकर" मानसिकता एक डेवलपर मानसिकता है। वास्तव में, मूल रूप से सभी हैकर्स डेवलपर थे या क्यूए नहीं ...

  • प्रोवोकेशन 2: 99% क्यूए काम लिपियों के माध्यम से स्वचालित (और, मैं कहता हूं, होना चाहिए ) स्वचालित हो सकता है । एक अच्छी टीम यह करेगी, और इसे ठीक से करने के लिए आपको ... डेवलपर्स की आवश्यकता है।


प्रोवोकेशन 2 पर टिप्पणी: डेवलपर्स द्वारा परीक्षण स्वचालन किया जा सकता है, लेकिन जरूरी नहीं। परीक्षक जो कोड के बारे में जानते हैं (लेकिन किसी प्रो डेवलपर के स्तर पर नहीं) अच्छी पर्याप्त स्क्रिप्ट लिख सकते हैं।
मेटे माईस

4

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

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

यदि आप इसके बारे में कठोर हैं, तो यह बहुत अच्छी तरह से काम कर सकता है। यह हमारे लिए था - हमारे पास हमेशा ई-कॉमर्स वेब सेवा में उत्कृष्ट अपटाइम और कम दोष थे।


यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। क्या आप इसे बेहतर आकार में संपादित करेंगे ?
gnat

2
क्षमा करें, सुबह ब्रेन-डंप। मैंने अब इसे तोड़ दिया है।
रोरी हंटर

2

पहले एक चेतावनी - मैंने पेशेवर रूप से क्यूए इंजीनियर और सॉफ्टवेयर इंजीनियर दोनों के रूप में काम किया है।

क्या ऐसा मॉडल व्यवहार में काम कर सकता है?

कुछ भी संभव है।

जबकि मैं समझता हूं कि, अक्सर, डेवलपर अपने कोड या अपने सहकर्मी के कोड को गुणवत्ता के उच्च-स्तरीय आकलन करने के लिए "बहुत करीब" होते हैं, मुझे यकीन नहीं होता कि वे वास्तव में खराब परीक्षक हैं। इसके विपरीत, मेरी राय है कि एक अच्छे डेवलपर के गुण एक अच्छे परीक्षक के गुणों के साथ बहुत अधिक ओवरलैप करते हैं।

यह इस बात पर निर्भर करता है कि आपको किस प्रकार के परीक्षण की आवश्यकता है। यदि आपको यह सुनिश्चित करने के लिए मन-सुन्न, नीरस, दोहराव मैनुअल परीक्षण की आवश्यकता है, तो यह सुनिश्चित करने के लिए कि हर एक स्क्रीन या तत्व का वास्तव में एल्बोनियन में अनुवाद किया गया है ... आपको समस्याएं होने वाली हैं।

और मेरे अनुभव में, हर परियोजना को कम से कम इस तरह के परीक्षण की आवश्यकता होती है (भले ही हर परियोजना ने उस प्रकार का परीक्षण न किया हो)। समस्या यह है कि आप QA सर्वोत्तम प्रथाओं से अपरिचित लोगों से इस प्रकार का परीक्षण नहीं करवाते हैं। नरक, आप इसे उन लोगों से भी नहीं पाते हैं जो सर्वोत्तम प्रथाओं को जानते हैं, लेकिन डेवलपर्स पर "भरोसा" करते हैं।

एक परीक्षक के रूप में, आप डेवलपर्स पर भरोसा नहीं कर सकते। मैंने उन कीड़ों की गिनती खो दी है जो मैंने पाया है कि "संभवतः उस बदलाव के कारण नहीं हो सकता" या "मेरे देव बॉक्स पर पूरी तरह से काम करता है"।

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

हो सकता है कि आप किसी तरह से भयानक हों, जिसका मैंने अभी तक सामना नहीं किया है - लेकिन मुझे इसमें संदेह है।


हो सकता है कि मेरे मॉडल को मेरे देव-परीक्षकों के प्रस्तावित दृष्टिकोणों की समीक्षा करने और सर्वोत्तम अभ्यास दृष्टिकोणों की सिफारिश करने के लिए एक सीनियर QA भूमिका की आवश्यकता हो। ओह, और ज्यादातर लोग मुझे भयानक नहीं पाते हैं, लेकिन मेरी माँ :) करती है और यह मेरे लिए काफी अच्छा है!
20

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

0

मुझे लगता है कि यह काम कर सकता है, लेकिन कुछ चीजें हैं जो मुझे यकीन है कि आप करेंगे।

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

परियोजनाओं को सिंक्रनाइज़ करना व्यावहारिक समाधान की तरह नहीं लगता है। यदि कोई किसी परियोजना पर एक परीक्षक है, तो वे प्रोग्रामर को बदलने और इसके विपरीत सबसे अच्छा उम्मीदवार हो सकते हैं।

यह योजना टीमों को पर्याप्त रूप से आत्म-संगठित नहीं होने देती है। एक रणनीति शायद सभी टीमों और सभी परियोजनाओं में फिट नहीं होगी।


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

यह वास्तव में इस बात का भी नहीं होना चाहिए कि उम्मीदवार दोहरी भूमिका निभाने के इच्छुक हैं या नहीं। यदि आप एक सफल कंपनी चलाना चाहते हैं तो आपको ऐसे लोगों को रखना चाहिए जहाँ वे उत्कृष्टता प्राप्त करते हैं। उस व्यक्ति को परीक्षण पर क्यों रखा जाए जो 2 विश्वसनीय सिस्टम को अपने दम पर डिजाइन और कोड कर सकता है जहां एक ही समय में एक सिस्टम करने के लिए 4 या 5 की टीम लगती है? इसी तरह, परीक्षण के अपने कौशल हैं जो इसे अच्छी तरह से करने में सक्षम हैं। मानव सभ्यता में सबसे बड़ी प्रगति तब हुई जब मानव ने विशेषज्ञ बनाना शुरू किया। क्यों एक सॉफ्टवेयर कंपनी चलाना माँ की तुलना में कोई भी अलग होगा जो पहले से ही सबसे अच्छा काम करता है?
डंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.