Hiệu quả của các công cụ viết mã bằng trí tuệ nhân tạo đang tăng nhanh, kéo theo việc ngày càng có nhiều lập trình viên đưa mã vào môi trường vận hành mà không trực tiếp kiểm tra toàn bộ. Cùng với xu hướng đó, tranh luận về trách nhiệm đối với mã do AI tạo ra cũng nóng lên.
Theo Gigazine ngày 11/5, lập trình viên Simon Willison cho biết ranh giới giữa “vibe coding” và “agent engineering” trong cách ông làm việc đang dần mờ đi.
“Vibe coding” thường được hiểu là chấp nhận mã do AI tạo ra mà không rà soát chi tiết, miễn kết quả chạy được. Trong khi đó, “agent engineering” gần với cách làm của các lập trình viên giàu kinh nghiệm: tận dụng công cụ AI nhưng vẫn tính đến bảo mật, khả năng bảo trì và độ ổn định khi vận hành.
Willison cho biết trước đây ông phân biệt khá rõ hai khái niệm này. Theo ông, vibe coding có thể là cách tiếp cận thực dụng với những công cụ cá nhân quy mô nhỏ. Tuy nhiên, nếu áp dụng cho phần mềm liên quan đến dữ liệu của người khác hoặc phục vụ công việc thực tế, cách làm này sẽ trở nên thiếu trách nhiệm.
Dù vậy, khi năng lực của các công cụ AI coding cải thiện, thói quen phát triển phần mềm cũng thay đổi. Willison nói rằng sau nhiều lần chứng kiến tác nhân AI coding Claude xử lý từ truy vấn SQL, tạo JSON API đến viết test và tài liệu, ông không còn đọc từng dòng mã trong các tác vụ đơn giản.
Theo ông, vấn đề nằm ở chỗ mức độ tin tưởng càng cao thì quy trình rà soát càng dễ bị nới lỏng. Điều đó khiến ông đặt câu hỏi liệu việc đưa mã chưa được rà soát đầy đủ vào môi trường vận hành còn có thể xem là hành động có trách nhiệm hay không.
Willison ví điều này với cách các tổ chức lớn sử dụng dịch vụ nội bộ. Chẳng hạn, khi dùng một dịch vụ xử lý ảnh do nhóm khác xây dựng, phần lớn lập trình viên sẽ đọc tài liệu và triển khai trước thay vì xem toàn bộ phần hiện thực; chỉ khi phát sinh sự cố họ mới đi sâu vào cấu trúc chi tiết.
Tuy nhiên, theo ông, AI khác với một nhóm phát triển con người ở chỗ không có trách nhiệm giải trình hay uy tín nghề nghiệp. Với một đội ngũ kỹ sư cụ thể, khi xảy ra sự cố vẫn có thể truy vết trách nhiệm. Còn với mã do AI tạo ra, cơ chế đó không tồn tại theo cách tương tự.
Willison đặc biệt cảnh báo nguy cơ sự tự tin thái quá xuất hiện sau nhiều lần AI cho kết quả đúng. Ông cho rằng khi liên tục nhận được đầu ra chính xác, lập trình viên sẽ dần bỏ qua các bước kiểm chứng và đến lúc quan trọng có thể bỏ sót lỗi vì hiện tượng “normalization of deviance”.
AI cũng đang làm thay đổi cách đánh giá chất lượng mã. Trước đây, người ta phần nào có thể nhìn vào số lượng commit, quy mô test hay mức độ hoàn thiện của README để đánh giá quá trình phát triển. Nhưng hiện nay, AI có thể nhanh chóng tạo ra một kho mã trông hoàn chỉnh chỉ trong thời gian ngắn.
Vì vậy, Willison cho rằng lịch sử sử dụng thực tế và kinh nghiệm vận hành đang trở nên quan trọng hơn. Theo ông, ngay cả mã do AI tạo ra, nếu được người dùng sử dụng hằng ngày và đã được kiểm chứng trong thực tế, vẫn có giá trị hơn một đoạn mã chỉ được tạo ra rồi bỏ đó.
Trong cộng đồng lập trình viên, phản ứng với xu hướng này vẫn chia thành nhiều luồng. Một số lo ngại AI có thể khiến lập trình viên trở nên thụ động hơn. Trong khi đó, nhóm khác xem đây là bước tiếp theo của sự thay đổi trong phương thức phát triển phần mềm, tương tự thời điểm ngôn ngữ lập trình bậc cao ra đời và lập trình viên không còn phải viết trực tiếp bằng assembly.
Một số ý kiến cũng cảnh báo rằng nếu chấp nhận hàng loạt thay đổi lớn do AI đề xuất mà không phân tích nguyên nhân gốc rễ, hệ thống có thể phát sinh thêm lỗi mới. Từ đó, trọng tâm cạnh tranh của AI coding được cho là đang dịch chuyển từ khả năng “tạo mã” sang năng lực kiểm chứng độ ổn định và tích hợp vào quy trình phát triển có trách nhiệm.