QA ไม่ใช่ Tester นะ

Quality Assuranceมันเนื่องมาจาก บล็อกหนึ่งที่บ่นถึงสัดส่วนระหว่าง Dev และ QA ของทีมตัวเองว่าไม่สมดุล ซึ่งเหมือนจะแนะว่าสัดส่วนระหว่าง Dev และ QA จะต้องใกล้เคียง ผมขอบอกว่า มันไม่จริง และได้ตอบไปว่า

QA ไม่ใช่ tester นะ

สิ่งนี้มันเหมือนเส้นผมบังภูเขา เพราะ พอเราออกจากโลก waterfall แล้ว แต่เรายังมีกำแพงกั้นระหว่าง Dev กับ Test อยู่ ว่า Developer มีหน้าที่ Dev และ QA มีหน้าที่ Test พอเรารีลิสบ่อยขึ้นการเทสมันก็เกิดบ่อยขึ้นไปด้วย การจะใช้ชีวิตแบบเดิม ที่เดฟใช้การ push งาน ไปหา เทสเดอร์ นี่มันอยู่ไม่ได้หรอก ไม่ว่าจะเพิ่มเทสเตอร์ไปเป็นกี่เท่า มันก็ไม่พอ จากการคำนวณของผมบอกว่า ถ้าทีมเดฟเข้าถึง agility สุดๆ แล้ว อาจจะต้องใช้ ถึง 1 ต่อ 100 พิมพ์ไม่ผิดครับ เดฟหนึ่งคนต้องใช้ เทสเตอร์ถึงร้อยคนถึงจะเอาอยู่ เพราะด้วยการทำงานแบบอไจล์ เค้ามีโอกาส commit โค้ดได้ถึงวันละหลายสิบครั้ง และทุกครั้ง มีโอกาสกระทบ กับฟีเจอร์เป็นจำนวนมาก ถ้าจะให้ได้คุณภาพเท่ากับการทำงานแบบ waterfall เทสเดอร์ ต้องมากกว่า เป็น Quadratic คือ n^2 หมายคือว่า ถ้าเดฟเก่งขึ้น หนึ่งเท่า(n=2) ต้องใช้ เทสเดอร์สี่คน(2^2) แปลว่า เมื่อถึงที่สุดของอไจล์ที่สิบเท่า ต้องใช้ เทสเตอร์ ร้อยคน (10^2) ผมไม่ได้พูดเกินจริงนะ

แล้วถ้าเทสเตอร์เพิ่มพลังด้วยล่ะ? คำตอบคือทำไม่ได้ เพราะ การเทสมันเป็น action ที่คงที่คือ ให้แรงงานพม่ามาคลิ๊ก กับให้ดอกเตอร์มาคลิ๊ก ใช้เวลาเท่ากัน เพราะอย่างนั้นการเทส(testing) จึงไม่สามารถเพิ่มพลังแบบธรรมดาเหมือนกับการเดฟได้ ที่พอมีแพทเทิร์น มีระบบการทำงานที่เปลี่ยนไปแบบอไจล์ที่ใช้ฟีเจอร์ดริฟเวนแล้วมันได้ฟีดแบคเร็วขึ้น

แต่มันไม่ได้สิ้นหนทางแบบนั้น เพราะ QA นั้นไม่ใช่้ เทสเตอร์ QA นั้นมาจากคำว่า Quality Assurance หมายความว่าพวกเขาคือผู้เชี่ยวชาญด้าน Quality หรือ คุณภาพ ของซอฟแวร์ พวกเขาคือผู้รู้และเข้าใจ ธุรกิจและลูกค้า พวกเขานั่งอยู่ในหัวใจของคนที่ได้ประโยชน์จากซอฟแวร์ที่กำลังถูกพัฒนา ด้วยหน้าที่นี้พวกเขาจะเป็นคนกำหนดว่า คุณภาพคืออะไร? ผ่านการสร้าง test script และ test plan ที่สำคัญสองอย่างนี้จะทำเสร็จก่อนที่จะเริ่มโค้ดเสียอีก เหล่าเดฟ จะใช้ส่ิงนี้เป็นแนวทางในการพัฒนา เพื่อให้ตรงกับความต้องการของลูกค้ามากที่สุด (ก็อย่างที่บอกคิวเอ คือคนที่เข้าใจลูกค้าที่สุดในทีม)

ในอไจล์ทีมนั้น ไม่มีตำแหน่ง tester แต่ยังคงมีการทำ testing อยู่ แล้วใครล่ะ ที่เป็นคนทำ testing คำตอบคือ เหล่า เดฟ นั่นแหละ ที่ทำการเทส อาจจะเทสโค้ดของตัวเอง หรือ อาจจะผลัดกันเทสโค้ดของกันและกัน อาจจะ เขียนโค้ดเพื่อเทสโค้ด โดยใช้ testing tool อาจจะเป็น automate หรือ เป็น xUnit framework อาจจะเป็น TDD ATDD BDD หรืออะไรก็แล้วแต่ แต่มีอยู่อย่างเดียวที่ไม่เป็นคือ การให้ QA ผูกขาดการทำ testing มันเป็นการสุญเปล่า ไร้ค่า เสียเวลา และนำไปสู่ทางตัน ในการที่เราให้ QA ทำหน้าที่ tester และสิ่งนี้กำลังสูญสิ้นไปพร้อมกับทีมที่ยังคงทำอย่างนั้นอยู่

ของจบแบบหักดิบว่า

ในอไจล์ทีม นั้น ไม่มี Tester หากแต่ยังคงมี Testing

ลิ้งค์
ปัญหาที่เกิดจากสัดส่วนของ Dev และ QA ที่ต่างกันมากเกินไป

Advertisements

2 thoughts on “QA ไม่ใช่ Tester นะ

  1. Pingback: ปัญหาที่เกิดจากสัดส่วนของ Dev และ QA ที่ต่างกันมากเกินไป | Scrum J2: The power of Teamwork

ใส่ความเห็น

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s