Vibe Coding & Lời hứa "Xong trong buổi chiều": Khi tốc độ của AI va chạm với thực tế kỹ thuật
1. Kỷ nguyên của Vibe Coding – Khi lập trình bắt đầu bằng một lời mô tả
Khi CLS bắt đầu thử nghiệm một cách tiếp cận mới, cảm giác “ma thuật” từng xuất hiện không ít lần. Product Owner (PO) mở IDE lên, nhập vào vài dòng prompt mô tả trải nghiệm người dùng và luồng dữ liệu. Chỉ sau vài phút, một bản bản demo chạy mượt mà hiện ra trước mắt cả đội ngũ. Không sơ đồ tuần tự, không giải thích cấu trúc dữ liệu.
Đó chính là Vibe Coding – dùng ngôn ngữ tự nhiên để AI "thông dịch" ý niệm thành mã nguồn
Vibe Coding xóa nhòa ranh giới giữa ý tưởng và mã nguồn: con người mô tả flow và trải nghiệm bằng ngôn ngữ tự nhiên, thay vì sa lầy vào cú pháp hay cấu trúc dữ liệu; AI Agent chịu trách nhiệm chuyển “vibe” đó thành mã chạy được gần như tức thì.
Cơn sốt này đang lan tỏa mạnh mẽ vì ba giá trị khó chối từ:
- Tốc độ chóng mặt: Ý tưởng vừa phát biểu xong đã có thể render ra bản demo để khách hàng "chạm" thử.
- Sự hưng phấn tột độ: Time-to-market rút ngắn từ hàng tuần xuống còn vài giờ khiến nhiều Stakeholder choáng ngợp.
- Ưu tiên tính trực quan: Tư duy "Vibe" đặt sự hài lòng về mặt thị giác và cảm xúc của người dùng lên hàng đầu, biến việc phát triển sản phẩm trở nên đầy tính nghệ thuật và sự ngẫu hứng.
Tại CLS, chúng tôi cũng không đứng ngoài làn sóng đó. Tuy nhiên, đằng sau những bản Demo lấp lánh "xong trong một buổi chiều" là những gợn sóng ngầm mà nếu không tỉnh táo, hệ thống CLS của chúng tôi có thể phải trả giá đắt.
2. Lầm tưởng: "AI code chạy được nghĩa là đã hoàn thành"
Sự phấn khích khi thấy một tính năng mới xuất hiện chỉ sau vài câu prompt dễ dẫn đến một cái bẫy tâm lý nguy hiểm: lầm tưởng rằng dự án đã hoàn thành. Nhưng trên thực tế, “chạy được” ở môi trường demo và “vận hành bền bỉ” trong một hệ thống SaaS là hai thái cực hoàn toàn khác nhau.
- Cái bẫy "Happy Path": AI là một chuyên gia trong việc làm hài lòng người dùng ở kịch bản lý tưởng nhất. Nó dựng khung cực nhanh, giao diện cực mượt, nhưng lại thường "quên" mất các kịch bản lỗi (Edge Cases). Điều gì xảy ra nếu người dùng nhập sai định dạng dữ liệu? Điều gì xảy ra khi kết nối mạng bị ngắt quãng giữa chừng? Những lỗ hổng này thường bị che lấp bởi cái "vibe" mượt mà ban đầu.
- Sự rời rạc về kiến trúc: Code do AI sinh ra thường mang tính cục bộ, nó tập trung giải quyết vấn đề ngay trước mắt mà thiếu đi cái nhìn tổng thể. Đối với một hệ thống phức tạp như CLS, việc nạp thêm những đoạn code "lạc quẻ", không tuân thủ Design Patterns chung sẽ biến bộ mã nguồn thành một tấm thảm vá. Về lâu dài, việc bảo trì và nâng cấp những module này sẽ trở thành một cơn ác mộng thực sự cho đội ngũ kỹ thuật.
- Tốc độ ảo và Nợ kỹ thuật: AI có thể giúp tiết kiệm vài giờ viết code, nhưng nếu đoạn code đó không đảm bảo tính toàn vẹn hệ thống, cái giá phải trả có thể là vài ngày refactor. Tốc độ mà chúng ta thấy ở buổi demo đôi khi chỉ là sự vay mượn từ tương lai, và cái giá phải trả chính là nợ kỹ thuật chồng chất khiến hệ thống trì trệ về sau.
Cảm giác "xong trong một buổi chiều" thực chất mới chỉ là bắt đầu của một quá trình đầy rủi ro nếu chúng ta thiếu đi sự kiểm soát chặt chẽ.
3. Tại sao PO tuyệt đối không được "đốt cháy giai đoạn" Review kỹ thuật?
Trong cái guồng quay hối hả của Vibe Coding, có một ranh giới mong manh giữa "Agile" (linh hoạt) và "Fragile" (dễ vỡ). Với tư cách là người điều phối sản phẩm, PO thường bị hấp dẫn bởi việc đưa tính năng mới đến tay khách hàng càng sớm càng tốt. Tuy nhiên, nếu bỏ qua khâu Review kỹ thuật khắt khe, chúng ta đang đặt uy tín của cả hệ thống SaaS lên bàn cân rủi ro.
- Thẩm định Logic thay vì cú pháp: Thời đại AI lên ngôi, giá trị của một kỹ sư không còn nằm ở việc gõ phím nhanh hay thuộc lòng hàm thư viện. Giá trị thực sự nằm ở tư duy phản biện. Khi AI đưa ra một đoạn code "đúng vibe", công việc của chúng ta là Review về Logic nghiệp vụ và tính bảo mật (Security). AI có thể viết code giỏi, nhưng nó không hiểu được những quy tắc ngầm định (business rules) đặc thù của doanh nghiệp mà chỉ con người mới nắm rõ.
- Bài toán Scalability & Performance: Hãy tưởng tượng một tình huống thực tế: AI viết một module xử lý file PDF cho báo cáo đào tạo cực nhanh, demo mượt mà với 1-2 file mẫu. Nhưng khi hệ thống CLS chính thức vận hành với 1.000 user cùng thực hiện xuất báo cáo cùng lúc, hiện tượng Memory Leak (tràn bộ nhớ) xảy ra. Đây chính là thứ "Vibe" không thể nhìn thấy bằng mắt thường ở bản Demo, nhưng lại là thứ khiến hệ thống "sập" ngay khi Go-live.
- Sự ổn định (Reliability) là danh dự của SaaS: Đối với khách hàng doanh nghiệp, họ có thể trầm trồ trước một tính năng đẹp, nhưng họ sẽ rời bỏ bạn ngay lập tức nếu hệ thống chập chờn. Một tính năng "vibe" hay nhưng thiếu ổn định sẽ phá hủy niềm tin thương hiệu nhanh hơn bất cứ chiến dịch marketing nào có thể xây dựng lại.
Nói cách khác, Review kỹ thuật không phải là hàng rào cản trở tốc độ, mà là điểm hiệu chỉnh cuối cùng để tốc độ không trở thành rủi ro.
.jpg)
Một chút chia sẻ từ đội phát triển
Bài học về sự lệch pha giữa "vibe" và thực tế kỹ thuật khi đội ngũ áp dụng Vibe Coding để phát triển module Gợi ý khóa học dựa trên hành vi. Bản demo do AI hỗ trợ chạy hoàn hảo, giao diện cực kỳ "vibe". Thế nhưng, ngay khi bước vào khâu Review Code, đội ngũ kỹ thuật đã phải dừng lại vì module này sử dụng cách thức gọi dữ liệu hoàn toàn xa lạ, lệch pha hẳn với kiến trúc chuẩn của hệ thống.
Vấn đề nằm ở sự thiếu hụt Context (Ngữ cảnh):
- Lệch chuẩn kiến trúc: AI dựng lên một "cánh cửa" lung linh nhưng lại không khớp với "khung nhà" sẵn có. Nếu không Review kỹ, chúng tôi sẽ phải "đập đi xây lại" rất nhiều công sức chỉ để khớp nối module này vào hệ thống.
- Hổng logic nghiệp vụ: AI chỉ tối ưu luồng dữ liệu ở mức đơn lẻ (ví dụ: hành vi học tập của người dùng), nhưng chưa hiểu được các quy tắc phối hợp đặc thù giữa các bộ phận của CLS như ghi danh, quyền truy cập nội dung, hay chính sách gợi ý theo gói dịch vụ. Điều này tiềm ẩn nguy cơ làm đứt gãy quy trình vận hành chung của SaaS.
Chúng tôi nhận ra: Vibe Coding không có lỗi. Nó mang lại tốc độ phác thảo tuyệt vời, nhưng AI vẫn cần con người đóng vai trò "kiến trúc sư" để nắn dòng mã nguồn đi đúng quỹ đạo qua những phiên Review gắt gao.
Từ đó, đội ngũ CLS thiết lập nguyên tắc:
"Prompt by Vibe, Review by Logic"
Chúng tôi dùng AI để bứt tốc ý tưởng, nhưng dùng tư duy kỹ thuật chặt chẽ để kiểm soát mã nguồn. Chính việc nhận diện đúng "điểm mù" này đã giúp chúng tôi thuần hóa AI — biến rủi ro thành vũ khí bứt tốc thực thụ.
[Phần tiếp theo] Vibe Coding: Từ "Cơn sốt tốc độ" đến "Vũ khí thực thụ"
Sau tất cả, đội ngũ CLS nhận ra rằng vấn đề của Vibe Coding không hoàn toàn nằm ở năng lực của AI, mà nằm ở cách chúng ta đang sử dụng nó trong thực tế. Khi yêu cầu quá rộng, quá nhanh hoặc thiếu ranh giới kỹ thuật, Context bị “đánh rơi” ngay từ đầu và hệ quả chỉ lộ rõ khi bước vào Review.
Vibe Coding không tự phá vỡ kiến trúc hay logic nghiệp vụ. Cách chúng ta sử dụng Vibe Coding mới là yếu tố quyết định chất lượng mã nguồn.
Ở bài viết sau, CLS sẽ chia sẻ cách chúng tôi điều chỉnh lại cách dùng AI: chia nhỏ nhiệm vụ, giữ Context xuyên suốt, phân vai rõ Product – Engineering – QA, để biến tốc độ của AI từ “cơn sốt” thành vũ khí kỹ thuật thực thụ.
Mời các bạn đón đọc phần tiếp theo!