AI Coding Tools Không Phải Vấn Đề. Thiếu Trách Nhiệm Mới Là Vấn Đề.
Bạn mở một Pull Request. Code được AI generate. Bạn chưa test. Bạn không hoàn toàn hiểu nó làm gì. Nhưng deadline đang đến, và “AI đã viết rồi, chắc đúng.”
Rồi khi reviewer hỏi: “Tại sao logic này hoạt động như vậy?”
Bạn trả lời: “Ừm… AI suggest thế.”

Đây không phải là vấn đề của AI. Đây là vấn đề của accountability — và nó đang lan rộng như một đại dịch thầm lặng trong ngành.
Tại Sao Nhiều Người Đang Ghét AI Tools?
Trước khi đổ lỗi cho developers, hãy thừa nhận một sự thật: sentiment tiêu cực về AI tools không phải không có lý do.
Những tech leaders đang làm gì?
Họ tweet những thứ như: “Junior developers sẽ biến mất trong 2 năm nữa” hoặc “AI sẽ thay thế 80% engineers”. Những claims sensationalist này tạo ra anxiety không cần thiết, khiến engineers cảm thấy job của họ bị đe dọa.
Những tổ chức đang làm gì?
Họ adopt AI tools vì FOMO (Fear Of Missing Out), không phải vì chiến lược rõ ràng. Management ép teams sử dụng AI mà không có realistic expectations, dẫn đến frustration khi kết quả không như marketing promise.
Kết quả? Một môi trường toxic nơi:
- Engineers cảm thấy áp lực phải “dùng AI” để chứng minh productivity
- AI output được treat như gospel truth thay vì starting point
- Quality bị sacrifice vì speed
- Accountability trở nên mờ nhạt: “AI viết, tôi chỉ submit”
Sai Lầm Nằm Ở Đâu?
Có hai cực đoan trong cách developers approach AI tools:
Cực đoan thứ nhất: “AI-Maximalist”
“Tôi có thể generate 60 PRs mỗi ngày!”
Những người này treat AI như một magic wand. Copy-paste output, submit PR, move on. Không review, không hiểu, không test. Khi code break ở production, họ shrug: “AI làm sai.”
Cực đoan thứ hai: “AI-Rejector”
“AI code là junk. Tôi viết tay mọi thứ.”
Những người này từ chối hoàn toàn, bỏ lỡ productivity gains thực sự mà AI có thể mang lại. Họ tự hào về việc làm chậm hơn, coi đó như dấu hiệu của “real engineering.”
Cả hai đều sai.
Vấn đề không phải là dùng AI hay không dùng AI. Vấn đề là: Ai chịu trách nhiệm cho code cuối cùng?
Câu Trả Lời: AI-Assisted Engineering
Không phải AI-replaced. Không phải AI-free. Mà là AI-assisted.
Điều này nghĩa là:
- Bạn leverage AI để tăng productivity
- Bạn maintain tiêu chuẩn engineering
- Bạn own mọi dòng code bạn submit
- Bạn understand tại sao code hoạt động, không chỉ rằng nó hoạt động
5 Nguyên Tắc Của AI-Assisted Engineering
1. Full Ownership & Accountability
Bạn submit code = Bạn own code.
Không có exception. Không có excuse “AI wrote it.” Khi bạn click “Create Pull Request,” bạn đang nói với team: “Tôi đã review, test, và hiểu code này. Tôi chịu trách nhiệm cho nó.”
Điều này có nghĩa:
- Test mọi thứ trước khi open PR
- Hiểu mọi dòng code — nếu không hiểu, không submit
- Sẵn sàng giải thích logic cho reviewer
- Accept blame khi có bug, không đổ cho AI
Red flag: Nếu reviewer hỏi về code và bạn phải check lại AI conversation để trả lời, bạn đang làm sai.
2. AI Là Thought Partner, Không Phải Replacement

