Vibe coding rất dễ tạo cảm giác thắng.

Bạn gõ một yêu cầu. Màn hình hiện ra. Button có màu. Database có bảng. App deploy được. Trong 30 phút, thứ trước đây mất vài ngày đã có hình.

Cảm giác đó có thật. Nhưng cảm giác nhanh hơn không đồng nghĩa làm nhanh hơn.

Một phần việc đã được chuyển chỗ: từ viết code sang prompt, chờ, đọc diff, test, sửa lỗi, giải thích lại requirement, rollback, và tìm xem AI vừa thay đổi gì ngoài ý muốn.

Tốc độ nhìn thấy được khác tốc độ hoàn tất

AI làm rất nhanh những phần dễ nhìn: dựng UI, tạo form, sinh component, viết route, thêm validation cơ bản. README, test stub cũng ra ngay.

Nhưng software không kết thúc ở chỗ “có file”.

Phần khó thường nằm ở những thứ không nhìn thấy ngay. Đúng business rule, ví dụ logic tính phí phải khớp với điều khoản hợp đồng chứ không phải với cách AI tưởng tượng. Đúng permission, tức là account A không được xem data của account B dù endpoint đã có. Không phá feature cũ, vì AI hay refactor rộng hơn scope mình yêu cầu và ăn vào chỗ đang chạy tốt. Và không che lỗi bằng fallback giả, bởi AI đôi khi trả null về thay vì báo lỗi thật.

Nếu bạn chỉ đo số dòng code hoặc số screen được sinh ra, AI gần như luôn trông rất nhanh. Nếu đo tới lúc ship được, số đo thay đổi.

METR study đáng đọc vì nó đo task thật

METR từng chạy randomized controlled trial với experienced open-source developers làm task thật trên codebase họ quen thuộc. Kết quả hơi khó nuốt: với AI tools giai đoạn early-2025, nhóm developer này hoàn thành task chậm hơn, dù trước đó họ dự đoán AI sẽ giúp nhanh hơn và sau đó vẫn có cảm giác nhanh hơn.

Không nên suy luận quá tay rằng “AI luôn làm dev chậm”. Study có phạm vi cụ thể: developer kinh nghiệm, codebase quen thuộc, tool ở thời điểm đó, task open-source thật.

Nhưng nó chỉ ra một điểm rất hợp với vibe coding: perceived productivity rất dễ lừa mình.

Bạn có thể cảm thấy nhanh vì màn hình thay đổi liên tục, trong khi tổng thời gian thực ra bị ăn bởi prompt lại nhiều vòng, chờ agent chạy, review output dài, sửa lỗi do agent tự tạo, đọc code mình không viết, rồi re-test flow cũ. Cộng dồn lại không nhỏ.

Non-tech còn dễ bị cảm giác này hơn

Với người không code, cảm giác nhanh càng mạnh.

Trước đây không thể tự build app. Bây giờ prompt một câu có prototype. Khoảng cách từ zero tới demo giảm rất mạnh. Điều đó thật sự có giá trị.

Nhưng cũng vì vậy, non-tech dễ nhầm:

Có demo = gần xong.

Trong software, demo đẹp có thể mới là 20%. Phần còn lại là data thật, role thật, edge case thật, deploy thật, rollback thật, owner thật.

Nếu không có checklist, vibe coding biến thành game nhìn UI đổi màu. Rất vui. Không đủ để ship.

Đo bằng done definition, không đo bằng cảm giác

Trước mỗi batch, viết definition of done:

This task is done only if:
- Main user flow works in browser
- Mobile layout works
- Empty, loading, and error states exist
- Account A cannot see account B data
- No mock data remains in production path
- Build passes
- Diff contains only requested scope
- Rollback point exists

Sau đó yêu cầu agent report theo từng dòng:

For each done criterion, mark pass, fail, unknown, or not tested.
Do not use "looks good".

“Looks good” là cảm giác. Pass/fail/unknown là workflow.

Khi nào AI thật sự làm nhanh hơn

AI thường hữu ích nhất khi task có boundary rõ, tức là bạn biết input là gì và done trông như thế nào trước khi bắt đầu. Ví dụ: chuyển mockup Figma thành component, generate test case từ một business rule đã viết thành text, refactor một function cụ thể mà không đụng sang file khác, hoặc tìm tất cả chỗ trong repo đang gọi một API đã deprecated.

Ngược lại, AI kém hơn khi câu prompt thật ra là “tôi chưa nghĩ xong, bạn nghĩ hộ tôi”. Những prompt kiểu “cải thiện dashboard cho đẹp hơn” hoặc “sửa bug payment rồi clean code luôn” nghe có vẻ cụ thể nhưng không có scope. AI sẽ trả về thứ gì đó, bạn không biết đánh giá nó theo tiêu chí nào, rồi mất thêm thời gian xử lý output hơn là làm việc.

Vibe coding nhanh khi người điều khiển biết cắt task. Nó chậm khi người điều khiển dùng một prompt lớn để né việc nghĩ.


Nếu review ăn hết phần lợi, đó không phải thất bại của AI. Đó là dấu hiệu task cần nhỏ hơn, gate cần sớm hơn, và definition of done cần rõ hơn. Cảm giác nhanh vẫn có giá trị, nó nhắc rằng AI đang giúp bạn nhìn thấy progress. Nhưng nó không thay thế được một trạng thái kiểm chứng được: flow chạy, data đúng, quyền đúng, build pass, diff đúng scope, rollback có sẵn.

Tham khảo