"AI chỉ để làm sản phẩm chơi chơi thôi" - đây là quan điểm khá phổ biến trong cộng đồng lập trình viên khi nhắc đến vibe code. Nhiều người hoài nghi rằng code do AI hỗ trợ có thể được sử dụng cho các sản phẩm thực tế, đặc biệt là tại những tập đoàn công nghệ hàng đầu như FAANG (Facebook/Meta, Amazon, Apple, Netflix và Google). Câu hỏi đặt ra là: Liệu các đại gia này có thực sự "prompt rồi cầu may", hay có một câu chuyện hoàn toàn khác đang diễn ra phía sau?
Một người Reddit - một kỹ sư phần mềm AI với hơn một thập kỷ kinh nghiệm - trong đó nửa thời gian làm việc tại FAANG và các công ty tương tự, đã quyết định lên tiếng để làm rõ sự thật. Dù nửa đầu sự nghiệp của anh là Kỹ sư Hệ thống chứ không phải lập trình viên, nhưng với 15 năm lập trình, anh hiểu rõ cả hai thế giới và muốn chia sẻ một điều: "Việc AI không thể dùng cho code sản phẩm là hoàn toàn sai."
Quy trình 7 bước nghiêm ngặt của FAANG
Theo lời anh, cách các công ty lớn sử dụng AI để phát triển sản phẩm thực tế tuân theo một quy trình cực kỳ chặt chẽ, bắt đầu từ bước đầu tiên và quan trọng nhất: luôn phải có một tài liệu thiết kế kỹ thuật. Đây là nơi diễn ra phần lớn công việc thực sự. Tài liệu này bắt đầu như một bản đề xuất, và chỉ khi thuyết phục được đủ các bên liên quan rằng đề xuất có giá trị, nhóm mới được phép chuyển sang giai đoạn phát triển thiết kế hệ thống chi tiết, bao gồm kiến trúc đầy đủ và tích hợp với các đội nhóm khác.
Tiếp theo là bước thứ hai - đánh giá thiết kế, nơi mà tài liệu thiết kế sẽ bị các Kỹ sư cấp cao "mổ xẻ" tơi tả. Anh kỹ sư coi đây là việc "chấp nhận khó khăn từ đầu" để tránh gặp rắc rối lớn hơn về sau. Nếu vượt qua được vòng duyệt này, đội nhóm sẽ bước vào giai đoạn phát triển, với vài tuần đầu tiên dành cho việc viết thêm tài liệu chi tiết về từng phân hệ mà các nhóm dev riêng lẻ sẽ xây dựng.
Bước thứ tư là xây dựng backlog và lập kế hoạch cho từng giai đoạn, khi các lập trình viên làm việc với Quản lý sản phẩm và Quản lý chương trình kỹ thuật để chốt các đầu việc cụ thể và thứ tự thực hiện. Chỉ đến lúc này, ở bước thứ năm, đội ngũ mới thực sự được "chạm tay vào bàn phím" và bắt đầu phát triển phần mềm. Đây chính là giai đoạn mà AI trở thành "cấp số nhân" sức mạnh.
Điều đặc biệt là cách họ sử dụng AI. Thay vì prompt bừa bãi, đội ngũ áp dụng Test Driven Development - nghĩa là các Tác nhân AI lập trình sẽ phải viết các bài kiểm thử trước cho tính năng định xây dựng. Chỉ sau khi có đầy đủ các bài kiểm thử, họ mới sử dụng Tác nhân AI này để xây dựng tính năng thực tế. Đây là một sự khác biệt quan trọng: phần kiểm thử được viết trước, không phải sau.
Bước thứ sáu là đánh giá các đoạn code gửi lên, với quy trình đòi hỏi phải có sự chấp thuận từ hai lập trình viên khác nhau trước khi code được gộp vào nhánh chính. AI cũng đang cho thấy tiềm năng lớn trong việc hỗ trợ quá trình đánh giá này. Cuối cùng, ở bước thứ bảy, code được test kỹ lưỡng trong môi trường kiểm thử, và chỉ khi mọi thứ ổn định, nó mới được đẩy lên sản phẩm.
Kết quả của quy trình này? Tốc độ tăng khoảng 30% từ lúc đề xuất tính năng đến khi nó xuất hiện trên production. Con số này được cho là "khổng lồ" đối với các công ty quy mô lớn, nơi mà mỗi phần trăm cải thiện hiệu suất đều có giá trị to lớn.
Nhưng đừng nhầm - đây không phải vibe code
Tuy nhiên, đây là điểm thú vị: Nhiều người đọc xong câu chuyện trên và gọi đó là "vibe code", nhưng điều này hoàn toàn sai. Quy trình mà anh kỹ sư FAANG mô tả không hề phải là vibe code - đó là "AI-assisted engineering" (lập trình có AI hỗ trợ), một khái niệm hoàn toàn khác biệt. Sự nhầm lẫn này đang lan rộng trong cộng đồng công nghệ và có thể gây ra những hiểu lầm nguy hiểm về cách sử dụng AI trong phát triển phần mềm.
Thuật ngữ "vibe code" được Andrej Karpathy - cựu giám đốc AI của Tesla - đặt ra vào tháng 2 năm 2025, và định nghĩa gốc của nó khá rõ ràng. Trong tweet gốc, Karpathy mô tả vibe code là việc "fully give in to the vibes" - hoàn toàn thả mình theo cảm giác, "embrace exponentials, and forget that the code even exists" - chấp nhận sự bùng nổ theo cấp số nhân và quên luôn cả việc code có tồn tại hay không.
Ông tiếp tục giải thích: "Tôi luôn 'Accept All', không đọc diffs nữa. Khi gặp lỗi, tôi chỉ copy paste message mà không comment gì, thường thì nó sẽ tự fix. Code phát triển vượt quá khả năng hiểu của tôi, tôi phải đọc một hồi mới hiểu. Đôi khi LLM không sửa được bug thì tôi chỉ work around hoặc yêu cầu thay đổi ngẫu nhiên cho đến khi nó biến mất." Và Karpathy nhấn mạnh: "Nó không tệ lắm cho những dự án cuối tuần vứt đi được, nhưng vẫn khá buồn cười."
Đây chính là bản chất của vibe code: bạn không review code, không thực sự hiểu code đang làm gì, chỉ cần nó chạy là được. Nó chỉ phù hợp cho việc phát triển nguyên mẫu sản phẩm, một sản phẩm với chức năng tối thiểu, học tập và những "dự án bỏ đi được làm vào cuối tuần" như Karpathy từng nói.
Sự khác biệt then chốt
Vậy điểm khác biệt cốt lõi giữa vibe code và cách FAANG sử dụng AI là gì? Với vibe code, tốc độ và khám phá được đặt lên trên tính chính xác và khả năng bảo trì. Ngược lại, với kỹ thuật lập trình do AI hỗ trợ mà các công ty lớn áp dụng, kỹ sư con người vẫn luôn nắm quyền kiểm soát, phải đánh giá và hiểu từng dòng code do AI tạo ra, đồng thời đảm bảo sản phẩm cuối cùng an toàn, có khả năng mở rộng và bảo trì được.
AI ở đây đóng vai trò như một nhân tố tăng cường sức mạnh, chứ không phải là người thay thế. Con số 30% tăng tốc mà anh kỹ sư FAANG nhắc đến là kết quả của việc tăng cường một quy trình vững chắc, không phải từ bỏ các nguyên tắc kỹ thuật cốt lõi. Trong khi vibe code có thể được mô tả như "kỹ thuật hy vọng" - prompt xong cầu may và hy vọng mọi thứ sẽ hoạt động, thì lập trình do AI hỗ trợ vẫn là kỹ thuật phần mềm đích thực, chỉ được AI hỗ trợ để làm nhanh hơn.
Vậy câu trả lời cho câu hỏi ban đầu là gì? Các đại gia công nghệ có "prompt rồi cầu may" không? Câu trả lời rõ ràng là không. Họ đang sử dụng AI một cách cực kỳ nghiêm túc và có kỷ luật, với những quy trình chặt chẽ từ thiết kế đến deployment. AI giúp họ tăng tốc, nhưng engineering discipline - kỷ luật kỹ thuật - vẫn là nền tảng không thể thiếu.
Sự nhầm lẫn giữa vibe code và AI-assisted engineering có thể gây hại, vì nó tạo ra ấn tượng sai lầm rằng người ta có thể "prompt" một sản phẩm hoàn chỉnh mà không cần hiểu code. Thực tế, ngay cả khi sử dụng những công cụ AI mạnh nhất, sự phán đoán của con người vẫn là yếu tố quyết định sự thành bại của một sản phẩm phần mềm. Và đó chính là bài học quan trọng nhất từ câu chuyện của anh kỹ sư FAANG này.
Nguyễn Hải