AI tools giống như một junior developer rất nhanh nhưng không có context về codebase của bạn, không hiểu business requirements, và không biết team conventions.
Treat AI như:
- Co-pilot đưa suggestions, không phải autopilot bay thay bạn
- Brainstorming partner cho ideas
- Draft writer để bạn refine
- Rubber duck debugging companion
Không treat AI như:
- Oracle luôn đúng
- Replacement cho domain expertise
- Excuse để skip thinking
Khi prompt AI, hãy dùng framework như C.R.A.F.T.E.D:
- Context: Cung cấp background
- Role: Định nghĩa AI đóng vai gì
- Action: Specify cụ thể cần làm gì
- Format: Output format mong muốn
- Tone: Style của response
- Examples: Show examples nếu cần
- Details: Edge cases và constraints
3. Understanding > Speed

Không có gì sai với việc dùng AI để code nhanh hơn. Sai là khi bạn sacrifice understanding cho speed.
“Copy-paste and pray” workflow:
AI generate → Paste → Submit → Hope it works
Đây không phải engineering. Đây là gambling với production code.
Proper workflow:
AI generate → Read carefully → Understand logic →
Test thoroughly → Refine if needed → Submit with confidence
Tại sao điều này quan trọng?
Khi code break (và nó sẽ break), bạn cần:
- Debug nhanh chóng
- Explain cho team
- Fix một cách có ý thức
Nếu bạn không hiểu code từ đầu, mọi thứ trên đều impossible.
4. Human Oversight Remains Essential

AI không nên có final say trong bất kỳ critical decision nào.
Trong production systems:
- AI có thể suggest fixes, nhưng humans approve deployments
- AI có thể write tests, nhưng humans validate coverage
- AI có thể review code, nhưng humans make merge decisions
Trong design decisions:
- AI có thể propose architectures, nhưng humans choose direction
- AI có thể suggest libraries, nhưng humans evaluate fit
- AI có thể draft APIs, nhưng humans ensure consistency
Rule of thumb: AI accelerates, humans decide.
5. AI Amplifies Existing Practices

Đây là điều ít người nhận ra: AI không tạo ra good engineers hay bad engineers. AI khuếch đại cái đã có.

Nếu bạn có strong fundamentals:
- AI giúp bạn ship faster mà vẫn maintain quality
- AI handles boilerplate, bạn focus on logic
- AI suggests patterns bạn có thể evaluate critically
Nếu bạn có weak fundamentals:
- AI tạo ra nhiều bad code hơn, nhanh hơn
- AI introduces bugs bạn không thể detect
- AI reinforces bad patterns bạn không nhận ra
AI giống như power tools trong construction: Trong tay skilled carpenter, nó tạo ra beautiful furniture nhanh hơn. Trong tay inexperienced person, nó gây injuries nhanh hơn.
Engineer Tốt Nhất Không Phải Người Generate Nhiều Code Nhất

“The best engineers are not the ones who generate the most code. They are the ones who can say with confidence: ‘I understand this. I verified it. I own it.’”
Ba câu này là litmus test cho mọi thứ bạn submit:
“I understand this.”
Bạn có thể explain code cho một junior developer không? Bạn có biết tại sao approach này được chọn over alternatives không? Bạn có aware edge cases không?
“I verified it.”
Bạn đã run tests chưa? Bạn đã test edge cases chưa? Bạn đã verify nó works trong real conditions chưa?
“I own it.”
Bạn có willing accept responsibility nếu có bug không? Bạn có comfortable defending decisions trong code review không? Bạn có ready fix issues khi chúng arise không?
Nếu answer cho bất kỳ câu nào là “no,” code chưa ready để submit.
Bắt Đầu Từ Đâu?
Ngày mai:
- Trước khi submit bất kỳ AI-generated code nào, đọc nó như thể bạn tự viết
- Nếu có phần nào không hiểu, ask AI explain hoặc research thêm
- Test locally trước khi open PR
Tuần này:
- Review PRs của bạn từ tuần trước — có bao nhiêu phần bạn actually understand?
- Identify gaps trong understanding và fill them
Tháng này:
- Develop personal workflow cho AI-assisted coding
- Document standards cho team về AI usage
- Create checklist: Understanding → Testing → Ownership
AI tools sẽ continue evolve và improve. Nhưng một điều sẽ không thay đổi: responsibility vẫn thuộc về người submit code.
Blame AI là easy. Take ownership là hard. Và đó chính xác là điều distinguish great engineers từ the rest.
Bài viết được lấy cảm hứng và tái cấu trúc từ Engineering Leadership Newsletter của Gregor Ojstersek.