ถูกต้องแต่ไม่ถูกต้อง

การที่โปรแกรมเราไม่มีบัก ไม่ได้แปลว่ามันเวิร์ค ทุกฟีเจอร์สามารถทำงานได้อย่างถูกต้อง ไม่ได้แปลว่ามันตอบสนองต่อธุรกิจได้จริง ทำไมล่ะ ทั้ง ๆ ที่เราทำของที่ถูกต้องทุกอย่างแล้ว ทำไมมันถึงไม่เวิร์คอีก ก็เพราะว่ามันถูกต้องแต่ไม่ถูกต้องนั่นเอง … อะไรวะ

การตรวจสอบความถูกต้องของสิ่งที่ทำ แบ่งเป็น 2 เรื่อง เรียกว่า verification กับ validation

Verification

เป็นเรื่องของการตรวจสอบเพื่อดูว่าสิ่งที่เราทำนั้น เราทำมันอย่างถูกต้องหรือไม่ หรือ build the thing right เช่น ถ้าพ่อครัวทำไก่อบสูตรเชฟกระทะเหล็ก ในสูตรบอกว่าต้องใช้ไก่ไซส์ไหน ใช้เครื่องปรุงอะไรบ้าง มีเครื่องเคียงอะไรบ้าง มีกรรมวิธีอะไรก่อนหลัง ก็ต้องทำตามนั้น สามารถเช็คความถูกต้องได้ว่าทำตามกระบวนการหรือไม่ ถ้าทำตามนั้นครบทุกอย่าง เราก็มั่นใจได้ว่า เราทำมันอย่างถูกต้อง

การตรวจสอบสามารถทำได้โดยใช้กระบวนการตรวจสอบที่สามารถทำได้เบื้องต้น เช่น unit test หรือ integration test หรือถ้าเป็นงานที่เกี่ยวข้องกับกฏระเบียบหรือ spec ต่าง ๆ เราก็สามารถเอาไปเปรียบเทียบเพื่อตรวจสอบความถูกต้องได้

Validation

เป็นเรื่องของการตรวจสอบเพื่อดูว่าสิ่งที่เราทำนั้น เราทำมันตรงกับสิ่งที่ลูกค้าต้องการหรือไม่ หรือ build the right thing เช่น ถ้าเราสั่งผัดผักรวมมิตรที่ร้านอาหารแห่งหนึ่ง เราไม่ได้สนใจว่ากระบวนการการทำผัดผักรวมมิตรมันต้องทำอย่างไร เราสนใจว่าอาหารที่เราได้มันใช่ผัดผักรวมมิตรหรือไม่ก็พอ ถ้าดูหน้าตา และรสชาติแล้ว มันใช่ผัดผักรวมมิตร ก็ถือว่าพ่อครัว ทำตรงกับสิ่งที่เราต้องการ

การตรวจสอบแบบนี้สามารถทำได้โดยการทดสอบกับผู้ใช้ที่แท้จริง ไม่ว่าจะเป็นการทำ user acceptance test หรือการทำ suitability test

ดังนั้น ถึงแม้ว่าเราจะทำทุกอย่างอย่างถูกต้องแล้ว อย่าลืมตรวจสอบว่าเราทำสิ่งที่ตรงกับผู้ใช้ที่แท้จริงต้องการหรือไม่ด้วยนะ จะได้ไม่เสียเวลา

Leave a Reply

Your email address will not be published. Required fields are marked *