Do Tester Have to Code to be useful ? [ Agile Bangkok Meetup @ Kaidee ]

เมื่อวันนี้ ( 21 กันยายน 2559 ) หลังจากที่ผมได้ทำการแย่งตั๋วเข้าร่วมงาน ( 555+ ) ได้เป็นที่สำเร็จแล้วนั้น ผมก็ได้มีโอกาสได้เข้าร่วมงาน Agile Bangkok Meetup ที่บริษัท “ขายดี” ซึ่งในงานครั้งนี้ ได้มี Speaker จากต่างประเทศ นั้นคือ คุณ Janet Gregory ซึ่งได้มาแบ่งปันเรื่องราวในหัวข้อ “ Do Tester Have to Code to be useful ? ”

Edit : “ Do Tester Have to Code to be useful ? แปลว่า “Tester (สมัยนี้) ต้องเขียนโค้ดจึงจะมีประโยชน์จริงหรือ ?” ขอบคุณ คุณ Kulawat Pom Wongsaroj มากครับ

สถานที่ในการบรรยาย ( ถ้าจำไม่ผิด เรียกว่า Kaidee Stadium หรือเปล่านะ )

ก่อนเริ่มงาน

ผมก็ได้เดินทัวตามห้องที่สามารถเข้าได้ ก็ปรากฎว่า โอ้วโห นี่มัน “ออฟฟิศในฝัน” เลยทีเดียว ไม่ว่าจะเป็น ห้องประชุมที่ไม่เหมือนกัน ห้องรับประทานอาหารที่ยังกะอยู่ในคาเฟ่หรือร้านอาหารดีๆ ร้านหนึ่งเลยก็ว่าได้ ประกอบไปด้วยวิวสวยๆ คงทำให้รับประทานอาหารเพลิดเพลิน จนผมอดคิดไม่ได้ว่า พนักงงานที่นี้ เขามีความสุขแค่ไหนกันนะกับแวดล้อมที่ทางบริษัทจัดเตรียมไว้ให้เพื่อตอบสนอง Life Style และความอินดี้ส่วนบุคคลในการพัฒนาซอฟต์แวร์ดีๆซักตัวหนึ่ง

ภาพห้องอาหาร บอกเลย หรูหราเหลือเกิน >< . . . เห็นหุ่นแดงๆ ในภาพมั้ย ได้ยินมาว่า ใครเครียดก็ต่อยหุ่นได้เลยนะ ( ไม่แน่ใจนี่มุขหรือเปล่า 555+ )

Do testers have to code to be useful?

ภาพบรรยากาศส่วนนึงนะครับ ยังมีอีกข้างหลังผม เพราะมีคนสนใจเยอะจริงๆ

ก่อนอื่นเลย . . . เนื่องจากในการพูดครั้งนี้ผมเอง มีทักษะทางด้าน “ภาษาอังกฤษ” ค่อนข้างต่ำเลยทีเดียว จับใจความได้บ้างไม่ได้บ้าง ฟังออกบ้างไม่ออกบ้าง ( 555+ ) อาจจะมีการสรุปคือเข้าใจอะไรผิดพลาด ก็ขออภัยมา ณ โอกาสนี้นะครับ

เอาเข้าจริงๆแล้ว Agile ที่พูดถึงเนี้ย มักจะบอกว่า “ทุกคนสามารถทำงานข้ามกันไปๆมาๆได้ นั้นแปลว่า ทุกๆคนในทีมสามารถที่จะทำทุกอย่างได้ เช่น เขียน Production Code, Test Script, Test Senario”

  • Testing skill such as “Exploratory Testing” are a must . . . ก่อนอื่นต้องขออธิบายก่อนว่า Exploratory Testing นั้น เป็นการทดสอบโดยตั้งสมมติฐานว่าเป็น User ที่ใช้งานเองจริงๆ นั้นแปลว่า ก็ใช้โปรแกรมไป ก็ทดลองไป Comment กันไป กดไปมั่วๆ กดไปแบบที่ไม่มีใน Test-Case กดตั้งใจให้พัง ลอง Hack ทำไปเหอ ที่มันไม่ได้เข้ากับแผนที่วางไว้ เป็นต้น ( อันนี้ประสบการณ์ + กึ๋น ช่วยท่านได้ ) . . . ซึ่งเรื่องนี้ “จำเป็น” นะ . . . นอกจากทักษะในด้านของ การขอความร่วมมือ การประสานงาน การติดต่อสื่อสาร แล้วนั้น แต่ทักษะทางด้าน “Testing” นั้นสำคัญ
  • The whole team must take responsibility for quality : ทุกคนในทีมจะต้องมีความรับผิดชอบในคุณภาพของซอฟต์แวร์ . . . ในการพัฒนาซอฟต์แวร์นั้น ไม่ว่าคุณจะอยู่ในตำแหน่งไหนก็ตาม อาทิ Product Owner (PO), Development Team ( Software Developers, Software Tester , Etc…), Scrum Master , ETC… คุณจะต้องมีและเข้าใจถึงความรับผิดชอบเพื่อที่จะสร้างซอฟต์แวร์ที่มีคุณภาพนั้นเอง
  • Testing starts at the beginning : การ Testing เริ่มตั้งแต่เริ่มแรกเลยล่ะ 
    ไม่ใช่แค่รอให้ ซอฟต์แวร์เสร็จคุณสามารถเริ่มทำมันได้เลย ( เขียน Test Case / Test Scenario ดูซิ )
  • There is no room for zombie tester !!!! ไม่มีที่ยืนให้กับนักทดสอบที่เป็นซอมบี้
    ตรงนี้อาจจะ งงๆ นิดนึงนะ ผมขออธิบายละกัน . . . คำว่า Zombie Tester ในที่นี้ คือ บุคคลที่อยู่ในกลุ่มนักทดสอบ ( หรือ Tester นั้นเอง) ที่ ทำงานตาม “Test Script” ที่มีคนอื่นเขียนไว้ ( ไม่สามารถสร้าง หรือ คิด Test Case เองได้ ) โดยไม่สนใจว่าที่มาที่ไปเป็นอย่างไร ไม่สงสัยเลยว่า เอ๊ะ ทำไมมันจะต้องเป็นแบบน ี้ขอแค่ ทำตาม Test Script ก็พอ จบ ส่ง Result รายงานหัวหน้า จบปิ้ง กลับบ้านได้ . . .
