Kỹ thuật phần mềm đã chết. Đó là những gì những tiếng nói lớn nhất trên Twitter công nghệ muốn bạn tin. Họ chia sẻ những video quay màn hình về các công cụ AI có thể khởi tạo toàn bộ ứng dụng chỉ từ một đoạn prompt duy nhất và đặt câu hỏi tại sao người ta vẫn phải trả tiền cho con người để viết code. Sự hoảng loạn này là có thể hiểu được, nhưng nó hoàn toàn lạc đề.
AI không nhắm vào các kỹ sư. Nó nhắm vào bất kỳ ai nhầm lẫn tốc độ gõ phím với khả năng phán đoán kỹ thuật. Có một khoảng cách rất lớn giữa việc viết code và kỹ thuật phần mềm, và khoảng cách đó chính là nơi toàn bộ nghề nghiệp này tồn tại.
Một trợ lý AI có thể đưa cho bạn năm cách khác nhau để triển khai một tính năng trước khi bạn kịp nhấp một ngụm cà phê. Điểm nghẽn đã thay đổi. Chúng ta không còn nhìn chằm chằm vào một tệp trống và tự hỏi phải bắt đầu từ đâu. Chúng ta nhìn chằm chằm vào năm giải pháp khả thi và tự hỏi giải pháp nào sẽ không bị sụp đổ ngay khi có lưu lượng truy cập thực tế. Quyết định đó chính là kỹ thuật. Mọi thứ khác chỉ là cú pháp.
Bản demo không phải là sản phẩm
Hãy xem bất kỳ bản demo lập trình bằng AI nào, bạn sẽ thấy một giao diện đẹp mắt được hình thành chỉ trong vài phút. Điều bạn sẽ không thấy là việc pool kết nối cơ sở dữ liệu bị cạn kiệt dưới tải trọng. Bạn sẽ không thấy việc thiếu giới hạn tốc độ (rate limits) trên một API endpoint, sự thiếu vắng của nhật ký kiểm tra (audit logs), hay chi phí lưu trữ khi ghi lại mọi tương tác của người dùng vào một object bucket chỉ vì AI nghĩ đó là một nơi thuận tiện để đổ dữ liệu trạng thái (state).
Các hệ thống thực tế (production) đòi hỏi khả năng mở rộng, bảo mật, hiệu suất và kiểm soát chi phí. Những phẩm chất này không thể thấy được trong một buổi sprint review. Chúng chỉ lộ diện khi người dùng thực sự đến với những hành vi không thể đoán trước, những trường hợp biên (edge cases), và việc họ từ chối nhấp vào các nút theo đúng thứ tự mà bạn mong đợi. Tôi đã chứng kiến quá nhiều dự án có sự hỗ trợ của AI trông rất "xanh" trong giai đoạn QA nhưng lại trở thành những bài học đắt giá ngay tuần sau khi ra mắt.
Code chạy được đã trở nên rẻ mạt. Kỹ thuật tốt thì không.
Điều gì quan trọng lúc này
Những kỹ sư đang phát triển mạnh mẽ trong sự chuyển dịch này không phải là những người gõ phím nhanh nhất. Họ là những người biết cần phải đặt câu hỏi nào trước khi một dòng code duy nhất được tạo ra.
Họ xác định vấn đề một cách rõ ràng. Một mô hình AI sẽ rất sẵn lòng giải quyết sai vấn đề nếu bạn để nó làm vậy. Nó sẽ xây dựng một lớp bộ nhớ đệm (caching layer) phức tạp cho một dashboard có tần suất đọc cao vốn chỉ được sử dụng bởi sáu nhà phân tích nội bộ. Nó sẽ không dừng lại để hỏi liệu vấn đề thực sự là thiếu chỉ mục cơ sở dữ liệu (database index) hay là một mô hình dữ liệu bị lỗi căn bản. Một kỹ sư lành nghề sẽ định nghĩa lại vấn đề cho đến khi giải pháp trở nên hiển nhiên, cho dù giải pháp đó có bao gồm code hay không.
Họ chia nhỏ các hệ thống lớn thành các phần nhỏ. AI rất giỏi trong việc xử lý ngữ cảnh cục bộ. Nó có thể viết một hàm đơn lẻ, một thành phần đơn lẻ, một bài kiểm tra đơn lẻ. Nhưng nó gặp khó khăn trong việc nắm bắt toàn bộ một kiến trúc phân tán. Những kỹ sư có thể phân rã một khối monolith, vạch ra ranh giới giữa các dịch vụ và xác định các hợp đồng (contracts) giữa các nhóm là những người biến các đoạn mã được tạo ra thành các hệ thống bền vững.
Họ thách thức các gợi ý của AI. Sự tự tin của mô hình chỉ là một ảo ảnh. Nó sẽ đề xuất các kiến trúc bỏ qua độ trễ mạng (network latency), đề xuất các thư viện đã bị khai tử (deprecated) từ nhiều năm trước, hoặc giải quyết các tính năng thực tế không hề tồn tại trong yêu cầu.
