Test Driven Development (TDD) คือวิธีการที่มีค่าใช้จ่าย และ มีประโยชน์
เหมาะสมสำหรับคุณ เพื่อนร่วมทีม และ ทีม หรือไม่นั้น
มันขึ้นอยู่กับบริบทของคุณเอง เช่น
domain ที่คุณอยู่
ระดับความสามารถของคุณ
ตารางงานที่ได้วางแผน
และความเสี่ยงต่างๆ ของสิ่งที่คุณทำอยู่
และอื่นๆ อีกมากมาย
แน่นอนว่า วิธีการนี้อาจจะไม่ถูกนำไปใช้งาน
ถ้าคุณทำแล้วมันแย่
ซึ่งมันก็เหมือนกับวิธีการอื่นๆ เช่นกัน
ไม่ได้แตกต่างกันเลย
แต่ถ้าคุณต้องการรับรู้ว่า TDD มันดีและมีประโยชน์อย่างไร
วิธีการก็ง่ายมาก คือ ฝึก ฝึก ฝึก
ลงมือทำ มากกว่า พูด และ อ่าน
วิธีการเริ่มต้นง่ายๆ คือ ตั้งเป้าหมายในสิ่งที่คุณต้องการจาก TDD ก่อนสิ
เช่น
คุณต้องการที่จะเขียน unit test ที่มีประสิทธิภาพ และ ดี
โดยที่ยังไม่ลงการ implement ในส่วนรายละเอียด
คุณอาจจะต้องการปรับปรุงการออกแบบระบบ
ให้แยกส่วนการทำงานเล็กๆ
ส่วนต่างๆ มีการทำงานที่ชัดเจน
ไม่ยึดติดกัน และยืดหยุ่น
คุณอาจจะต้องการ automated test
เพื่อต้องการ feedback จากการทดสอบที่รวดเร็ว
เพื่อทำให้มั่นใจเมื่อทำการ refactoring code และแก้ไข code
หรือลดปัญหาจากการทำ regression test
คุณอาจต้องการเอกสารที่สำหรับประมวลผล หรือทำงานได้
คุณมีปัญหาต่างๆ ในการพัฒนา software บ้างหรือเปล่า ?
เช่น ต้องมานั่ง debug ระบบกันเป็นวันๆ หรือมีการประชุมเพื่อ debug ระบบ
การ regression ที่มักก่อให้เกิดปัญหากับ feature อื่นๆ เสมอ
โครงสร้าง code ที่คุณพัฒนา หรือดูแล แย่มากๆ
เอกสารไม่มี หรือมีแต่มันไม่เคยแก้ไข ตามความสามารถของระบบเลย
ซึ่งมี ก็ เหมือน ไม่มี
สิ่งเหล่านี้ ล้วนก่อให้เกิด ความกลัว ในทุกก้าวย่างของคุณ
จากเป้าหมายและปัญหาจากข้างต้น
เช่น การเขียน unit test การออกแบบ นั้น
ไม่จำเป็นต้องใช้ TDD ก็ได้นะครับ
แต่จากประสบการณ์ส่วนตัวและคนอื่นๆ นั้น
พบว่า TDD นั้นช่วยทำให้เรา focus ในงานแต่ละส่วนได้ดียิ่งขึ้น
และเมื่อใดก็ตามที่คุณรู้ว่าวิธีการต่างๆ มันดีอย่างไร ด้วยตัวคุณเองแล้ว
เน้นย้ำว่า ตัวคุณเอง ไม่ใช่การคุย อ่าน แต่มาจากการลงมือทำเองจริงๆ
จะทำให้คุณสามารถตัดสินใจได้ว่า
ค่าใช้จ่ายที่เสียไป กับ ประโยชน์ที่ได้รับ
นั้นอะไรที่ได้รับกลับมามากกว่ากัน
คุณก็ทำแบบเดียวกันนี้กับวิธีการอื่นๆ
แล้วในท้ายที่สุด คุณจะได้แนวทางของตัวเอง
สุดท้าย ถ้าคุณยังไม่เคยนำวิธีการ TDD ไปใช้งาน
หรือคุณยังฝึกฝนไม่เพียงพอ
หรือคุณยังคิดว่ามันยังไม่ช่วยอำนวยความสะดวกคุณเท่าไร
แสดงว่า คุณยังอยู่ในขั้นเริ่มต้นเท่านั้น ผมก็เช่นเดียวกัน
ดังนั้น แนะนำให้คุณฝึกฝนให้มากขึ้น
แล้วสักวันหนึ่งคุณจะเห็นว่ามันเป็นอย่างไร
อาจจะทำมันต่อไป หรือเลิก แล้วไปหาแนวทางของคุณต่อไป
ดังนั้นไม่ว่าจะวิธีการใดก็ตาม ขอให้ลงมือทำ
เพื่อดูว่ามันเหมาะสมกับคุณหรือไม่
ทั้งในเรื่องความสามารถ สิ่งที่เราอยู่ เป็นต้น
แล้วลองทำมันดู พร้อมกับกำหนดความยาวของเวลาในการทำซะ
แล้วเมื่อสิ้นสุดกลับมาดูว่า สิ่งที่เราทำมานั้นมันเป็นอย่างไร
เพื่อดูว่าจะทำมันต่อหรือเลิกทำ …
STOP TALKING …
STOP READING …
START DOING …