Có một sự thật mà dân kỹ thuật chắc ai cũng cảm nhận được, dù mức độ thừa nhận có thể khác nhau.
AI đang viết code ngày càng khá.
Không phải lúc nào cũng đẹp.
Không phải lúc nào cũng đúng.
Và chắc chắn chưa phải lúc nào cũng đáng tin để merge thẳng.
Nhưng nếu so với một hai năm trước, khoảng cách đã thay đổi rất nhanh. Giờ đây, AI có thể generate một function khá ổn, dựng skeleton API, draft unit test, viết migration, gợi ý refactor, thậm chí tạo luôn một flow UI từ mô tả khá sơ sài. Với những phần việc có pattern rõ, lặp lại nhiều, hoặc đã có ngữ cảnh tương đối đầy đủ, tốc độ của nó thật sự đáng nể.
Vậy software engineer rồi sẽ ra sao?
Nếu trả lời theo kiểu bi quan, có thể nói: “Dev sắp bị thay.”
Nhưng nói kiểu đó vừa quá tay, vừa làm hỏng mất phần quan trọng nhất của câu chuyện.
Thứ đang bị gây áp lực mạnh không phải là toàn bộ vai trò software engineer.
Thứ bị gây áp lực là cách định nghĩa quá hẹp về software engineer.
Nếu một engineer chủ yếu tạo giá trị bằng việc nhận task, viết code theo mô tả, fix những lỗi tương đối cục bộ, rồi bàn giao phần còn lại cho người khác, thì đúng là AI đang tiến rất nhanh vào đúng khu vực đó.
Nhưng nếu nhìn vai trò này đúng nghĩa hơn, chuyện không đơn giản như vậy.
Có một thời, “dev giỏi” thường dễ được hiểu là người:
Những năng lực đó vẫn có giá trị. Nhưng trong bối cảnh hiện tại, chỉ như vậy thì chưa đủ tạo ra khác biệt bền vững nữa.
Lý do khá rõ: phần “sản xuất code” đang dần bị nén lại.
AI có thể draft trước một lượng code rất lớn. Có đoạn dùng được ngay, có đoạn phải sửa sâu, có đoạn chỉ nên tham khảo. Nhưng dù chất lượng thế nào, một điều không thể phủ nhận là nó đang làm giảm giá trị của việc chỉ đơn thuần “ngồi gõ code” như một lợi thế cạnh tranh riêng.
Nói cách khác, khi code ngày càng rẻ hơn, thứ đáng giá hơn sẽ không còn nằm chủ yếu ở tốc độ viết. Nó nằm ở khả năng hiểu vấn đề, thiết kế giải pháp, đánh giá rủi ro, và chịu trách nhiệm cho toàn bộ hệ thống chạy được ngoài đời.
Đây là lúc software engineer cần rộng hơn.
Nói “phải rộng hơn” không có nghĩa là một người phải làm hết tất cả mọi thứ, từ BA đến DevOps đến QA đến Product.
Ý ở đây là: một software engineer có giá trị trong thời AI không thể chỉ đứng yên ở một lát cắt rất hẹp của delivery rồi kỳ vọng phần còn lại luôn do người khác lo. Khi công cụ đã hỗ trợ mạnh ở phần coding, vai trò con người phải dịch lên phần cần nhiều judgment và ownership hơn.
Một engineer mạnh không chỉ hỏi:
Họ còn phải hỏi thêm:
Đó mới là vùng giá trị đang tăng lên.
Ngày trước, nhiều engineer quen với mô hình nhận requirement đã được bóc sẵn:
Cách làm này vẫn tồn tại ở nhiều nơi. Nhưng trong môi trường AI, nếu chỉ chờ mọi thứ được phân tích sẵn rồi mới bắt tay vào viết, engineer rất dễ tự đẩy mình về phần giá trị thấp hơn.
Vì code cho một requirement đã rõ đang là phần AI hỗ trợ ngày càng mạnh.
Thứ giúp engineer khác đi nằm ở khả năng bước lên sớm hơn:
Một engineer hiểu requirement tốt sẽ không chỉ code theo mô tả. Họ giúp làm cho mô tả đó bớt ngây thơ hơn.
Đây là điểm rất quan trọng. Bởi rất nhiều vấn đề kỹ thuật thật ra không bắt đầu từ code tệ. Nó bắt đầu từ một requirement được hiểu nửa vời nhưng vẫn được đẩy vào sprint như thể đã rõ.
AI có thể generate code rất nhanh. Nhưng càng dùng nhiều, càng thấy một giới hạn rõ: nó thường giỏi cục bộ hơn giỏi tổng thể.
Nó có thể viết một component nhanh.
Nhưng không mặc nhiên hiểu component đó nên nằm ở đâu trong hệ thống.
Nó có thể tạo API handler.
Nhưng không tự quyết được boundary nào mới hợp lý cho cả domain.
Nó có thể đề xuất schema.
Nhưng không chịu trách nhiệm khi schema đó khiến migration về sau trở nên đau đớn.
Vì vậy, phần design càng ngày càng quan trọng.
Với software engineer, design không phải lúc nào cũng là vẽ một sơ đồ to đẹp trong workshop. Nhiều khi design chỉ là:
Đây là vùng mà engineer cần mạnh lên rất nhiều. Không phải để làm “architect cho oai”, mà để khi AI viết code nhanh hơn, con người vẫn là người giữ được cấu trúc của hệ thống.
Một thay đổi rất rõ là software engineer giờ không chỉ code nữa. Họ còn phải review đầu ra do AI sinh ra.
Nghe đơn giản, nhưng đây không phải kỹ năng nhỏ.
Review code của AI không chỉ là xem nó có chạy không. Phải nhìn được:
Cái khó là code do AI sinh ra thường trông khá “thuyết phục”. Nó có thể sạch sẽ, đầy đủ, thậm chí comment tử tế. Nhưng nhìn thuyết phục không đồng nghĩa với phù hợp.
Cho nên, engineer thời AI phải giỏi hơn ở phần phản biện. Không chỉ phản biện người khác, mà phản biện cả một cỗ máy có khả năng viết rất trơn tru.
Đây là chỗ nhiều engineer cần thay đổi mindset.
Khi AI giúp tạo code nhanh hơn, vòng lặp từ “ý tưởng” đến “có thứ chạy được” trở nên ngắn hơn. Điều đó tốt. Nhưng nó cũng khiến rủi ro được đẩy nhanh hơn nếu chất lượng vẫn bị coi là chuyện của khâu sau.
Một software engineer có value không thể chỉ dừng ở:
Họ cần hiểu đủ để:
Điều này không có nghĩa engineer phải thay tester. Nhưng nó có nghĩa là engineer phải xem chất lượng là một phần của công việc tạo ra phần mềm, không phải một cửa kiểm ở cuối dây chuyền.
Một software engineer mạnh trong thời AI không thể quá xa lạ với chuyện deploy.
Ngày trước, ở một số môi trường, dev có thể khá tách biệt:
Nhưng khi delivery ngày càng nhanh hơn, cách chia cắt quá cứng như vậy làm giảm rất nhiều khả năng học và khả năng chịu trách nhiệm.
Engineer không nhất thiết phải trở thành DevOps chuyên sâu. Nhưng ít nhất cần đủ hiểu:
Vì cuối cùng, khách hàng không quan tâm lắm code anh đẹp cỡ nào nếu hệ thống không chạy ổn khi lên thật.
Có lẽ đây là thay đổi mindset quan trọng nhất.
Nếu định nghĩa mình là người viết code, anh sẽ rất dễ nhìn AI như đối thủ:
Đó là một cuộc so sánh không mấy vui vẻ.
Nhưng nếu định nghĩa mình là người tạo ra phần mềm có thể vận hành được ngoài đời, câu chuyện sẽ khác.
Khi đó, code chỉ là một phần của value.
Value thật nằm ở việc:
AI có thể giúp ở nhiều chỗ trong chuỗi này. Nhưng nó chưa tự gánh được chuỗi đó theo nghĩa mà một engineer có ownership phải gánh.
Điều đáng lo hơn là vẫn tiếp tục làm software engineering như thể phần duy nhất có giá trị là viết code.
Vẫn nhận task rồi code cho xong.
Vẫn ít hỏi lại requirement.
Vẫn ngại động đến design.
Vẫn xem test là việc của QA.
Vẫn xem deploy là việc của người khác.
Vẫn nghĩ review chỉ là nhìn xem code có compile không.
Nếu giữ mindset đó, AI càng mạnh thì engineer càng dễ thấy mình bị ép vào vùng giá trị hẹp hơn.
Ngược lại, nếu coi AI là một công cụ tăng tốc phần thực thi, thì software engineer có cơ hội dịch lên phần giá trị cao hơn:
Nói cách khác, AI không nhất thiết làm engineer yếu đi. Nó chỉ buộc engineer phải trở thành đúng nghĩa hơn.
Software engineer thời AI không cần thắng AI ở tốc độ gõ code.
Cuộc đua đó vừa mệt, vừa không cần thiết.
Thứ đáng để mạnh hơn nằm ở chỗ khác:
Khi code đã dần trở thành thứ có thể được tăng tốc mạnh bởi AI, value của software engineer sẽ không còn nằm chủ yếu ở việc “viết nhiều hơn”. Nó nằm ở việc rộng hơn, hiểu hơn, và chịu trách nhiệm hơn.
Cuối cùng, có lẽ câu hỏi không nên là:
“AI có thay software engineer không?”
Mà nên là:
“Software engineer nào sẽ còn tạo ra giá trị rõ rệt khi code không còn là lợi thế duy nhất?”
Người đó có lẽ sẽ không phải là người gõ nhanh nhất.
Mà là người biến một ý tưởng còn mơ hồ thành một hệ thống chạy được, kiểm soát được, và có thể sống ngoài production.
AI-first software company — kiến tạo giải pháp thông minh đặt AI làm cốt lõi.
MST: 0108704322 — Hà Nội