Minh Nguyệt - Cô gái xinh xắn dễ thương và hành trình chinh phục chứng chỉ ISTQB

we are vareal

🤖

Góc Công Nghệ

2023.03.01

⏱ 8 min min read

Software Engineer thời AI: code ít hơn, nhưng phải rộng hơn

V

Nguyễn Văn Minh — CTO / AI Lead

Vareal Vietnam

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.

Khi code không còn là lợi thế duy nhất

Có một thời, “dev giỏi” thường dễ được hiểu là người:

  • code nhanh
  • nhớ syntax tốt
  • quen framework
  • xử lý ticket đều
  • ít cần hỏi
  • fix bug nhanh ở phần mình phụ trách

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.

Rộng hơn không có nghĩa là ôm hết việc

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:

  • “Code thế này đã chạy chưa?”

Họ còn phải hỏi thêm:

  • “Bài toán gốc là gì?”
  • “Requirement này có chỗ nào mơ hồ không?”
  • “Thiết kế này có chịu nổi lúc scale không?”
  • “Đoạn code AI generate này có tạo nợ kỹ thuật không?”
  • “Phần test nào nên tự động hóa?”
  • “Khi deploy thật, rủi ro nằm ở đâu?”
  • “Nếu hệ thống lỗi ngoài production, mình có đủ hiểu để lần ra gốc không?”

Đó mới là vùng giá trị đang tăng lên.

Software Engineer giờ phải đi gần hơn với requirement analysis

Ngày trước, nhiều engineer quen với mô hình nhận requirement đã được bóc sẵn:

  • BA phân tích
  • PM chốt
  • dev nhận task
  • xong thì code

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:

  • đọc requirement và phát hiện ambiguity
  • nhìn ra assumption chưa được nói thành lời
  • bóc tách use case
  • thấy mâu thuẫn giữa business intent và technical constraint
  • hỏi đúng câu hỏi trước khi code bắt đầu

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õ.

Design đang trở thành phần phân biệt rõ hơn giữa engineer và AI

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à:

  • đặt đúng boundary giữa các module
  • chọn abstraction vừa đủ
  • biết cái gì nên tách, cái gì chưa nên
  • chọn trade-off hợp lý giữa tốc độ làm và khả năng maintain
  • giữ cho hệ thống không thành một mớ dính chùm sau vài quý

Đâ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.

Code review giờ không chỉ review người khác, mà còn review cả AI

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:

  • logic có thực sự đúng không
  • edge cases nào bị bỏ sót
  • performance có vấn đề gì không
  • security có lỗ nào lộ ra không
  • code có đang quá phức tạp so với việc cần làm không
  • pattern dùng có hợp với codebase hiện tại không
  • có chèn vào nợ kỹ thuật khó thấy không

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.

Chất lượng không còn là chuyện của riêng QA

Đâ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 ở:

  • code xong
  • push xong
  • “QA test giùm nhé”

Họ cần hiểu đủ để:

  • viết unit test hợp lý
  • nghĩ đến integration points
  • dùng AI hỗ trợ draft test cases hoặc test scaffold khi cần
  • biết khi nào một flow cần automation test
  • không đẩy toàn bộ trách nhiệm chất lượng sang người khác

Đ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.

Deployment và vận hành cũng là một phần của value

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:

  • code xong là xong
  • deploy có người khác lo
  • production issue có team khác xử lý trước

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:

  • CI/CD đang chạy ra sao
  • deploy pipeline có điểm nhạy nào
  • config nào dễ gây lỗi môi trường
  • log nào cần đọc khi có issue
  • rollback hoặc hotfix ảnh hưởng gì
  • hệ thống ngoài production đang “thở” thế nào

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.

Từ “người viết code” sang “người tạo ra phần mềm vận hành được”

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ủ:

  • nó viết nhanh hơn
  • nó không mệt
  • nó không than
  • nó không cần nghỉ trưa

Đó 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:

  • hiểu vấn đề cần giải quyết
  • biến requirement mơ hồ thành giải pháp rõ ràng
  • thiết kế sao cho hệ thống sống được
  • review đầu ra đủ kỹ để tránh nợ kỹ thuật ngu ngốc
  • gắn chất lượng vào quá trình làm, không đẩy về cuối
  • đưa phần mềm lên được môi trường thật
  • xử lý được khi nó không chạy như mong đợi

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 không phải là AI code tốt

Đ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:

  • phân tích tốt hơn
  • thiết kế tốt hơn
  • review tốt hơn
  • đảm bảo chất lượng tốt hơn
  • vận hành thực tế tốt 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.

Kết luậ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:

  • hiểu requirement đủ sâu
  • thiết kế hệ thống đủ chắc
  • review đầu ra đủ tỉnh
  • nghĩ đến chất lượng đủ sớm
  • hiểu deployment đủ thực tế
  • và quan trọng nhất, chịu trách nhiệm cho kết quả end-to-end, chứ không chỉ cho đoạn code mình vừa commit

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.

VAREAL Vietnam

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

Dịch vụ

AI Development

Process Automation

Web & Enterprise

AI Consulting

Liên hệ

contact@vareal.vn

(+84) 982 894 859

Cầu Giấy, Hà Nội

© 2026 Vareal Vietnam Co., Ltd. All rights reserved.

Đại diện pháp lý: Teramoto Masahiro — Chairman