Technical Debt เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!

จากหัวข้อของบทความ หลายคนน่าจะสงสัยว่าทำไม “เขียน Code แล้วทำไมถึงติดหนี้ แถมมีดอกเบี้ยด้วย !!!” เดี๋ยวผมจะมาอธิบายครับ ว่าทำไมเราถึงได้สร้างหนี้ และหนี้ในการเขียน Code จริงๆ ก็ไม่เชิงนะ บอกว่าเป็นหนี้ในการพัฒนาระบบ น่าจะดีกว่าครับ โดยหนี้ที่เกิดขึ้นมี ดังนี้ครับ Acceptable – เป็นหนี้ในระยะสั้น และระยะยาวได้ประโยชน์ มองเป็นการลงทุนแนวๆ VI ได้เลยนะเนี่ย Unavoidable – หนี้ที่เกิดจากสถานการณ์ที่เราไม่สามารถคาดเดาได้ Unnecessary – หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ หนี้ที่เกิดแล้วทำให้ระบบงานเรารอดมีงานส่งได้ แต่ไม่มีประโยชน์ให้แก่ทีมงาน หรือองค์กรเลย Bad – หนี้แบบซุกไว้ใต้พรม หนี้แบบนี้ ถ้าเกิดแล้วระบบงานของเราคงจะรอดยาก หรือขึ้น Production ได้ แต่ปัญหาเพียบบบบ ท้ายที่สุดครับ เราสามารถทำให้ Code ดีขึ้นได้นะครับ ขอแค่มีความกล้าที่จะเข้าไปจัดการกับมัน แม้ว่า Legacy Code นั้น เป็นตัวทำเงินให้กับหน่วยงาน หรือองค์กร แต่ถ้าทิ้งไว้นานเข้า หนี้มันเยอะจากดอกเบี้ยนะครับ ระบบยิ่งเก่า ถ้า Code มันแย่ ค่าใช้จ่ายในการจัดการมันจะยิ่งสูงขึ้นเรื่อยๆครับ และก็ระดับของหนี้แปรผันระดับความรู้ Business ของ Develop ครับ ถ้ารู้ไม่ครบ ระบบอาจจะมีหนี้ โดยที่เราไม่รู้ตัวก็ได้นะ