Screen Shot 2558-09-05 at 10.30.41 PM
หลาย ๆ คนมักบอกว่า
การสร้าง software ที่มีคุณภาพสูง
จำเป็นต้องใช้เวลาที่มากขึ้น
จำเป็นต้องใช้ค่าใช้จ่ายที่มากกว่า

แต่ผมคิดว่ามันไม่เสมอไปนะ
ถ้าคุณมีการปรับปรุงเรื่องคุณภาพ
ให้มันดีขึ้นอยู่อย่างเสมอตั้งแต่เริ่มต้นการสร้าง

ดังนั้นเรามาเรียนรู้วิธีการสร้าง  software ที่มีคุณภาพที่ดีกันหน่อยไหม ?

มุมมองของคุณภาพในภาพรวมของ project

1. ก่อนจะเริ่มทำงาน ให้กำหนดข้อตกลงต่าง ๆ ให้ชัดเจน และ ปรับปรุงให้ดีขึ้นอย่างสม่ำเสมอ
ทำการกำหนด Definition of Ready (DoR)
เป็นการบอกว่างานใดบ้างที่มันพร้อมจะเริ่มทำงาน
จะได้ไม่ต้องมาเสียเวลาไปกับสิ่งที่ไม่พร้อม

จากนั้นทำการกำหนด Definition of Done (DoD)
เป็นการบอกว่าแต่ละงานจะเสร็จนั้น
ต้องประกอบด้วยอะไรบ้าง ?
ต้องทำงานอะไรได้บ้าง ?

โดยเงื่อนไขของทั้งคู่ จะต้องเพิ่มขึ้นอยู่อย่างสม่ำเสมอ
ซึ่งนั้นคือการปรับปรุงคุณภาพให้สูงขึ้นนั่นเอง

2. กำหนดการใช้งาน Version Control และ Branching policy ให้ชัดเจนซะ
ก่อนเริ่มทำงาน ควรกำหนดนโยบายเหล่านี้ให้ชัดเจน
รวมทั้งอธิบายให้ทุกคนที่เกี่ยวข้องเข้าใจ
เช่น developer, tester, SA, BA และ customer เป็นต้น

3. กำหนดวิธีการ commit การเปลี่ยนแปลง และ commit message ที่มีประโยชน์
แค่ทำการ commit บ่อย ๆ คงยังไม่พอ
แต่สิ่งที่สำคัญกว่า คือ
แต่ละ commit ต้องมีการเปลี่ยนแปลงเพียงอย่างเดียว หรือ เรื่องเดียว
แต่ละ commit ควรมีการอธิบายที่ชัดเจน และ เข้าใจง่ายสำหรับทุกคน

4. กำหนดเกี่ยวกับเรื่องของ Environment ที่ใช้งานให้ชัดเจน
ในการพัฒนา software นั้นควรมี environment ต่าง ๆ ตามเป้าหมายที่ต้องการ
เช่น

  • Development
  • Continuous Integration
  • Testing
  • Demo
  • Staging
  • Production

มุมมองคุณภาพในภาพของ technical

ว่าด้วยเรื่องคุณภาพของ software
ควรทำการกำหนดตั้งแต่เริ่มต้นเช่นกัน

1. สร้างระบบ Continuous Integration ตั้งแต่เริ่มต้น
ถ้าปล่อยให้นานไปจะทำการสร้างระบบขึ้นมายากมาก ๆ
โดยระบบทำการ build, testing และ deploy อยู่ตลอดเวลา
ดังนั้น เรื่องคุณภาพของระบบจะดีขึ้นอย่างแน่นอน

2. ฝึกทำ Code Review ให้บ่อย ๆ เข้าไว้
ยิ่งถ้าสามารถทำ pair programming กันได้
จะยิ่งช่วยให้การ review code ทำได้ง่าย และ เร็วขึ้น
รวมทั้งสามารถทำบ่อย ๆ ได้
นั่นคือ ทำให้เราเห็นข้อผิดพลาดได้รวดเร็วอีกด้วย
เพื่อปรับปรุงให้สิ่งที่แย่ ๆ ให้มันดีขึ้น

มุมมองคุณภาพในภาพของการทดสอบ

ให้เปลี่ยนมุมมองจากการนั่งรอหา bug
มาเป็นการป้องกัน bug ดีกว่า
ดังนั้น การทำงานเป็นทีมจึงสำคัญอย่างมาก

จากทั้งสามมุมมองนั้น

มันจะช่วยให้เราเริ่มต้นสร้าง software ที่มีคุณภาพดีตั้งแต่เริ่มต้น
และทำให้มันดีขึ้นอย่างต่อเนื่อง
ส่งผลให้เวลาที่ใช้น้อยลง
ส่งผลให้ค่าใช้จ่ายน้อยลง

ดังนั้นถ้าจะเดินให้เร็ว ก็เดินไปในทางที่ดีครับ

Tags: