Code không có ngữ cảnh (Context-free code)

Một loại nợ kỹ thuật mới của thời AI: code có thể sạch và test có thể xanh, nhưng khi cần sửa, không ai trả lời được câu hỏi quan trọng nhất - “vì sao đoạn này tồn tại?“. Ý định phía sau code đã biến mất.

Đây là bi kịch của Vibe Coding: bạn đang xây một hệ thống mà chính mình không còn thật sự sở hữu. Không phải vì code tệ - nhìn nó còn khá đẹp - mà vì ý định nghiệp vụ ban đầu đã rơi đâu mất.

Dấu hiệu nhận biết

  • Một field/flag (verification_status, is_premium) được set ở 3-4 chỗ khác nhau, mỗi chỗ một logic hơi khác, không ai nhớ vì sao.
  • Spec không có, decision record không có, đoạn chat Slack đã trôi mất.
  • Hỏi lại AI thì nó trả lời rất tự tin, nhưng đó chỉ là lời giải thích hợp lý dựng lại từ chính code hiện tại, không phải ý định ban đầu. Hỏi hai lần ra hai câu trả lời khác nhau, cả hai đều nghe hợp lý.

Cái giá phải trả

Câu chuyện Nam & Linh (fintech, module KYC): tháng 2 làm một feature mất 2 ngày, tháng 4 cùng loại feature mất 11 ngày - chủ yếu không phải để viết code mới mà để hiểu lại phần code AI đã viết hộ vài tháng trước. Team đi rất nhanh ở đoạn đầu nhưng không để lại đủ dấu vết để chính họ quay lại an toàn. Thứ họ thiếu không phải code, mà là ngữ cảnh.

Câu hỏi để PO/EM hỏi team mỗi tháng: “Có ai giải thích được vì sao module quan trọng nhất đang chạy như hiện tại không?” Nếu câu trả lời là “Claude viết, để hỏi lại Claude”, team đang ở đoạn đầu câu chuyện Nam & Linh.

Liên quan