discipline
มาดูตัวอย่างของภาพที่ Developer หลาย ๆ คนอาจจะเห็นและพบจนชิน
เมื่อ Developer เปิด source code บน IDE หรือ Editor ต่าง ๆ
แล้วทำการ compile และ run อาจจะพบเจอกับ
Warning หรือ คำเตือนต่าง ๆ จาก compiler จำนวนมาก !!
คำถามที่น่าสนใจคือ จะทำอย่างไรต่อไปดีล่ะ ?

  • จะทำการแก้ไข ?
  • จะปล่อยไว้อย่างนั้น ?
  • จะไม่สร้างมันขึ้นมาอีก ?

Developer จะทำอย่างไรต่อไป ?

จากสิ่งที่พบเจอมานั้น ส่วนมากมักจะปล่อยมันไป แถมสร้างขึ้นมาอีก !!

และให้เหตุผลว่า
เนื่องจาก warning เหล่านั้นมันไม่ได้ส่งผลอะไรต่อระบบ !!
เนื่องจากไม่ได้เป็นคนสร้างขึ้นมานะ !!
เนื่องจากต้องใช้เวลาในการแก้ไข !!
เนื่องจากไม่มีเวลา (แต่มีเวลาสร้าง warning และ bug)
หรืออาจจะบอกว่า เดี๋ยวค่อยมาแก้ทีหลัง (ส่วนมากไม่เคยกลับมาแก้ไขเลย)

แต่ถ้าคุณไม่ใช่ Developer อาจจะบอกและคิดว่า
มันก็ไม่ได้เป็นปัญหาอะไรนะ
ก็แค่ warning เท่านั้นเอง
ระบบงานก็ทำงานได้ปกติทุกอย่าง
ถ้าจะแก้ไขมันต้องใช้เวลาเยอะอีกนะ
ดังนั้นก็ปล่อย ๆ มันไปเถอะ !!

เมื่อนำเรื่องเหล่านี้พูดคุยกับ Developer มักจะไม่เป็นเรื่องใหญ่
แต่เมื่อนำเรื่องนี้ไปพูดคุยกับทางฝ่าย management
กลับกลายเป็นเรื่องที่ใหญ่โตและน่ากลัวอย่างมาก
ผลที่ตามมาคือ ทีมพัฒนาต้องทำการแก้ไขมันซะ !!

เรื่องต่าง ๆ เหล่านี้มันคือส่วนเล็ก ๆ ของ Code Metric

นำมาใช้เพื่อดูประสิทธิภาพและคุณภาพของการพัฒนา software
บ่อยครั้งใช้มาเพื่อดูว่าทีมพัฒนามีวินัยและความสามารถอย่างไร

สิ่งที่สำคัญอย่างมากของระบบงานคือ Source code
เนื่องจาก source code คือสิ่งที่ทำให้เกิดระบบขึ้นมา
ถ้า source code ไม่มีคุณภาพที่ดี
มันจะสะท้อนออกมาทั้งจากระบบที่พัฒนา
มันจะสะท้อนถึงทีมพัฒนาว่ามีความสามารถและวินัยอย่างไร
มันจะสะท้อนขั้นตอนการทำงานว่าเป็นอย่างไร

แต่สิ่งต่าง ๆ เหล่านี้มันเกิดมาจากผู้สร้าง หรือ  Developer นั่นเอง !!
จากปัญหาดังกล่าวเราต้องจัดการอย่างไรดี ?

คำแนะนำคือ ตั้งเป้าหมายไว้เลยว่า Warning ต้องไม่มีหรือเป็นศูนย์ !!

เป้าหมายมีไว้พุ่งชน
เป้าหมายมีไว้ทำลาย
มันเป็นเป้าหมายที่ดีมาก ๆ
หลาย ๆ คนอาจจะบอกว่า มันบ้าไปแล้ว เป็นไปไม่ได้หรอก !!

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

  • มาจากการออกแบบที่ผิดพลาด
  • ความไม่รู้ หรือ ความสามารถของ Developer
  • บางกรณีอาจจะทำให้เกิด bug หรือความผิดพลาดได้ง่าย
  • บางกรณีอาจจะทำให้ระบบโดนโจมตีได้ง่าย

จากการตั้งเป้าหมายเหล่านี้ก็ทำให้เกิดปัญหาเช่นกัน

  • จะแก้ไขไปทำไม มันไม่ได้มีคุณค่าต่อทาง business เลย
  • เสียเวลา เลิก ๆ ไปทำอย่างอื่นเถอะนะ
  • Developer ไปปิดการ warning ของ compiler กันเลย !!

เรื่องต่าง ๆ เหล่านี้มันคือ วินัยของ Developer

เนื่องจาก code แต่ละบรรทัดที่เขียนขึ้นมานั้น
แน่นอนว่าทั้ง IDE และ compiler ทำการเตือนในเรื่องต่าง ๆ อยู่แล้ว
ดังนั้นสิ่งที่ Developer ควรใส่ใจและเรียนรู้คือ
ทำไม code ที่เขียนขึ้นมานั้นจึงโดนเตือน ?
จากนั้นก็ให้แก้ไขซะ อย่าปล่อยให้ลอยนวล
ทำให้เรารู้และเข้าใจและจะไม่เขียน code เช่นนั้นอีก

แต่ถ้าคุณไม่ใส่ใจ ไม่สนใจ
code ที่คุณเขียนขึ้นมานั้นก็จะเป็น code ที่ผิด ๆ
และไม่เคยปรับปรุงอะไรเลย !!
รวมทั้งจำนวนของ code ที่ผิด ๆ ก็จะเยอะขึ้นเรื่อย ๆ
จนสุดท้ายมันอาจจะกลับมาเป็นปัญหาในอนาคตอีกด้วย

ดังนั้นขอแนะนำให้ทำการแก้ไขและปรับปรุงอย่างต่อเนื่อง
ค่อยเป็นค่อยไป ไม่ต้องเร่งรีบ
ของเก่าค่อย ๆ ลด
ของใหม่ไม่ให้เพิ่ม
ทำเพียงเท่านี้จำนวน Warning ใน code จะน้อยลงก็หมดไปในที่สุด

รวมทั้งต้องทำการวัดหรือดูเรื่อง Code Metric อยู่บ่อย ๆ
เพื่อทำให้รู้สถานะ และ สิ่งที่ต้องปรับปรุงแก้ไข
รวมถึงให้เห็นว่าทีมพัฒนามีวินัยและความรับผิดชอบมากน้อยเพียงใด

สุดท้ายขอเน้นย้ำว่า วินัยของ Developer มันสำคัญมาก ๆ

เขียน code ให้ทำงานได้ กับ ทำให้ดี มันแตกต่างกันเยอะมาก ๆ นะ

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

Reference Websites
http://www.daedtech.com/with-code-metrics-trends-are-king
https://blog.ndepend.com/a-test-coverage-primer-for-managers/