Screen Shot 2558-12-29 at 10.38.26 PM
การพัฒนา software ในปัจจุบัน
สิ่งหนึ่งที่เรามักหลง ๆ ลืม ๆ กันไปมาก
บางครั้งอาจจะทิ้งขว้างมันไป หรือ ทิ้งไว้กลางทางเสมอ
นั่นก็คือ คำว่า คุณภาพ หรือ Quality

ทำไมถึงเป็นอย่างนั้นนะ ?

Developer ทั้งหลายจำรูปนี้ได้หรือไม่ ?

project_management_triangle

มันคือรูป Project Management Triangle !!
ประกอบไปด้วย 3 ส่วนหลัก คือ

  1. Scope คือ จำนวน function ที่ถูกพัฒนาขึ้นมา
  2. Time คือ เวลาที่ใช้ในการพัฒนา
  3. Resource/Cost คือ จำนวนคน หรือ ค่าใช้จ่ายในการพัฒนา

ผลจากการควบคุม 3 ส่วนจะได้ Quality ออกมา !!
นั่นหมายความว่า Quality มันจะเพิ่มขึ้นหรือลดลง
ตาม Scope, Time และ Cost เสมอใช่ไหม ?
แต่ถ้าเราลดอย่างใดอย่างหนึ่งแล้ว คุณภาพจะลดลงใช่ไหม ?
มันไม่น่าจะเป็นแบบนี้ใช่ไหม ?

สิ่งที่ควรจะเป็นไปก็คือ
เราควรกำหนดคำว่า Quality ให้ชัดเจนไปเลยว่าเป็นอย่างไร
เช่น

  • กำหนดไปเลยว่าต้องมี resource ทำการทดสอบแบบ manual ด้วย
  • กำหนดไปเลยว่าต้องมี resource เขียน automated test ขึ้นมา

แต่ถ้าเราคิดใหม่ว่า Quality ไม่น่าจะเป็นผลที่ตามมานะ

น่าจะเป็นดังรูปดีกว่าไหม ?

projectmanagementdiamond

ซึ่งทำการเพิ่ม Quality เข้ามานั่นเอง
ส่วนผลที่ตามมาคือ สิ่งที่ลูกค้าคาดหวัง หรือ ความพึงพอใจของลูกค้า
หรือ ตรงตามความต้องการของลูกค้าหรือไม่นั่นเอง
เป็นสิ่งที่จำเป็นอย่างมากสำหรับการวัดความสำเร็จของระบบนั้น ๆ

แต่ดูเหมือนว่าจะต้องควบคุมไปทุกอย่างเลย !!
ซึ่งในความเป็นจริงแล้วนั้น Scope มันควรที่จะยืดหยุ่นหรือเปล่านะ ?

ส่วน Quality เป็นตัวเลือก หรือ เงื่อนไขหนึ่งนั่นเอง
และจำเป็นต้องกำหนดความหมายของมันซะ ว่าทำอย่างไรบ้าง ?

ทำให้เราสามารถวัดความสำเร็จของการพัฒนาจาก scope ที่เสร็จ
ทั้งในแต่ละ release
ทั้งในแต่ละรอบ หรือ iteration
สิ่งนี้ทำให้ทีมพัฒนาเน้นไปที่การเพิ่มจำนวนงานที่เสร็จ
ภายใต้ Quality, Time และ Cost ที่กำหนดกัน หรือ ตกลงร่วมกัน
แสดงดังรูป

2D11D0D4-A8F0-454D-ABDA-1440DF208F7E

 

คุณคิดว่ารูปไหนที่เหมาะกับการพัฒนา Software ?
เพื่อทำให้ Quality มันดีขึ้นกว่าเดิม

ปล.
ในการพัฒนา software ส่วนใหญ่
ถ้าการพัฒนามันช้า หรือ ไม่ทัน deadline ที่กำหนด
สิ่งที่จะทำการตัดทิ้งไปคืออะไร ?
ตอบได้เลยว่าเรื่องของ Quality ไงล่ะ !!

ดังนั้น ลด ละ เลิก ความคิดแบบนี้กันดีกว่านะครับ