Phần mềm đã nuốt chửng thế giới. Giờ đây, AI đang nuốt chửng phần mềm qua từng tệp tin một. Nếu bạn viết mã để kiếm sống, có lẽ bạn đã cảm thấy nền đất dưới bàn phím của mình đang dịch chuyển. Một lập trình viên đã cảm nhận điều đó hai lần chỉ trong một năm. Đầu tiên, máy móc đảm nhận việc viết. Sau đó, nó đảm nhận cả việc kiểm tra. Anh ấy vẫn có việc làm, nhưng chỉ vì anh ấy đã thay đổi nó đến mức không thể nhận ra.
Đây không phải là một dự báo về ngày tận thế. Đây là một báo cáo thực địa từ giữa quá trình chuyển đổi.
Sự chuyển dịch đầu tiên: Từ gõ phím sang hiệu đính
Đã từng có thời gian mà công việc của anh ấy rất dễ mô tả: suy nghĩ, gõ, kiểm thử, và phát hành. Anh ấy viết mọi hàm bằng tay. Anh ấy đặt tên biến, lồng các vòng lặp và xử lý các trường hợp biên (edge cases) thông qua nỗ lực và sai sót. Việc đọc mã không phải là một tác vụ riêng biệt. Đó là quá trình sáng tạo được làm chậm lại để kiểm tra. Kiểm soát chất lượng và sản xuất diễn ra trong cùng một chuyển động.
Rồi tính năng tự động hoàn thành (autocomplete) không còn chỉ là một công cụ hỗ trợ đơn thuần nữa.
Các trợ lý lập trình AI không còn dừng lại ở việc gợi ý từ khóa tiếp theo. Chúng bắt đầu nhả ra cả những class, các bản database migration và các API wrapper hoàn chỉnh. Đôi tay của lập trình viên chuyển từ các phím mũi tên sang bảng xem xét (review pane). Anh ấy mất đi hành động viết, nhưng anh ấy tự nhủ rằng mình vẫn an toàn. Anh ấy vẫn đọc từng dòng. Anh ấy vẫn lần theo hình thái của logic. Anh ấy là biên tập viên, là người gác cổng, là con người trong quy trình (human in the loop).
Sự chuyển dịch này có vẻ dễ kiểm soát vì ảo tưởng về sự kiểm soát vẫn còn nguyên vẹn. Bạn vẫn đang chạm vào mã nguồn. Bạn vẫn đang săn tìm các lỗi off-by-one. Nhưng vai trò của bạn đã thay đổi. Bạn không còn là tác giả nữa. Bạn là tuyến phòng thủ đầu tiên chống lại sự ảo tưởng (hallucinations) của máy móc.
Sự chuyển dịch thứ hai: Từ đọc sang tin tưởng
Sự thay đổi thứ hai còn tác động mạnh mẽ hơn.
Các AI agent phát triển đủ nhanh để làm việc trong nhiều giờ mà không cần sự can thiệp của con người. Chúng có thể khởi tạo scaffolding, refactor các module cũ và vá các dependencies trong khi anh ấy rời đi uống cà phê. Năng suất không còn là vấn đề. Chính tốc độ đọc của anh ấy mới là vấn đề.
Để giữ cho dự án tiến triển, anh ấy buộc phải ngừng đọc từng dòng mã. Không còn lựa chọn nào khác. Nhà máy có thể sản xuất nhanh hơn mức anh ấy có thể phê duyệt. Sự tin tưởng trở thành một yêu cầu bắt buộc, chứ không còn là một đức tính. Anh ấy chuyển từ một người hiệu đính sang một quản lý vận hành, giám sát một hệ thống tạo ra nhiều mã hơn cả lượng mã anh ấy từng viết trong cả một năm chỉ trong một sprint.
Anh ấy mô tả cảm giác đó một cách trung thực: anh ấy không còn là một coder nữa. Anh ấy đang quản lý một nhà máy máy móc, nơi các băng chuyền chuyển động nhanh hơn cả tốc độ mắt nhìn.
Điểm nghẽn dịch chuyển lên phía trên
Đây là phần rất dễ bị bỏ qua. Điểm nghẽn không hề biến mất. Nó chỉ chuyển vị trí.
Khi con người viết mã, sự chậm trễ nằm ở giữa bộ não và IDE. Lập trình viên là bộ phận chuyển động chậm nhất, và điều đó có thể chấp nhận được. Một khi AI đảm nhận việc viết mã, điểm nghẽn trở thành việc kiểm tra của con người. Sau đó, khi các agent có thể chạy trong các vòng lặp kéo dài nhiều giờ, điểm nghẽn trở thành khả năng ra quyết định của con người. Các agent nên làm việc gì? Điều gì là an toàn để tự động hóa? Điều gì cần phải xem xét lại lần hai?
Nhà máy sản xuất nhanh hơn mức người quản lý có thể phê duyệt. Vấn đề không còn là tốc độ của máy móc. Đó là khả năng hấp thụ, phán đoán và điều hướng của con người.
Nếu bạn phớt lờ sự dịch chuyển của điểm nghẽn này, bạn sẽ trở thành vật cản mà công cụ tiếp theo được tạo ra để loại bỏ.
Ba lần tái cấu trúc, một sự nghiệp
Để sống sót qua cả hai làn sóng, anh ấy đã phải tái cấu trúc vai trò của mình ba lần riêng biệt.
Đầu tiên, anh ấy chuyển từ viết mã sang đọc mã. Điều đó có nghĩa là học cách đọc lướt với sự hoài nghi, săn tìm các lỗi tinh vi trong các đoạn boilerplate được tạo ra bởi một mô hình được huấn luyện trên các kho lưu trữ mã nguồn mở và các luồng thảo luận trên diễn đàn. Nó có nghĩa là phát triển một "trực giác" để nhận ra khi nào một gợi ý nghe có vẻ đúng nhưng thực chất lại sai một cách tinh vi, một kỹ năng hoàn toàn khác với việc viết từ con số không.
Tiếp theo, anh ấy chuyển từ đọc mã sang xây dựng quy trình làm việc (workflows). Đây là nơi mà nhiều lập trình viên đang dừng chân vào lúc này. Bạn không sửa các hàm; bạn đang thiết kế môi trường nơi các hàm đó được sửa lỗi. Bạn viết prompt, soạn thảo các chỉ dẫn hệ thống, thiết lập các rào chắn (guardrails) và cấu hình các cổng CI. Bạn xây dựng hệ thống đường ống kết nối agent với trình biên dịch, linter và bộ kiểm thử (test suite). Sản phẩm đầu ra của bạn ít là cú pháp hơn và thiên về sự điều phối (orchestration) nhiều hơn.
Cuối cùng, anh ấy chuyển từ xây dựng quy trình sang quyết định xem nên xây dựng cái gì. Đây là vùng không khí loãng ở trên cao. Bạn đang lựa chọn kiến trúc trước khi tệp tin đầu tiên được tạo ra. Bạn đang xác định các ràng buộc, các giao diện (interfaces) và logic nghiệp vụ mà AI sẽ lấp đầy. Bạn đã trở thành một người tư duy về sản phẩm, người tình cờ nói ngôn ngữ của các hệ thống.
Nếu anh ta cứ ở lại giai đoạn một, anh ta đã bị thay thế hoàn toàn. Lý do duy nhất khiến anh ta vẫn còn được nhận lương là vì anh ta đã tiến lên được giai đoạn ba.
Nhưng quá trình leo lên đó là
