Ảo tưởng đằng sau các tuyên bố về AI coding: Vì sao không xuất hiện làn sóng 'shovelware' bùng nổ
(mikelovesrobots.substack.com)- Kết quả kiểm chứng bằng dữ liệu đối với các tuyên bố gần đây về việc công cụ AI coding giúp tăng năng suất cho thấy trên thực tế tốc độ lẫn đầu ra đều không tăng rõ rệt
- Theo nghiên cứu của METR, các lập trình viên tin rằng công cụ AI coding giúp năng suất tăng 20%, nhưng thực tế lại giảm 19%
- Hàng loạt khẩu hiệu quảng bá cùng những tuyên bố phóng đại về năng suất gấp 10 lần từ doanh nghiệp và lập trình viên không được phản ánh trong thực tế thị trường hay số lượng phần mềm mới được phát hành
- Không quan sát thấy hiện tượng như Shovelware (ứng dụng sản xuất hàng loạt, phần mềm chất lượng thấp) tăng vọt, tức là không có thay đổi hữu hình
- Việc thổi phồng năng suất từ các công ty như GitHub, Copilot, Cursor, Google, OpenAI và một số lập trình viên đang bị lợi dụng cho đầu tư, tái cơ cấu và định mức lương
- Kết luận cốt lõi: “Nếu trên thực tế không có nhiều phần mềm hơn được tạo ra, thì tuyên bố rằng AI coding biến lập trình viên thành người làm việc gấp 10 lần là hư cấu”, vì vậy lập trình viên không nên dao động trước áp lực mà cần phản hồi bằng dữ liệu
Mở đầu: Lập trình viên phần mềm phẫn nộ với AI coding
- Sau thời gian dài sống với nghề lập trình viên phần mềm, tác giả có niềm tự hào và bản sắc nghề nghiệp gắn với việc lập trình
- Ở giai đoạn đầu khi các công cụ coding dựa trên AI được đưa vào sử dụng, tác giả từng kỳ vọng, nhưng nghiên cứu gần đây (METR) đã khiến tác giả trở nên hoài nghi
- Bản thân tác giả từng nghĩ AI coding khiến mình nhanh hơn khoảng 25%, nhưng nghiên cứu METR lại cho ra kết quả chậm hơn 19%
- Nghiên cứu đó xác nhận rằng cảm nhận chủ quan của lập trình viên về hiệu quả của công cụ AI và dữ liệu đo đạc thực tế hoàn toàn trái ngược nhau
- Kết quả tự thử nghiệm cũng khiến tác giả cảm nhận rằng việc dùng AI không tạo ảnh hưởng tích cực lên thời gian lập trình thực tế
Tự kiểm chứng: Thử nghiệm so sánh ngẫu nhiên với AI
- Áp dụng phương pháp thí nghiệm đo chênh lệch thời gian (Delta) giữa khi dùng AI và khi không dùng AI theo từng đơn vị công việc
- Dữ liệu thu được sau 6 tuần thử nghiệm không phát hiện khác biệt có ý nghĩa thống kê
- Dù mẫu còn nhỏ, vẫn xác nhận xu hướng rằng dùng AI trên thực tế lại chậm hơn 21% (trùng với kết quả của nghiên cứu METR)
- Nếu thật sự có hiệu quả cải thiện gấp 2 hay gấp 10, dữ liệu hẳn đã thể hiện rất rõ
- Giấc mơ AI coding hiện tại chưa thành hiện thực, và trên thực tế không có gì thay đổi
Kỳ vọng và thực tế: Vì sao không có bùng nổ Shovelware
- Nếu cuộc cách mạng năng suất từ AI coding là có thật, thì đủ loại ứng dụng, dịch vụ và game lẽ ra phải bùng nổ
- Các thông điệp marketing của vô số công cụ AI coding (như “Built to make you extraordinarily productive”) xuất hiện dày đặc
- Google, OpenAI, GitHub Copilot cũng tuyên bố lập trình viên tăng tốc 25% hoặc đạt năng suất gấp 10 lần
- Nhưng trong dữ liệu phát hành phần mềm mới thực tế (GH Archive, BigQuery, v.v.), không có hiện tượng tăng trưởng dốc đứng hay bùng nổ
- Bất chấp việc AI coding được phổ cập rộng rãi từ sau năm 2022, các chỉ số về số lượng bản phát hành mới và dự án mới trên toàn cầu không có thay đổi lớn
Tác động thị trường và thực tế của lập trình viên
- Các dư chấn xã hội trong ngành như chiến lược AI-First, FOMO, sa thải hàng loạt và hạ lương lập trình viên cũng đã xuất hiện
- Nhưng tại môi trường phát triển thực tế, công cụ AI không mang lại cuộc cách mạng năng suất
- Ngay cả đường cong học tập hay mức độ thành thạo công cụ cũng không thể giải thích chênh lệch năng suất tuyệt đối đó
Kết luận: Cần phán đoán tỉnh táo dựa trên dữ liệu
- Điểm mấu chốt là xác nhận bằng dữ liệu rằng cho đến nay sản lượng phần mềm mới được xuất xưởng chưa có thay đổi
- Không có bằng chứng cho tuyên bố rằng AI đã biến ai đó thành coder gấp 10 lần
- Lập trình viên không nên khuất phục trước áp lực, mà nên lựa chọn công cụ dựa trên dữ liệu do chính mình xác nhận
Phản biện các lập luận thường gặp
-
"Nếu thực sự thành thạo prompt engineering thì sẽ trở thành lập trình viên gấp 10 lần"
- Nếu thật sự có những người đạt được năng suất gấp 10 lần, thì sản lượng phần mềm mới toàn cầu hẳn đã tăng hơn gấp đôi
- Bằng chứng quan trọng hơn lời nói là kết quả đầu ra khách quan (ứng dụng, dự án, v.v.)
-
"Vẫn còn ở giai đoạn đầu nên cần thêm thời gian"
- Hàng chục tỷ USD đã được đầu tư và việc triển khai trong môi trường làm việc thực tế đã diễn ra
- Các quyết định ngày hôm nay ảnh hưởng trực tiếp đến cuộc sống của con người thực
-
"Nếu không áp dụng ngay bây giờ thì sẽ tụt hậu"
- Ngay cả trong dữ liệu của Github Copilot, mức tăng năng suất thực chất theo độ thành thạo cũng là cực kỳ nhỏ (tỷ lệ chấp nhận từ 29% → 34%)
-
"Chỉ là chất lượng tăng lên còn số lượng vẫn giữ nguyên"
- Chất lượng chung của ngành ngược lại còn đang đi lùi, và kiểm thử cũng giảm bớt
- Nếu đây thực sự là công cụ tạo ra coder gấp 10 lần, thì việc Shovelware tràn lan phải là thực tế hiển nhiên
-
"Mọi thứ giờ đều xoay quanh website, và ngày nay không ai còn quan tâm tên miền nữa. Chỉ cần subdomain của những nơi như Vercel là đủ"
- Vẫn còn rất nhiều người dùng ưa thích tên miền riêng
-
"Tên miền .ai tăng vọt (47% trong năm nay) = tăng trưởng thực chất"
- Sự gia tăng tên miền mới chỉ là do các startup AI pivot, chứ không phải tổng số tên miền mới nói chung bùng nổ
- Tổng số tên miền vẫn không như vậy
-
"Bản chất của phát triển phần mềm nằm ở công việc ngoài code"
- Trong môi trường cá nhân/nhóm nhỏ chứ không phải doanh nghiệp lớn, code thực sự vẫn là trung tâm
- Các dự án mới để thỏa mãn nhu cầu code lặt vặt vẫn chưa tăng lên ở mức dễ nhận thấy
Kết lại
- Lập trình viên trên thực tế không phát hành nhiều hơn
- Tuyên bố rằng AI coding mang lại năng suất gấp 10 lần có thể bị bác bỏ bằng dữ liệu
- Đừng để bị cuốn theo FOMO hay các narrative marketing của ngành; cần đánh giá dựa trên kết quả đầu ra thực tế
- Thông điệp của tác giả: “Nếu cảm thấy áp lực, hãy đưa ra dữ liệu và biểu đồ. Hãy yêu cầu hóa đơn chứng minh cho các tuyên bố năng suất gấp 10 lần.”
8 bình luận
Với các lập trình viên 10x, nhờ có AI thì có lẽ cũng có thể nhảy lên mức khoảng 12x.
AI chỉ là ảo tưởng. Không đáng tin cậy và chất lượng cũng thấp. Nói rằng có thể phát triển bằng AI là lời dối trá bị phóng đại. Điều đó là không thể. Và sử dụng AI là hành động vô trách nhiệm, vứt bỏ đạo đức của nhà phát triển.
Tôi nghĩ chỉ khi có thể giao hoàn toàn các tác vụ lặp đi lặp lại đơn giản cho AI, và bản thân mình có thể tập trung trọn vẹn vào những việc quan trọng hơn, thì lúc đó mới có thể nói AI thực sự giúp cải thiện lớn năng suất viết code.
Mỗi lần ra lệnh xong lại phải chờ vài chục giây mới có đầu ra, mà trong vài chục giây đó cũng không hẳn tận dụng được để làm việc khác, và cũng không phải cứ chờ xong vài chục giây là lúc nào cũng có thể kỳ vọng một đầu ra hoàn hảo.
Rốt cuộc, cho đến khi ngay cả công việc đơn giản đó được hoàn tất một cách hoàn hảo thì tôi vẫn phải tiếp tục để tâm đến nó, lại cũng không thể chuyển sang việc khác nên... khá khó để kỳ vọng vào một sự cải thiện có ý nghĩa.
Thà lên Danggeun tìm một người làm thêm trả 10.000 won/giờ để xử lý vài tiếng việc đơn giản thì có vẻ còn giúp cải thiện năng suất hơn.
Chỉ tốn khoảng 100.000 won mỗi tuần thôi mà cá nhân tôi đã thấy khá hài lòng rồi.
Đặc biệt, tôi từng làm việc với vài cô trước đây làm kế toán rồi nghỉ việc để ở nhà nội trợ; cả những người hoàn toàn không biết lập trình, chỉ cần tôi phản hồi vài lần là họ làm ra rất gọn gàng luôn haha
Mấy đoạn mã boilerplate thì họ còn dùng Excel với tự động điền, công thức các kiểu để tạo ra trong chớp mắt nữa...
Ừm... suy nghĩ thành thật của tôi là AI rốt cuộc cũng chỉ là một công cụ, nên phải biết cách tận dụng cho tốt. Dù là công cụ nào đi nữa, so với người dùng giỏi thì luôn có nhiều người chỉ dùng qua loa hoặc không thể khai thác nó đúng cách hơn. Nếu thiết lập để AI tạo ra kết quả chất lượng, nó hoàn toàn có thể cho thấy hiệu suất vượt trội. Có lẽ những người không biết cách dùng AI để tạo ra kết quả chất lượng chỉ đang quăng ra những prompt ngớ ngẩn rồi than rằng năng suất giảm đi. Tôi thực sự không thể hiểu nổi việc phủ nhận năng suất mà AI mang lại.
Nhưng việc nói như vậy dường như cũng không chứng minh được gì, giống như câu nói rằng “người thật sự hiểu sâu về CS và đã tích lũy đủ kinh nghiệm thì có năng suất vượt trội hơn bất kỳ AI nào.”
Tôi mới xem nghiên cứu METR được nhắc đến cách đây không lâu, và đó đúng là một kết quả giải thích rất rõ những gì tôi cảm nhận và từng thắc mắc.
Ngay cả khi giao cho nó những "công việc lặp đi lặp lại" như trong bình luận trên Hacker News, thực tế phần lớn vẫn cần kiểm tra và chỉnh sửa thủ công.
Không chỉ một hai lần tôi đã nhìn vào kiểu logic chắp vá của những kết quả "đơn giản" do AI viết ra rồi nghĩ rằng thà tự mình làm còn hơn.
Những việc thật sự đơn giản ở mức copy-paste thì chắc nó làm tốt.
Nhưng với những thứ như vậy thì chỉ cần copy-paste và snippet thôi còn hiệu quả hơn. Cũng không cần phải kết nối Internet, tải dữ liệu của mình lên máy chủ của người khác rồi chờ hàng chục giây.
Ý kiến trên Hacker News
Với tôi, AI giống như một đường cong hình chuông, và tôi nghĩ nhiều người khác cũng vậy. Tôi cho rằng tiêu chí đánh giá đầu ra là rất quan trọng. Không phải là “số dòng code”, mà phải là “số dòng code chất lượng tốt, dễ bảo trì, có thể mở rộng và dễ nâng cấp”. Theo tiêu chí này, kết quả của những yêu cầu như “tạo toàn bộ repo” chỉ là rác vô nghĩa, còn việc AI tự động hoàn thành những đoạn như
getUser(...thì đúng là giúp tăng năng suất. Tôi không thể nói chắc mức tăng đó là 0,1%, 1% hay 10%Vấn đề nghiêm trọng nhất với tôi là các bài toán tôi xử lý ở công ty hiện nay đòi hỏi phải lên kế hoạch và triển khai rất cẩn thận, nhưng AI hoàn toàn không giúp được gì. Thế mà quản lý của tôi lại nói đã rút thời hạn dự án xuống còn 20% so với ước tính ban đầu chỉ vì “chúng ta là một công ty AI-first”. Kiểu cuồng loạn tập thể này đang lan rất mạnh giữa các SVP và PM, và tôi chưa từng thấy chuyện như vậy trước đây
gitquay lại thời điểm trước khi có đoạn code do LLM viết. Nửa đùa nửa thật đấyNhiều điều có thể cùng đúng một lúc. LLM không làm năng suất lập trình viên tăng gấp 10 lần đối với các tác vụ thông thường được chọn ngẫu nhiên. Nhưng ngược lại, với một số nhóm việc nhất định thì LLM có thể tăng năng suất rất mạnh. Nó cũng có thể dùng để tự động hóa các việc lặp đi lặp lại bận rộn; dù thời gian thực có lâu hơn con người nhưng vì chạy nền nên không thành vấn đề. LLM giúp tăng tốc rất nhiều khi học API hay thư viện mới, và khi cần viết một ít glue code bằng ngôn ngữ không quen thì tiết kiệm thời gian cực lớn, lại không cần học lan man những thứ không cần thiết. Với việc bảo trì các codebase lớn sẵn có, tôi không cảm nhận được khác biệt năng suất đáng kể. Còn dựng bộ khung cho một website mới thì LLM làm tốt đến mức đáng ngạc nhiên. Viết mock class cũng vậy, kể cả những việc phức tạp như nắm cách dùng thư viện mock mà tôi chỉ làm một hai lần rồi quên, nó xử lý gần như ngay lập tức. Việc hiểu cấu trúc một codebase mới cũng làm khá ổn, khoảng 70% là tôi hài lòng. Trong các dự án thiết kế phức tạp, những việc như tìm vị trí HTTP route hay hàm dependency injection cũng tiện: chỉ cần hỏi kiểu “này Claude, mấy hàm liên quan auth nằm ở đâu?” là xong. Tôi nghĩ phải dùng đúng công cụ cho đúng việc
Trong video, phần lớn chỉ là cảnh code tuôn ra trên màn hình và lời khẳng định “lập trình viên junior hết thời rồi”, chứ không có thực chất nào hơn thế. Tôi nghĩ lý do là vì kinh tế bất ổn và bầu không khí đầy cường điệu lẫn lo âu rằng AI sẽ là vị cứu tinh. Đúng là đôi khi AI cho ra kết quả ấn tượng, nhưng về cơ bản nếu không phải người có năng lực nhất định thì cũng vô nghĩa. Những người mới vào nghề đến tầm trung lại toàn tung lên mạng xã hội các câu chuyện thành công bị thổi phồng. Một bầu không khí hình thành, nơi ai cũng cố gắng bảo vệ “siêu năng lực AI” của mình cả về tâm lý lẫn thực tế. Cuối cùng thì chỉ còn chờ chu kỳ cường điệu tự tìm được điểm cân bằng, và vài chục tỷ USD nữa lại bị đốt đi
Theo kinh nghiệm của tôi, AI hữu ích cho một số việc nhỏ nhặt nhất định như refactor quy mô nhỏ hay tự động hóa định nghĩa kiểu, nhưng với những việc phức tạp hơn thế thì nó bỏ sót nhiều thứ và phải làm lại. Tương lai có thể sẽ khiến tôi phải nghĩ lại, nhưng gần đây ngày càng nhiều kỹ sư ít kinh nghiệm hơn đang cố triển khai các tính năng lớn và chấp nhận đầu ra của AI như “code tốt” một cách không phê phán. Nhưng những đoạn code này либо không tuân theo style guide và pattern của chúng tôi, либо tự tay hiện thực lại logic từ đầu thay vì dùng thư viện đã có sẵn, khiến lượng code chúng tôi phải tự bảo trì ngày càng tăng. Về sau thậm chí còn xuất hiện những PR khổng lồ cố làm mọi thứ một lần
Tôi đồng ý với lập luận ở đây. Dùng AI mà tôi vẫn không thấy năng suất tăng đột phá. Tôi nghĩ nếu kỹ sư phần mềm không liên tục luyện tập giải quyết vấn đề, phán đoán và diễn đạt thành code thì kiến thức thần kinh có thể bị suy yếu. Lời hứa rằng AI sẽ mang lại mức năng suất gấp 2 hay gấp 10 trong tương lai là không có thực chất, và dù có chút tăng năng suất trong codebase cá nhân thì ngoài thị trường cũng chưa thấy số lượng sản phẩm thực sự tốt hơn tăng lên. Khi làm tư vấn, tôi khá thường xuyên thấy founder hoặc CTO cố ép dùng AI rồi cuối cùng lại quản lý code tệ hơn và tạo thêm hỗn loạn. Dạo này tôi cũng hay nhận vai trò cố vấn để giúp thiết lập best practice kỹ thuật
Các CEO nói AI làm năng suất của lập trình viên hiện tại tăng gấp 10, nhưng nếu thật vậy thì chẳng phải nên tuyển nhiều lập trình viên hơn nữa sao? Nếu cùng một khoản đầu tư mà năng suất tăng gấp 10 thì hợp lý nhất là đổ thật nhiều tiền vào cái “động cơ” đó. Nhưng ngoài thực tế, có khi năng suất vẫn y nguyên mà chỉ là chi phí nhân sự bị cắt giảm thì đúng hơn
Tôi thấy ấn tượng với cách phân tích nhìn số lượng sản phẩm mới ra mắt từ một góc độ mới mẻ. Thay vì tăng trưởng nhanh, tôi cũng cảm nhận rằng thay đổi thực tế không lớn như kỳ vọng. Một cách giải thích khác là có lẽ viết code vốn không phải nút thắt của việc phát hành sản phẩm; mà chính việc khám phá nên làm gì và đưa nó thật sự lên nền tảng mới tốn rất nhiều thời gian và công sức. Mặt khác, tôi cũng đồng ý rằng dùng sai công cụ AI là chuyện quá dễ. Có lúc cảm giác như “cuối cùng mình cũng ngộ ra rồi!”, nhưng đến ngày hôm sau lại nhận ra “à, hóa ra mình lại đang dùng sai theo một cách khác”. Tại sao phát triển phần mềm lại khó đến vậy và vì sao rất khó tăng tốc năng suất, dù đã làm hơn 20 năm, tôi vẫn chưa thật sự hiểu rõ
Chúng ta đang tạo ra tương lai đó ngay lúc này. Thực tế, tôi chỉ bắt đầu tăng tốc từ khoảng tháng 4~5, khi agentic AI trở nên đủ tốt. Chỉ riêng hôm nay thôi, tôi đã làm một công cụ CLI để xuất kho lưu trữ iMessage thành website, và việc trước đây có lẽ phải mất vài tuần thì giờ có vẻ làm trong một hai ngày là ra cả homebrew formula. Ứng dụng iOS tôi đang làm cũng tiến nhanh hơn nhiều so với tự viết tay, dù tôi cố tình đi chậm lại. Để tham khảo thì dữ liệu của bài đăng kia dừng ở tháng 3~4, và tôi nghĩ chính từ thời điểm này generative AI mới bắt đầu thật sự hữu ích cho việc lập trình. (Tôi đã dùng Copilot từ tháng 11/2022)
Tôi từng là lập trình viên toàn thời gian, sau đó làm quản lý rồi CTO nên ngày càng xa công việc phát triển thực tế. Khi thử quay lại code, việc phải học lại framework, API, ngôn ngữ và các mẹo vặt tiểu tiết từng là điều thú vị, nhưng giờ lại rất khó chịu. Thế nhưng nhờ các công cụ như Claude Code cùng kinh nghiệm thiết kế phần mềm, tôi lại có thể phát triển các hệ thống lớn như trước. Năng suất của tôi không tăng 20%, cũng không nhanh gấp 10 lần. Nó khiến tôi làm lại những việc vốn dĩ tôi đã không định làm, nên tôi muốn gọi đó là mức tăng năng suất vô hạn. Nếu tôi là một người cực giỏi và yêu thích phát triển phần mềm thì có lẽ những công cụ này chỉ gây phiền, nhưng với người bình thường không hay lập trình thì hoàn toàn ngược lại