เรื่องของ Technical Debt หรือ หนี้เชิงเทคนิค
มันเป็นสิ่งที่ใช้อธิบายว่า
สิ่งที่ทีมพัฒนาสร้างขึ้นมานั้น
มันค่อย ๆ ทำร้ายเราเรื่อย ๆ คล้าย ๆ มะเร็งร้าย
ถ้าไม่ตรวจร่างกายหรือระบบอยู่บ่อย ๆ แล้ว
ผลที่ตามมาคือ อาการจะออกมาเมื่อถึงระยะท้าย ๆ
ซึ่งแก้ไขไม่ทันแล้ว !!
หรือไม่เช่นนั้น ก็ต้องใช้ค่ารักษาที่สูงมาก ๆ
หรืออาจจะพบเจอว่า
ยิ่งเพิ่ม feature เข้าไป ทำไมมันยิ่งช้า ทำไมใช้เวลาพัฒนานานขึ้นเรื่อย ทำไมจำนวน bug เยอะ เหมือนว่ามะจะมีแต่สิ่งร้าย ๆ ตามมานะ แต่รู้ไหมว่า ในข่าวร้ายก็ยังมีข่าวดี นั่นคือ เราไม่ได้เป็นแบบนี้อยู่คนเดียว เกือบจะทุกที่เจอหรืออยู่ในสถานการณ์แบบนี้ !! ดังนั้น Developer น่าจะลองมาฝึก มาเรียนรู้ เพื่อลดจำนวนของ Technical Debt ลงไปบ้างนะครับ เช่นลดพวก shortcut solution หรือบางที่ก็เรียกว่า workaround หรือบางทีก็ทำให้มันผ่าน ๆ ไป เสร็จ ๆ ไป มาลองฝึกสิ่งเหล่านี้กันดูสิ่งที่ทำอยู่ในทำงานได้เป็นปกติไหม ?
ลองตั้งคำถามกับตัวเราเองสิว่า สิ่งที่เรากำลังสร้างมันทำงานได้ถูกไหม สิ่งที่มันเคยทำงานได้อย่างถูกต้องนั้น หลังจากที่เพิ่มหรือแก้ไขไปแล้ว มันยังทำงานได้ถูกต้องเหมือนเดิมไหม นั่นหมายความว่า สิ่งที่คุณสร้าง มีชุดการทดสอบที่ดี มั่นใจ ดังนั้น คุณก็สามารถแก้ไขหรือปรับปรุง code ให้ดีขึ้นได้ง่ายขึ้น ปลอดภัยขึ้น แต่ถ้าไม่มี บอกได้เลยว่า หนี้คุณเยอะมาก ๆ รีบแก้ไขซะเราไม่สามารถควบคุมอะไรได้เลย ?
ไม่พอนะ สิ่งที่ทำงานได้เมื่อวาน ในวันนี้อาจจะไม่สามารถทำงานได้ ทั้ง ๆ ที่ไม่มีการเปลี่ยนแปลงอะไรเลย นั่นคือ คุณไม่สามารถควบคุมอะไรได้เลยใช่ไหม ?แต่สิ่งหนึ่งที่คุณทำได้คือ ถ้ามันเกิดปัญหาหรือข้อผิดพลาดขึ้นมา คุณรู้ได้ทันทีหรือไม่ ว่าจุดเกิดเหตุมันอยู่ตรงไหน นั่นคือ ประเด็นหลักแต่ถ้าคุณบอกว่า ต้องไปนั่งดู log ต้องไปนั่งดู code ต้องไปนั่ง debug code บอกได้เลยว่า หนี้คุณเยอะมาก ๆ รีบแก้ไขซะ