การพัฒนา software ในปัจจุบัน
สิ่งหนึ่งที่เรามักหลง ๆ ลืม ๆ กันไปมาก
บางครั้งอาจจะทิ้งขว้างมันไป หรือ ทิ้งไว้กลางทางเสมอ
นั่นก็คือ คำว่า คุณภาพ หรือ Quality
ทำไมถึงเป็นอย่างนั้นนะ ?
Developer ทั้งหลายจำรูปนี้ได้หรือไม่ ?
มันคือรูป Project Management Triangle !! ประกอบไปด้วย 3 ส่วนหลัก คือ- Scope คือ จำนวน function ที่ถูกพัฒนาขึ้นมา
- Time คือ เวลาที่ใช้ในการพัฒนา
- Resource/Cost คือ จำนวนคน หรือ ค่าใช้จ่ายในการพัฒนา
- กำหนดไปเลยว่าต้องมี resource ทำการทดสอบแบบ manual ด้วย
- กำหนดไปเลยว่าต้องมี resource เขียน automated test ขึ้นมา
แต่ถ้าเราคิดใหม่ว่า Quality ไม่น่าจะเป็นผลที่ตามมานะ
น่าจะเป็นดังรูปดีกว่าไหม ? ซึ่งทำการเพิ่ม Quality เข้ามานั่นเอง ส่วนผลที่ตามมาคือ สิ่งที่ลูกค้าคาดหวัง หรือ ความพึงพอใจของลูกค้า หรือ ตรงตามความต้องการของลูกค้าหรือไม่นั่นเอง เป็นสิ่งที่จำเป็นอย่างมากสำหรับการวัดความสำเร็จของระบบนั้น ๆแต่ดูเหมือนว่าจะต้องควบคุมไปทุกอย่างเลย !! ซึ่งในความเป็นจริงแล้วนั้น Scope มันควรที่จะยืดหยุ่นหรือเปล่านะ ?ส่วน Quality เป็นตัวเลือก หรือ เงื่อนไขหนึ่งนั่นเอง และจำเป็นต้องกำหนดความหมายของมันซะ ว่าทำอย่างไรบ้าง ? ทำให้เราสามารถวัดความสำเร็จของการพัฒนาจาก scope ที่เสร็จ ทั้งในแต่ละ release ทั้งในแต่ละรอบ หรือ iteration สิ่งนี้ทำให้ทีมพัฒนาเน้นไปที่การเพิ่มจำนวนงานที่เสร็จ ภายใต้ Quality, Time และ Cost ที่กำหนดกัน หรือ ตกลงร่วมกัน แสดงดังรูป
คุณคิดว่ารูปไหนที่เหมาะกับการพัฒนา Software ? เพื่อทำให้ Quality มันดีขึ้นกว่าเดิมปล. ในการพัฒนา software ส่วนใหญ่ ถ้าการพัฒนามันช้า หรือ ไม่ทัน deadline ที่กำหนด สิ่งที่จะทำการตัดทิ้งไปคืออะไร ? ตอบได้เลยว่าเรื่องของ Quality ไงล่ะ !! ดังนั้น ลด ละ เลิก ความคิดแบบนี้กันดีกว่านะครับ