- Theo một nghiên cứu gần đây, khi các nhà phát triển mã nguồn mở sử dụng công cụ AI trên codebase mà họ rất quen thuộc, thời gian làm việc lại tăng thêm 19%
- Các nhà phát triển tin rằng AI giúp họ nhanh hơn, nhưng thực tế lại chậm hơn, cho thấy khoảng cách giữa nhận thức và thực tế
- Nguyên nhân cốt lõi là mô hình tinh thần (cấu trúc hiểu biết) tinh vi mà nhà phát triển sở hữu và giới hạn trong việc truyền đạt tri thức giữa con người với AI
- Theo lý thuyết của Peter Naur, điều quan trọng nhất trong lập trình là "mô hình tinh thần" trong đầu nhà phát triển
- Ông là nhà tiên phong khoa học máy tính người Đan Mạch và là người nhận giải Turing năm 2005. Ông đã đóng góp cho ký pháp Backus-Naur (BNF) dùng để mô tả cú pháp ngôn ngữ lập trình
- Ở góc nhìn dài hạn, để hiểu sâu một dự án thì điều quan trọng là tự tay viết mã để xây dựng mô hình tinh thần
Hiện tượng AI làm chậm các nhà phát triển mã nguồn mở
- Theo nghiên cứu của Metr, khi dùng công cụ AI, tốc độ giải quyết vấn đề lại chậm hơn 19%
- Trước khi làm việc, các nhà phát triển kỳ vọng AI sẽ giúp họ nhanh hơn 24%, và ngay cả sau khi hoàn thành, họ vẫn tin rằng mình nhanh hơn thực tế 20%
- Nghiên cứu này được thực hiện với các nhà phát triển giàu kinh nghiệm đang trực tiếp duy trì những dự án mã nguồn mở mà họ hiểu rất sâu
- Kết quả không thể khái quát cho mọi nhà phát triển, nhưng với nhóm này, nó cho thấy công cụ AI gây phản tác dụng đối với năng suất
- Trong môi trường doanh nghiệp, hoặc với các nhà phát triển thông thường phải thích nghi với codebase mới, công cụ AI có thể đóng vai trò tích cực hơn trong việc cải thiện năng suất
Vì sao AI làm chậm các nhà phát triển mã nguồn mở dày dạn kinh nghiệm
- Theo bài luận “Programming as Theory Building” của Peter Naur, sản phẩm thực sự của lập trình không phải là mã nguồn mà là ‘mô hình tinh thần của nhà phát triển về dự án’
- Mô hình tinh thần này là cốt lõi để hiểu hệ thống, chẩn đoán vấn đề và cải tiến hiệu quả
- AI dựa trên LLM không thể truy cập trực tiếp vào mô hình tinh thần của nhà phát triển, và ngay cả khi được cung cấp một phần thông tin, vẫn sẽ có tổn thất bản chất trong quá trình truyền đạt tri thức
- Ví dụ, khi nhờ ai đó ru em bé ngủ, dù đã giải thích rõ ràng thì trên thực tế họ vẫn thường hành động khác với ý định ban đầu
- Việc truyền tải mô hình tinh thần là cực kỳ phức tạp, và gần như không thể để AI hấp thụ nó chỉ qua văn bản
- Vì vậy, nếu giao việc cho AI trong một dự án mà bản thân đã hiểu rất sâu, năng suất có thể còn giảm đi
- Lượng thông tin ngữ cảnh phong phú và sự thấu hiểu mang tính trực giác của nhà phát triển là điều AI khó có thể dễ dàng thay thế
Có nên cấm công cụ AI trong công việc thực tế không?
- Không hẳn. Điều này chỉ áp dụng với “những người đang làm trên dự án mà họ tự mình biết rõ và hiểu sâu”
- Nhiều lập trình viên doanh nghiệp thường phải bảo trì mã do các tiền bối đã rời đi để lại, hoặc làm việc khi chưa hiểu sâu kiến trúc tổng thể của hệ thống
- Trong những môi trường như vậy, AI có thể nhanh chóng nắm bắt codebase và tự động tạo ra thay đổi, từ đó góp phần cải thiện năng suất ngắn hạn
- Nếu chỉ xét việc tạo ra giá trị kinh doanh ngắn hạn và hiệu quả tức thời, công cụ AI có thể đóng vai trò tích cực đối với năng suất
Xây dựng mô hình tinh thần và AI
- Nếu chưa có mô hình tinh thần về dự án, LLM có thể giúp cải thiện năng suất
- Nhưng nếu bản chất của phát triển phần mềm là ‘xây dựng mô hình tinh thần’, thì việc phụ thuộc quá nhiều vào AI có thể làm suy giảm năng lực đó
- Về lâu dài, nếu muốn hiểu sâu dự án và chủ động thay đổi nó, trải nghiệm tự tay viết mã là cần thiết
- Ngược lại, nếu chỉ làm theo kiểu ‘miễn là chạy được’, thì việc tận dụng AI có thể hiệu quả
Thảo luận thêm và kết luận
- Với công cụ AI ở trình độ hiện tại, rất khó để nâng cao năng suất của các nhà phát triển đã có mô hình tinh thần đầy đủ
- Việc AI có thể hỗ trợ đúng cách cho mô hình tinh thần hoặc nâng năng suất của nhà phát triển dày dạn kinh nghiệm lên mức đột phá vẫn cần thêm nghiên cứu và phát triển
- Trong tương lai, khi mô hình tiến bộ hơn, có thể sẽ đến ngày con người không còn cần phải tự mình sở hữu mô hình tinh thần nữa, nhưng ở mức hiện tại thì sự thấu hiểu và học hỏi trực tiếp vẫn là điều thiết yếu
- Cuối cùng, AI có thể trở thành trở ngại trong môi trường ‘tôi hiểu rất sâu mình đang làm gì’, nhưng lại có thể là công cụ nâng năng suất trong môi trường ‘kết quả nhanh là quan trọng’
5 bình luận
> Các nhà phát triển tin rằng AI đã khiến họ làm việc nhanh hơn
Khi việc nghiên cứu với AI trở nên nhanh hơn, có lẽ cũng sẽ giúp nâng cao chất lượng, nên ngay cả với cùng một công việc thì kết quả cũng có thể tốt hơn đôi chút phải không. Có phải các nhà phát triển nghĩ rằng, nếu muốn phát triển sao cho phù hợp với chất lượng của thành phẩm sau khi hoàn thành công việc, thì nhờ AI hỗ trợ sẽ nhanh hơn so với tự mình đạt tới mức đó.
Tôi cũng nghĩ rằng, nếu ngay từ đầu không dùng nó, thì có lẽ người ta sẽ chỉ triển khai bằng lượng kiến thức mình thực sự biết nhiều hơn.
> Ngược lại, nếu là kiểu công việc ‘chỉ cần cho nó chạy được’ thì việc tận dụng AI có thể hiệu quả.
Không chỉ riêng lập trình viên, nhưng vì có nhiều kiểu người với xu hướng khác nhau, nên tôi nghĩ rằng những người tình cờ làm nghề phát triển phần mềm, đồng thời ghét hoặc sợ việc viết hay đọc mã, và có tư duy chỉ cần chạy được là đủ hơn là diễn giải theo góc nhìn cấu trúc hệ thống hay khả năng bảo trì, dường như càng dễ phụ thuộc hoặc tin tưởng mù quáng vào AI hơn. Cũng có thể là tôi sai.
Đo lường "tác động của AI" lên năng suất của các nhà phát triển mã nguồn mở giàu kinh nghiệm
Ý kiến trên Hacker News
Tôi nghĩ bài blog đó đã đề cập khá thú vị đến một yếu tố cụ thể có thể góp phần làm AI khiến tốc độ phát triển chậm lại.
Trong bài báo (mục C.1.5) cũng có trích dẫn từ các lập trình viên, mọi người có thể tham khảo.
Nhiều người đọc bài báo rồi thấy một yếu tố nào đó đồng cảm và dễ kết luận rằng “chỉ riêng vấn đề này là lý do khiến mọi thứ chậm đi”.
Nhưng thực tế có nhiều yếu tố cùng lúc (ít nhất 5 yếu tố có khả năng cao, và chưa thể loại trừ tối đa 9 yếu tố, xem bảng các yếu tố ở trang 11).
Phân tích nguyên nhân theo nhiều góc độ sẽ hợp lý hơn là giả định chỉ có một nguyên nhân duy nhất.
Nếu ai có kế hoạch tự thử nghiệm, tôi rất mong mọi người chia sẻ kết quả qua email ghi trong bài báo.
Và về tiêu đề bài viết là “AI slows down open source developers. Peter Naur can teach us why”, tôi nghĩ diễn đạt chính xác hơn sẽ là “Vào đầu năm 2025, AI làm chậm các lập trình viên nguồn mở giàu kinh nghiệm. Peter Naur cung cấp thêm bối cảnh cho một yếu tố cụ thể.”
Cách diễn đạt đó có thể bớt giật gân hơn, nhưng tôi cho rằng tính chính xác là quan trọng.
Một lần nữa xin cảm ơn vì bài viết rất hay, tôi vẫn đang tiếp tục đọc các bình luận
Thảo luận liên quan trước đó
Toàn văn bài báo
truyện tranh quản lý thời gian của xkcd
Joel on Software: Things you should never do, part I
Rất nhiều đoạn mã do AI tạo ra chỉ đơn giản là được sinh ra, chạy qua vài bài test đơn giản rồi thôi. Thậm chí có rất nhiều đoạn mã mà ngay cả chính người dùng cũng không hiểu đầy đủ toàn bộ ngữ cảnh hay lý do tồn tại của nó
(được bàn kỹ hơn trong mục C.2.7 của bài báo, “Mức độ tận dụng công cụ AI dưới trung bình”)
Tham khảo: vấn đề spam AI từ lâu
try:catchquá rộng, khiến việc truy vết nguồn gốc vấn đề trở nên khó khăn hơn. Cá nhân tôi muốn lỗi lộ ra nhanh và rõ hơn (=fail fast) để sửa ngayTôi cũng từng có suy nghĩ tương tự nhưng khó diễn đạt cho rõ.
"Mô hình tinh thần" đúng là một cách đặt tên phù hợp. Tôi sẽ cố gắng dùng nó thường xuyên hơn.