“ Tester ที่เป็นได้เพียงแค่ Zombie Tester ผมไม่เรียกว่าเขาเป็น Tester นะ . . . เขาเป็นแค่ Follower ที่ทดสอบระบบตาม Test Case ที่มีคนอื่นเขียนขั้นตอนมาอย่างละเอียดแล้ว ซึ่งตรงนี้ “ใครๆ” เขาก็ทำได้ . . . หากสุดท้าย Tester ก็โวยวายว่า งั้นคุณ (Developer) ก็มาทำเองเลยซิ โน้น นี่ นั้น ก็คงกลับมาที่ คำถามสุด Classic ว่า แล้วเราจะมี Tester ไว้ทำไม ” — ตรงนี้ในงานไม่ได้พูดนะ ผมพูดเอง

Agile Teams already have coders, but Testers need Technical Awareness : ทีม Agile มักจะมี Coders พร้อมแล้วล่ะ แต่ Tester ยังขาดทักษะทางด้าน Technical Skill

Edit :: สิ่งที่ Tester ต้องมี (ไม่ใช่เขียนโค้ดได้) แต่สิ่งที่ tester ต้องมี(ไม่ใช่เขียนโค้ดได้)คือการมีความรอบรู้ที่พอเพียงเรื่อง technical (จะได้ช่วย programmer ได้ ) — ขอบคุณ คุณ Kulawat Pom Wongsaroj ครับ

นั้นหมายถึงว่า

  • ลองหา Testing Framework มาช่วยทีมดูซิ
  • ควรรู้ภาษาทั่วๆไปที่ Programmer เขาใช้เป็น Loop / If / Case When Then บลาๆ ๆ
  • ควรรู้ภาษาทั่วๆไปลองลูกค้า เช่น พวกคำเฉพาะ คำย่อต่างๆ
  • อ่าน Coding และสามารถเข้าใจได้บ้าง
  • สามารถเขียน Code ได้ ( มันก็ไม่จำเป็นหรอกนะ แต่รู้ไว้ใช่ว่า )
  • Domain Knowledge รู้ในสิ่งที่ทำ
  • อย่าลืมว่า Team มี “Developers / Programmer” อยู่แล้ว แต่คนเหล่านี้มักจะขาดสิ่งเหล่านี้ไป เช่น Exploratory Testing, Security, Performance, UX Testing หากถามว่า จำเป็นมั้ยที่จะต้องเป็น Programmer/ Coder ก็ตอบเลยว่า “ทีมมี Coder/Programmerแล้ววุ๊ยย !!!! ”
  • สามารถไปฝึกฝนทักษะต่างๆได้จาก หนังสือ กลุ่มเรียนตาม Social Facebook หรือ Community ต่างๆ ( ในประเทศไทย ก็เช่น Agile66, Welovebug เป็นต้น )สื่อการเรียนการสอนออนไลน์ต่างๆ
  • Edit :: Test Automation ให้ programmer ทำก็ได้ เพราะยังไงเขาก็ถนัดอยู่แล้ว ส่วน tester (ที่อาจจะไม่ถนัด programming) ก็ทำสิ่งที่ programmer ไม่ถนัดคือ test case design แต่อย่างไรก็ตามก็ควรมี technical awareness ไว้คือรู้พอที่จะคุยกับ programmer ในทีมได้ — ขอบคุณ คุณ Kulawat Pom Wongsaroj ครับ
ไม่มีทางไหนถูกทางไหนผิดหรอก จงหามันด้วยตัวเองเพื่อเพิ่มคุณค่าให้กับทีมของคุณ และจงอย่าหยุดที่จะเรียนรู้

สุดท้ายนี้ ก็ต้องขอขอบคุณทาง Kaidee และ Agile Bangkok Meetup Staff ทุกท่านที่ทำให้เกิดงานดีๆ ในครั้งนี้ ( ขนมอร่อยมาก )

จบละ . . .

สุดท้ายนี้ ก็ขอแป๊ะลิ้งค์ กลุ่มที่น่าสนใจไว้ด้านล่างนี้เลยละกัน

Kaidee Technology : https://www.facebook.com/groups/KaideeTechnology

Agile66 : https://www.facebook.com/groups/agile66/

We Love Bug : https://www.facebook.com/groups/welovebug/

Edit 1 : Tester มีความสำคัญและจำเป็นมากๆต่อการพัฒนาซอฟต์แวร์นะครับ . . .

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.