Bài viết này chúng ta sẽ làm rõ các vấn đề
1. Technical debt là gì?
2. Khi nào gặp?
3. Phòng tránh và hạn chế như nào?
4. Làm sao để thay đổi?

Technical debt là gì? – Khi nào gặp?
Theo dịch thuật, technical debt có nghĩa là nợ kĩ thuật. Diễn giải ra, nợ kĩ thuật là khi vì tính chất, yêu cầu của dự án, khi code, chúng ta:
– Bỏ qua bước thiết kế hệ thống.
– Bỏ qua design pattern.
– Bỏ qua SOLID.
– Bỏ qua coding conventions.
– Thực hiện hotfix mà chưa đánh giá hết rủi ro.
– Nhằm đáp ứng yêu cầu về deadline, chọn giải pháp chưa thực sự tối ưu để giải quyết vấn đề.
– Copy paste thì nhanh hơn là refactor code.
Với khá nhiều “bỏ qua” và cách tiếp cận giải quyết bài toán như vậy. Dự án sẽ tồn đọng các vấn đề về kĩ thuật, lớn dần theo thời gian. Cho đến thời điểm, dự án sẽ lâm vào trạng thái sửa chữa, cập nhật thì mệt mỏi, đập đi xây lại thì không đủ nguồn lực, thời gian, kinh tế.

Phòng tránh, hạn chế bằng cách nào?
Ngoài các yếu tố phòng tránh về kĩ thuật. Developer hay Technical Leader cần có mindset về việc xử lý technical debt.
Mindset này thể hiện ở cách team tư duy về dự án. Luôn nhớ:
– refactor code ngay khi có thể.
– Chậm chắc, chuẩn chỉ, chỉn chu hơn là nhanh, tiềm ẩn rủi ro.
– Luôn có effort cho việc xử lý technical debt trong thời gian làm dự án.
– Quyết liệt với việc có sản phẩm tốt.

Vài lời chém gió, hi vọng mọi người khi làm dự án sẽ không bao giờ va phải dự án nào cần maintain mà có technical debt.