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