เรื่องของ Technical Debt หรือ หนี้เชิงเทคนิค
มันเป็นสิ่งที่ใช้อธิบายว่า
สิ่งที่ทีมพัฒนาสร้างขึ้นมานั้น
มันค่อย ๆ ทำร้ายเราเรื่อย ๆ คล้าย ๆ มะเร็งร้าย
ถ้าไม่ตรวจร่างกายหรือระบบอยู่บ่อย ๆ แล้ว
ผลที่ตามมาคือ อาการจะออกมาเมื่อถึงระยะท้าย ๆ
ซึ่งแก้ไขไม่ทันแล้ว !!
หรือไม่เช่นนั้น ก็ต้องใช้ค่ารักษาที่สูงมาก ๆ

หรืออาจจะพบเจอว่า

ยิ่งเพิ่ม feature เข้าไป
ทำไมมันยิ่งช้า
ทำไมใช้เวลาพัฒนานานขึ้นเรื่อย
ทำไมจำนวน bug เยอะ
เหมือนว่ามะจะมีแต่สิ่งร้าย ๆ ตามมานะ

แต่รู้ไหมว่า
ในข่าวร้ายก็ยังมีข่าวดี นั่นคือ
เราไม่ได้เป็นแบบนี้อยู่คนเดียว
เกือบจะทุกที่เจอหรืออยู่ในสถานการณ์แบบนี้ !!

ดังนั้น Developer น่าจะลองมาฝึก มาเรียนรู้
เพื่อลดจำนวนของ Technical Debt ลงไปบ้างนะครับ
เช่นลดพวก shortcut solution หรือบางที่ก็เรียกว่า workaround
หรือบางทีก็ทำให้มันผ่าน ๆ ไป เสร็จ ๆ ไป

มาลองฝึกสิ่งเหล่านี้กันดู

สิ่งที่ทำอยู่ในทำงานได้เป็นปกติไหม ?

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

เราไม่สามารถควบคุมอะไรได้เลย ?

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

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

แต่ถ้าคุณบอกว่า
ต้องไปนั่งดู log
ต้องไปนั่งดู code
ต้องไปนั่ง debug code
บอกได้เลยว่า หนี้คุณเยอะมาก ๆ รีบแก้ไขซะ

ทีมรู้ไหมว่า วิธีการที่คุณแก้ไขปัญหาของคุณหรือไม่ ?

ถ้า developer บอกว่า
การแก้ไขปัญหานี้ มันคือ workaround เพื่อให้ทำงานได้ไปก่อน
ควรต้องบอกทีมให้รู้
เพื่อทำให้ได้เข้าใจ ตระหนักว่า สิ่งที่ทำลงไปเป็นอย่างไร
ทั้งทีมยอมรับหรือไม่

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

สุดท้าย อย่ายึดติดกับเรื่องหนี้มากนัก

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

ขอให้สนุกกับการ coding ครับ