Martin Fowler: Sự "lười biếng" của lập trình viên và bài học về nợ kỹ thuật trong kỷ nguyên AI
Martin Fowler chia sẻ suy ngẫm về tác động của AI đối với kỹ thuật phần mềm, đặc biệt là việc các mô hình ngôn ngữ lớn (LLM) thiếu đức hạnh "lười biếng" – động lực thúc đẩy sự đơn giản và trừu tượng hóa. Bài viết cũng bàn về việc áp dụng TDD vào việc ra lệnh cho AI và tầm quan trọng của việc dạy AI biết nghi ngờ để hoạt động an toàn hơn.

Martin Fowler, một trong những gương mặt uy tín nhất trong giới kiến trúc phần mềm, gần đây đã có những chia sẻ sâu sắc về sự thay đổi trong tư duy lập trình dưới tác động của Trí tuệ Nhân tạo (AI). Trong một buổi phỏng vấn tại Pragmatic Summit cùng với Kent Beck và Gergely Orosz, Fowler đã dành nhiều thời gian thảo luận về cách AI đang định hình lại ngành công nghiệp, so sánh nó với những bước chuyển mình công nghệ trong quá khứ và vai trò của các phương pháp Agile hay TDD (Phát triển hướng kiểm thử).
Martin Fowler tại Pragmatic Summit 2026
Tuy nhiên, điểm thú vị nhất trong bài viết mới nhất của Fowler không nằm ở công cụ, mà nằm ở triết lý: Đức hạnh sự lười biếng.
Sự "lười biếng" và trừu tượng hóa
Larry Wall, cha đẻ của ngôn ngữ Perl, từng nổi tiếng với tuyên ngôn về ba đức hạnh của lập trình viên: Kiêu ngạo (Hubris), Bất kiên nhẫn (Impatience) và Lười biếng (Laziness). Trong đó, sự lười biếng được coi là đức hàm quan trọng nhất. Bryan Cantrill giải thích rằng, sự lười biếng thực chất là động lực để tạo ra các trừu tượng hóa (abstraction) tốt đẹp. Nó thúc đẩy chúng ta xây dựng các hệ thống đơn giản nhất có thể để tiết kiệm công sức trong tương lai.
Fowler lo ngại rằng AI đang đe dọa đức hạnh này. Đối với một Mô hình Ngôn ngữ Lớn (LLM), việc viết code không tốn sức lực. Chúng không cảm thấy cần phải tối ưu hóa cho thời gian của chính mình hay của người khác. Nếu không được kiểm soát, AI có thể sẽ tạo ra những hệ thống cồng kềnh, chồng chất các lớp code rác thay vì tìm kiếm giải pháp thanh lịch, đơn giản. Trong khi con người bị giới hạn bởi thời gian và phải nỗ lực tư duy để tìm ra sự đơn giản, AI thì sẵn sàng tạo ra sự phức tạp một cách dễ dàng.
Bài học từ việc refactor code
Fowler kể lại một trải nghiệm cá nhân khi ông cố gắng sửa đổi trình tạo danh sách phát nhạc của mình. Ban đầu, ông gặp khó khăn và đã nảy sinh ý định sử dụng một "coding agent" (tác nhân code AI) để giải quyết nhanh chóng. Tuy nhiên, sau khi suy nghĩ kỹ, ông nhận ra mình đang làm phức tạp hóa vấn đề không cần thiết. Áp dụng nguyên tắc YAGNI (You Ain't Gonna Need It - Bạn sẽ không cần nó đâu), ông đã loại bỏ các tính năng thừa và giải quyết vấn đề chỉ với vài chục dòng code.
Nếu ông đã dùng LLM ngay từ đầu, công cụ đó có thể đã tạo ra một giải pháp phức tạp một cách nhanh chóng. Và nguy hiểm hơn, ông có thể đã gật đầu chấp nhận (LGTM - Looks Good To Me) mà không nhận ra sự phức tạp tiềm ẩn đó. Đây chính là nguồn gốc của nợ kỹ thuật (technical debt) và nợ nhận thức (cognitive debt) mà AI có thể vô tình tạo ra.
Áp dụng TDD cho việc ra lệnh AI
Jessica Kerr đã đưa ra một ví dụ thú vị về việc áp dụng tư duy TDD vào việc làm việc với các tác nhân AI. Bà muốn đảm bảo mọi cập nhật code đều đi kèm việc cập nhật tài liệu.
Có hai cách tiếp cận:
- Hướng dẫn (Instructions): Sửa file
AGENTS.mdđể yêu cầu tác nhân tìm và cập nhật tài liệu. - Xác minh (Verification): Thêm một tác nhân "reviewer" để kiểm tra từng Pull Request xem có bỏ sót tài liệu nào không.
Theo nguyên tắc TDD, chúng ta nên bắt đầu bằng việc kiểm thử (xác minh) trước khi viết code (hướng dẫn). Điều này đảm bảo rằng hệ thống có cơ chế tự kiểm tra tính đúng đắn trước khi chúng ta cố gắng "dạy" AI cách thực hiện nhiệm vụ.
Dạy AI biết nghi ngờ
Một vấn đề khác được Mark Little đề cập đến là sự tự tin thái quá của AI. Ông lấy cảm hứng từ bộ phim khoa học viễn tưởng kinh điển "Dark Star", trong đó một thành viên phi hành đoàn phải dùng lập luận triết học để ngăn một quả bom thông minh phát nổ.
Quả bom tin chắc rằng mình nhận được lệnh nổ, nhưng phi hành đoàn đã dạy nó nghi ngờ về cảm biến của chính mình: "Dữ liệu cảm giác của bạn không nhất thiết phản ánh thực tế bên ngoài".
Đây là một ẩn dụ sâu sắc cho AI hiện đại. Hầu hết các hệ thống AI được tối ưu hóa để quyết đoán: có đầu vào thì phải có đầu ra. Tuy nhiên, trong các hệ thống mở, nơi sai lầm có hậu quả nghiêm trọng, hành vi đúng đắn thường là sự trì hoãn hoặc không hành động. Chúng ta cần thiết kế AI biết khi nào nên dừng lại, biết nghi ngờ dữ liệu của chính mình thay vì vội vàng đưa ra câu trả lời. Trong một thế giới tự động hóa ngày càng cao, sự kiềm chế không phải là giới hạn, mà là một năng lực quan trọng.
Kết luận, Fowler nhấn mạnh rằng dù AI có mạnh mẽ đến đâu, những giá trị cốt lõi của kỹ thuật phần mềm – sự đơn giản, sự nghi ngờ và tư duy trừu tượng hóa – vẫn càng trở nên quan trọng hơn bao giờ hết để giữ cho hệ thống của chúng ta bền vững.
Bài viết liên quan

Công nghệ
Ứng dụng Suy luận Nhân quả (Causal Inference) để Đánh giá Tác động của Đình công Tàu điện ngầm đến Lượng người đi Xe đạp tại London
22 tháng 4, 2026
Công nghệ
OpenAI giới thiệu Workspace Agents: Tác nhân AI tối ưu hóa quy trình làm việc doanh nghiệp
22 tháng 4, 2026

Công nghệ
Linux có thể được miễn kiểm tra độ tuổi tại Colorado, nhưng Quốc hội Mỹ vẫn giám sát
22 tháng 4, 2026
