Bỏ qua tới nội dung chính
Quay lại tin tức

Cách đây 5 năm, tôi đã đưa ra một dự đoán về mã nguồn. Đây là dự đoán tiếp theo của tôi.

Medium Towards AI· Benjamin Latger· 13/8/2026general

Trí tuệ nhân tạo (AI) đã thay đổi cách chúng ta xây dựng phần mềm. Giờ đây, các tác nhân (agent) có thể thay đổi cách chúng ta tương tác với nó. Hơn 95% mã nguồn tôi đưa vào sản xuất hiện nay không phải do tôi tự gõ. Trở lại năm 2021, tôi đã nói với một vài đồng nghiệp rằng chúng ta sẽ sớm không còn viết mã bằng tay nữa. GitHub Copilot vừa ra mắt trong VS Code và lúc đó vẫn chủ yếu giống như một công cụ tự động hoàn thành được cải tiến. Nó có thể gợi ý vài dòng hoặc toàn bộ một hàm, với kết quả đôi khi thú vị và đôi khi hoàn toàn không phù hợp. Các đồng nghiệp của tôi có lý do chính đáng để hoài nghi. Phát triển phần mềm quá phức tạp. Khách hàng đã gặp khó khăn trong việc giải thích những gì

Trí tuệ nhân tạo (AI) đã thay đổi cách chúng ta xây dựng phần mềm. Các tác nhân (agent) giờ đây có thể thay đổi cách chúng ta tương tác với nó. Hơn 95% mã nguồn tôi đưa vào sản xuất ngày nay không phải do tôi tự gõ. Trở lại năm 2021, tôi đã nói với một vài đồng nghiệp rằng chúng ta sẽ sớm không còn viết mã bằng tay nữa. GitHub Copilot vừa ra mắt trong VS Code và lúc đó vẫn chủ yếu giống như một công cụ tự động hoàn thành được cải tiến. Nó có thể gợi ý vài dòng hoặc toàn bộ một hàm, với kết quả đôi khi thú vị và đôi khi hoàn toàn sai lệch. Các đồng nghiệp của tôi có lý do chính đáng để hoài nghi. Phát triển phần mềm quá phức tạp. Khách hàng đã gặp khó khăn trong việc giải thích những gì họ cần. Một cỗ máy sẽ không bao giờ có thể thu thập tất cả ngữ cảnh cần thiết để xây dựng một sản phẩm thực sự. Nhưng tôi không dự đoán sự kết thúc của mã nguồn hay sự biến mất của các nhà phát triển. Tôi chỉ nghĩ rằng việc chuyển đổi thủ công một ý định thành hàng nghìn dòng mã được gõ vào trình soạn thảo cuối cùng sẽ được tự động hóa phần lớn. Năm năm sau, đó đã trở thành cách tôi làm việc. Tôi không kể câu chuyện này để chứng minh rằng tôi đã đúng. Tôi kể nó vì tôi nghĩ một sự thay đổi tương tự đang bắt đầu ở một lĩnh vực khác. Sau mã nguồn, giao diện phần mềm có thể là thứ tiếp theo mà chúng ta không còn phải vận hành bằng tay. Tôi hầu như không còn gõ mã nguồn nữa. Hầu hết thời gian, tôi bắt đầu bằng cách mô tả to những gì tôi muốn xây dựng. Tôi sử dụng SuperWhisper để chuyển giọng nói của mình thành văn bản, sau đó làm việc với các tác nhân (agent) trong Codex. Tôi cung cấp cho chúng yêu cầu, ngữ cảnh, các ràng buộc và, khi cần thiết, hướng dẫn kỹ thuật chính xác. Các tác nhân sau đó khám phá dự án và sửa đổi mã nguồn trực tiếp. Tôi có thể điều chỉnh cách tiếp cận của chúng, thêm một ràng buộc hoặc xem xét lại một quyết định. Tôi vẫn thỉnh thoảng mở một tệp và tự mình thực hiện thay đổi, nhưng điều đó không còn là trọng tâm công việc của tôi như ba năm trước. Con số hơn 95% đó không dựa trên việc kiểm toán từng dòng, và quy trình làm việc của tôi không đại diện cho toàn bộ ngành. Tuy nhiên, nó cho thấy rằng một cách phát triển phần mềm khác đã khả thi. Mã nguồn vẫn tồn tại. Nó vẫn phải triển khai các quy tắc nghiệp vụ, phù hợp với kiến trúc và hoạt động trong môi trường sản xuất. Điều đã thay đổi là giao diện giữa ý định của tôi và mã nguồn đó. Năm 2021, giao diện đó chủ yếu là bàn phím và trình soạn thảo của tôi. Ngày nay, tôi thể hiện một ý định bằng ngôn ngữ tự nhiên và các tác nhân làm việc trực tiếp bên trong dự án. Tôi dành ít thời gian hơn để chuyển đổi mọi quyết định thành cú pháp và dành nhiều thời gian hơn để hiểu yêu cầu, xác định các ràng buộc và kiểm tra xem kết quả có thực sự đúng hay không. Khách hàng không đột nhiên học được cách diễn đạt nhu cầu của họ một cách hoàn hảo. Nếu có, thì khó khăn đó giờ đây thậm chí còn quan trọng hơn. Các nhà phát triển không tạo ra mã nguồn chỉ vì mục đích tạo ra mã nguồn. Họ sử dụng nó để giải quyết một nhu cầu sản phẩm. Khi phần cơ học của công việc có thể được ủy thác, lý do và nội dung chiếm nhiều không gian hơn là cách thức. Điều này không có nghĩa là đưa ra một lời nhắc mơ hồ cho một mô hình và tin tưởng vào bất cứ điều gì nó trả về. Mô hình chỉ là một phần của hệ thống. Xung quanh nó là thứ ngày càng được gọi là "harness": các hướng dẫn dự án, công cụ, quyền hạn, kiểm thử, linter và vòng lặp phản hồi để ràng buộc tác nhân và làm cho công việc của nó có thể kiểm chứng được. OpenAI gần đây đã mô tả sự thay đổi này là kỹ thuật harness: Kỹ thuật harness: tận dụng Codex trong một thế giới ưu tiên tác nhân (agent-first) Robert C. Martin (Uncle Bob, một vị thần trong ngành của chúng ta), tác giả của Clean Code, mô tả một cách tiếp cận thậm chí còn triệt để hơn. Chiến lược hiện tại của ông là "không đọc bất kỳ mã nguồn nào do các tác nhân của tôi viết." Thay vào đó, ông bao quanh chúng bằng những gì ông gọi là "những ràng buộc cực đoan": kiểm thử đơn vị (unit tests), kiểm thử Gherkin, quy trình QA, các chỉ số chất lượng, kiểm thử đột biến (mutation testing) và độ bao phủ kiểm thử (test coverage). Sự tự tin của ông không đến từ việc tin tưởng mù quáng vào mô hình, mà từ việc buộc đầu ra của mô hình phải trải qua những gì ông gọi là "cuộc thử thách" của các ràng buộc đó. Không phải mọi nhóm đều nhất thiết phải đi xa đến mức đó. Nhưng nguyên tắc này rất quan trọng: khi việc viết mã trở nên dễ dàng, chất lượng kỹ thuật ít phụ thuộc vào việc tin tưởng mô hình hơn và phụ thuộc nhiều hơn vào hệ thống ràng buộc và xác minh đầu ra của nó. Công việc không biến mất. Nó đã dịch chuyển. Sự thay đổi đó khiến tôi nhìn nhận khác đi về mọi phần mềm khác mà tôi vẫn phải vận hành thông qua giao diện của nó. Đây là dự đoán tiếp theo của tôi: Thế hệ SaaS (phần mềm dưới dạng dịch vụ) tiếp theo sẽ ưu tiên tác nhân (agent-first). Trong năm năm qua, một phần lớn công việc của tôi với tư cách là CTO (Giám đốc Công nghệ) liên quan đến việc xây dựng các sản phẩm SaaS. Tôi đã theo dõi các mô hình sử dụng và các quy ước ngành của chúng phát triển. Tôi không nghĩ rằng các dịch vụ này sẽ biến mất. Tôi nghĩ rằng trang web hoặc ứng dụng của chúng sẽ sớm không còn là cách duy nhất để truy cập chúng. Năm năm rõ ràng không biến tôi thành một nhà sử học phần mềm. Nhưng đó là khoảng thời gian đủ dài để dành nhiều thời gian thiết kế giao diện, cấu trúc các quy tắc nghiệp vụ và quan sát cách người dùng thực sự truy cập một dịch vụ. Tôi bắt đầu thấy sự tách biệt giữa hai thứ mà chúng ta từ lâu đã coi là một: bản thân sản phẩm và giao diện chúng ta xây dựng để sử dụng nó. Trong một thời gian dài, phần mềm phải được cài đặt trên máy tính của người dùng. Với internet, trình duyệt và kết nối đủ tin cậy, phần lớn phần mềm đó đã trở thành các dịch vụ có thể truy cập từ xa. Xử lý và dữ liệu đã di chuyển khỏi máy của người dùng, nhưng việc sử dụng dịch vụ vẫn yêu cầu mở một giao diện. Đầu tiên là một trang web, và sau đó thường là một ứng dụng di động. Internet đã thay đổi cách phân phối phần mềm. Trí tuệ nhân tạo (AI) giờ đây có thể thay đổi cách chúng ta truy cập và vận hành nó. Các sản phẩm SaaS sẽ giữ lại cơ sở dữ liệu, hệ thống xác thực, quyền hạn, quy tắc nghiệp vụ và khả năng thực hiện hành động của chúng. Nhưng người dùng sẽ không nhất thiết phải mở giao diện của chúng cho mọi thao tác. Đó là điều tôi muốn nói khi đề cập đến "ưu tiên tác nhân": một dịch vụ được thiết kế để được sử dụng trực tiếp bởi một tác nhân, mà không yêu cầu giao diện đồ họa của nó làm điểm truy cập mặc định. Điều này không có nghĩa là giao diện biến mất. Nó có nghĩa là giao diện đóng một vai trò khác. Nó cũng đòi hỏi chúng ta phải thiết kế SaaS khác đi. Các khả năng của nó phải dễ hiểu đối với máy móc, quyền hạn của nó phải rõ ràng và các hành động của nó.

Nguồn tin: Medium Towards AI — Tác giả: Benjamin Latger. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.