Engineer Thật Thụ Không Thể Vibe Code — Nghiên Cứu Xác Nhận Điều Đó

Có một câu hay được chia sẻ trong cộng đồng dev Việt Nam:
"Nếu bạn là software engineer thật thụ, bạn không thể vibe coding. Lương tâm không cho phép bỏ qua code review. Bạn sẽ review từng class, từng method, thậm chí từng dòng code — để đảm bảo luôn control được mọi thứ."
Hầu hết mọi người đọc câu này như một lời khen — bảo vệ sự chỉn chu của engineer trước cái kiểu nhắm mắt accept AI output.
Hóa ra, các nhà nghiên cứu từ UC San Diego và Cornell đã đi nghiên cứu điều này thật. Họ theo dõi 112 lập trình viên chuyên nghiệp đang dùng AI agent trong môi trường làm việc thực tế: trực tiếp quan sát 13 developer đang làm việc, khảo sát thêm 99 người, tất cả đều có tối thiểu 3 năm kinh nghiệm (có người đến 25 năm).
Kết luận của họ: không một lập trình viên chuyên nghiệp nào thực sự vibe code.
Không phải vì họ quá thận trọng. Mà vì công việc không cho phép điều đó.
Nghiên Cứu Tìm Ra Điều Gì
Không ai bỏ qua bước design
Toàn bộ 11 developer đang build feature mới đều duy trì quyền kiểm soát design trước khi giao việc cho AI. Họ hoặc nhờ AI draft plan trước — rồi review và chỉnh sửa — hoặc tự viết design hoàn chỉnh rồi mới delegate phần implementation.
Không ai nói "build cho tao cái feature này đi" rồi chạy thẳng với output.
Ai cũng review code
9 trong số 13 developer được quan sát trực tiếp đều carefully review từng AI-generated change trước khi accept. 3 người còn lại theo dõi sát output của chương trình và can thiệp khi có gì đó không ổn. 1 người chỉ dùng AI để hiểu codebase hiện tại — không hơn.
Không một developer nào accept AI output mà không có oversight.
Developer có kinh nghiệm làm việc chậm hơn khi dùng AI
Đây là con số đáng để mọi claim "tăng năng suất 10x" phải suy nghĩ lại: experienced maintainer làm việc trên codebase hiện có chậm hơn 19% khi được phép dùng AI.
Tại sao? Vì review AI-generated suggestion trên một codebase phức tạp tốn thời gian và tốn brain. AI không hiểu codebase của bạn như bạn hiểu. Nó không biết các invariant, lịch sử, cái "tại sao module này tồn tại" context. Mỗi suggestion phải được đánh giá đối chiếu với tất cả những thứ đó — và developer có kinh nghiệm biết phải làm bước đó, nên họ làm.
AI fail ở hầu hết issue thực tế
Khi nhà nghiên cứu nhìn vào AI-suggested change được áp vào real issue tracker, chỉ 8% được accept. Tức là failure rate 92% ngoài thực tế.
Không phải trong synthetic benchmark. Không phải trong demo được kiểm soát. Trong production codebase thật với professional developer thật đang đánh giá output.
Model "Junior Developer Cần Được Giám Sát"
Một trong những framing hữu ích nhất từ nghiên cứu: lập trình viên chuyên nghiệp có kinh nghiệm đối xử với AI như một junior developer cần được giám sát — không phải senior engineer có thể giao việc và tin tưởng hoàn toàn.
Framing đó có implication thực tiễn.
Bạn không giao cho junior dev một feature phức tạp rồi bỏ đi. Bạn thảo luận về problem, align về approach, đưa ra constraint rõ ràng, rồi review những gì họ làm ra. Bạn không đọc từng dòng với sự nghi ngờ paranoid — nhưng bạn đọc đủ để bắt cái class of mistake mà junior hay mắc: hiểu sai requirement, bỏ sót edge case, code trông đúng nhưng break invariant mà bạn đã nói với họ hai tháng trước.
Đó chính xác là những gì các developer productive trong nghiên cứu này làm. Họ:
- Cung cấp context rõ ràng (screenshot, file reference, ví dụ, hướng dẫn từng bước)
- Giữ quyền sở hữu design — họ quyết định architecture, AI fill vào phần implementation
- Review change ở depth phù hợp với risk surface
- Can thiệp sớm khi output lệch hướng, không để nó tích lũy
Developer làm theo cách này thì productive hơn. Những người nghiêng về "cứ để AI làm đi" thì gặp phải cái 19% slowdown và 92% rejection problem.
AI Thực Sự Có Ích Ở Đâu
Nghiên cứu nói rõ rằng AI thực sự hữu ích — nhưng cho một category task cụ thể:
AI phát huy ở:
- Task lặp đi lặp lại đơn giản
- Boilerplate code
- Test và documentation
- Minor bug fix với scope rõ ràng
AI gặp khó ở:
- Business logic đòi hỏi domain knowledge chuyên sâu
- Complex integration across nhiều system
- Production-quality solution mà không có human oversight đáng kể
- Bất cứ thứ gì đòi hỏi hiểu lịch sử và constraint của codebase
Đây không phải chê AI — mà là mô tả loại collaborator mà nó là. Nó nhanh, fluent, và hữu ích trong lane của nó. Sai lầm là giao cho nó việc ngoài lane đó mà không có supervision.
Vậy Câu Gốc Đúng Một Phần
"Engineer thật thụ không thể vibe code" hóa ra đúng về mặt empirical: trong nghiên cứu với 112 professional developer, không ai thực hành uncontrolled vibe coding trong công việc thực tế.
Nhưng lý do đằng sau câu đó mới quan trọng. Không phải engineer không thể buông control. Mà là họ đã internalize — từ kinh nghiệm thực tế — tại sao uncontrolled AI output tốn kém để deal với sau này. Cái 92% rejection rate không phải phán xét đạo đức, mà là thực tế thực tiễn mà professional đã học cách route around.
Developer chậm nhất với AI không phải những người cẩu thả. Mà là những người có kinh nghiệm hiểu rằng "trông đúng" và "thật sự đúng" là hai thứ rất khác nhau — và cái gap đó nằm trong business logic, system constraint, và edge case không xuất hiện trong demo.
Cái hiểu biết đó chính là lương tâm mà câu gốc đang nói đến.
Ứng Dụng Thực Tiễn
Nếu nghiên cứu mô tả cách dùng AI tốt trông như thế nào, đây là takeaway thực tế:
Developer productive nhất dùng AI trong nghiên cứu này không làm gì heroic hay mới lạ. Họ làm đúng những gì engineer giỏi luôn làm: hiểu problem, define constraint, delegate rõ ràng, và verify output đối chiếu với những gì họ biết là đúng.
AI chỉ làm cho phần delegation nhanh hơn. Phần engineering không thay đổi.
Tóm Lại
✅ UC San Diego + Cornell theo dõi 112 professional programmer — không ai thực sự vibe code
✅ Tất cả developer build feature đều duy trì design control trước khi delegate cho AI
✅ 9 trong 13 developer được quan sát đều carefully review từng AI-generated change
✅ Experienced maintainer chậm hơn 19% khi dùng AI — review output lạ tốn thời gian
✅ AI suggestion có tỷ lệ accept chỉ 8% trên real issue tracker (92% fail ngoài thực tế)
✅ Professional đối xử AI như junior dev cần giám sát, không phải senior có thể tin hoàn toàn
✅ AI hữu ích thật sự với boilerplate, test, doc, minor fix — không phải business logic hay complex integration
Nói Thêm Một Chút
Những video viral về "vibe coding" — kiểu mô tả feature bằng tiếng Việt đơn giản rồi nhìn cả app hiện ra trong vài phút — không hẳn là nói dối. Workflow đó có tồn tại. Nó chỉ không survive khi gặp production codebase thật.
Software thật có lịch sử. Có những constraint không ai document lại. Có invariant tồn tại vì một incident hai năm trước mà không ai muốn lặp lại. Có một team với opinions và một codebase với patterns.
AI không biết những thứ đó. Bạn biết.
Đó không phải lý do để tránh AI. Đó là lý do để giữ tay trên vô lăng.
📬 Đăng ký nhận bản tin
Nhận những bài viết mới nhất qua email mỗi tuần. Không spam, hủy đăng ký bất cứ lúc nào.
Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất cứ lúc nào.
💬 Comments
Đăng nhập để bình luận
Chúng tôi sẽ không đăng bất cứ điều gì mà không có sự cho phép của bạn.