Pattern ไหน ดีพี่ ?
วันก่อนได้รับคำถามเรื่องการเขียน code ของ automated test ที่น่าสนใจ “พี่ๆ เขียน pattern ไหนดี ?”
“ระหว่างเขียนเป็นธรรมดาๆเพื่อนอ่านแล้วรู้เรื่อง หรือ เขียนแบบ …ดูแล้วเท่ห์ดี 😎”
(น้องคนที่ถามเป็นมือวางอันดับหนึ่งของทีมในการเขียน automated test ซึ่งปัจจุบันกำลังพยายาม share knowledge เพื่อให้เพื่อนในทีมมาช่วยกันเขียนมากขึ้น)
คำตอบแรกที่ผมตอบไปคือ “ไม่รู้!!! 😄”
แต่ถามน้องมันต่อว่า “เราชอบแบบไหนละ”
น้องมันก็ตอบ “ไม่รู้พี่ยังลังเลอยู่ ”
น้องมันถามต่อ “แล้วฝรั่งเค้าเขียนยังไง ?”
คำตอบของผมคือ “ไม่รู้ พี่เป็นมะม่วง!! ฮ่าๆ ล้อเล่นครับ จริงๆ แล้ว ผมพูดต่อไปว่า”
พี่จะเล่าให้ฟังก่อนว่า การเขียน automated test ในแต่ละที่จะไม่เหมือนกัน
ในบางที่ ให้คนๆเดียวรับผิดชอบ code ก็จะถูกเขียนตามใจเขา refactorตามใจเขา โดยส่วนตัวแล้ว พี่ไม่แนะนำ ลักษณะนี้ควรจะเกิดในช่วงแรกๆ ของการ build scrum team หลังจากนั้น code ส่วนนี้ ทุกคนควรได้จับ และ มันควรเป็นสมบัติของทีม (collective code ownership)
ในบางที่ เขียน เพื่อ export ข้อมูลออกมาเป็น document เพื่อให้ audit ตรวจ ก็จะเขียนเป็นขั้นตอนตาม style ของ document เพื่อมสามารถเอาไปส่งให้ audit ตรวจได้
ในบางที่ ในทีมทุกคนจะช่วยกันเขียน ซึ่ง style การเขียน ก็จะเขียนให้เข้าใจง่ายที่สุดไม่ซับซ้อน แต่ในกรณีที่ทีม มีความสามรถ ในการเขียน automated test มาระยะหนึ่ง อาจจะขยับ ไปขั้นสูงกว่าก็เป็นได้ (แต่ส่วนตัวผมไม่แนะนำ ผมชอบแบบง่ายที่สุด อ่านเค้าใจง่ายที่สุด)
และสิ่งที่ผมแนะนำน้องมันต่อคือ ผมชอบ เขียน และอ่าน autotmated test ในมุมมองของ user ทั่วไป หรือ มุมมองที่มาจากคนใช้งานจริงๆ และ ไม่ซับซ้อนนะ สำหรับผมอ่านแล้วไหลลื่น และ ดูง่ายดี
สุดท้ายแล้ว น้องมันก็เลือก ทางที่ไม่ซับซ้อน (ไม่ต้องเท่ห์มาก ก็ได้ 555) เนื่องจาก state ของทีม ณ ปัจจุบัน ทีมเพิ่งทำความรู้จักกับการเขียน automate test ได้ไม่นาน เลยไม่อยากเพิ่มความซับซ้อน และอยากให้อ่านเค้าใจกันทุกคน
ทั้งหมดทั้งมวลนี้ เป็นประสบการณ์และมุมมองของผมล้วนๆนะครับ อาจจะไม่ตรงใจใครหลายๆคน แต่ถ้าเห็นว่าเป็นประโยชน์ก็ลองนำไปใช้ดูนะครับ มันจะดีต่อใจกับผมมากๆ
ขอบคุณมากครับ 😉