Khi AI Khiến Hiệu Suất Developer Giảm: Những Kịch Bản Thực Tế Nên Tránh
Giới thiệu
(Note: Bài viết mang tính chia sẻ trải nghiệm cá nhân, không phải nghiên cứu khoa học. Rất mong nhận được ý kiến đóng góp của mọi người trong phần bình luận.)
Trong thế giới IT, AI tạo sinh (Generative AI) như GitHub Copilot đã trở thành một “trợ lý ảo” không thể thiếu của nhiều developer. Nó hứa hẹn một tương lai nơi code được viết nhanh hơn, bug được sửa trong nháy mắt, và tài liệu được tạo tự động. Nhưng trong thực tế có một số kịch bản thể hiện điều ngược lại.
Đôi khi, chính công cụ được thiết kế để tăng tốc lại trở thành hòn đá cản đường. Bài viết này chia sẻ một số trải nghiệm cá nhân khi sử dụng AI làm hiệu suất công việc giảm đi đáng kể.
1. Cái Bẫy “AI Biết Tuốt”
Đây là cạm bẫy phổ biến nhất. Khi quá quen với việc “nhờ” AI viết những hàm logic, xử lý dữ liệu hay thậm chí là cả một component, developer dần đánh mất “cơ bắp” tư duy giải quyết vấn đề. Chúng ta ngừng suy nghĩ về các trường hợp biên (edge cases), về cấu trúc dữ liệu tối ưu, và chỉ đơn giản là chấp nhận gợi ý đầu tiên.
- Ví dụ: Khi cần viết một hàm xử lý file CSV và tải dữ liệu lên database. Copilot nhanh chóng tạo ra một kịch bản (script) hoàn hảo cho file CSV mẫu. Tuy nhiên, trong thực tế, file CSV có thể bị lỗi định dạng, thiếu cột, hoặc chứa dữ liệu rỗng.
- Kịch bản gặp phải: copy-paste đoạn code AI sinh ra, triển khai và chỉ phát hiện ra vấn đề khi QA test (đôi khi là release lên PRODUCTION mới phát hiện ra). Lúc này, mới suy nghĩ đến edge cases và xử lý => Giảm hiệu suất do QA sẽ phải thực hiện test lại.
- Giải pháp (tham khảo): Coi code của AI là một bản nháp và luôn suy nghĩ về các edge cases, các vấn đề như khi tự code trước khi prompt. Ví dụ: “Nếu file sai format thì xử lý thế nào? Nếu file quá lớn thì xử lý thế nào để không tốn bộ nhớ?…”
2. Khi AI “Sáng Tạo” Ra Bug Tàng Hình
AI rất giỏi trong việc tạo ra những đoạn code trông cực kỳ hợp lý và “sạch sẽ” theo những pattern nó đã học. Vấn đề là, code này có thể chứa những lỗi logic mà các bài test đơn giản không phát hiện ra.
- Ví dụ: Phần này không có ví dụ cụ thể nào vì case này khá phổ biến @@.
- Kịch bản gặp phải: Vì code trông có vẻ hợp lý và đẹp đẽ nên đôi dev có tâm lý đọc lướt và chấp nhận đoạn code do AI gen => dẫn đến lọt bug.
- Giải pháp(tham khảo):
– Đọc kỹ mọi thứ và đảm bảo hiểu hết những gì AI tạo ra.
– Cung cấp ngữ đầy đủ nhất có thể để AI không tự sáng tạo ra spec.
3. Ảo Giác Năng Suất
Dù thực tế công việc bị chậm hơn nhưng lại có cảm giác nhanh hơn khi có sự trợ giúp của AI.
- Kịch bản thực tế: Ở một dự án cũ và có ngữ cảnh rộng. Khi phát triển một tính năng mới:
- Đôi khi dev sẽ mất nhiều thời gian để nghỉ prompt cho đủ ngữ cảnh.
- Đôi khi AI vì tham khảo quá nhiều thứ ở code base dẫn đến khi gen code bị lan man, thậm trí là sai, code rác, code theo legacy code… và dev lại mất thời gian để chỉnh sửa phần này.
- Đôi khi AI vì ngữ cảnh rộng nên AI bị rơi vào vòng lặp luẩn quẩn, fix lỗi 1 => ra lỗi 2 => fix lỗi 2 => trở về lỗi 1 … phải thay đổi prompt nhiều lần mới giả quyết được vấn đề.
=> Tổng kết lại thì nhìn có vẻ AI làm được rất nhiều thứ và tạo cảm giác làm việc hiệu quả. Nhưng tổng thời gian làm việc có khi lại nhiều hơn nếu so với 1 dev code chay khi dev có kinh nghiệm và nắm chắc context của dự án hơn AI.
- Giải pháp(tham khảo):
- Chia nhỏ task để AI support những phần nhỏ đảm bảo AI có đủ context
- Dừng lại và điều chỉnh prompt/scope nếu AI rơi vào vòng lắp lỗi quá 2 lần (thinking @@)
4. Dùng “Dao Mổ Trâu” Giết “Ruồi”: Lạm Dụng AI Cho Tác Vụ Đơn Giản
Không phải tác vụ nào cũng cần đến AI.
- Ví dụ :
- Tác vụ: Đổi tên một biến được sử dụng ở 10 file khác nhau.
- Cách làm tối ưu (dùng IDE): Nhấn
Shift + F6
, gõ tên mới, nhấnEnter
. Thời gian: 2 giây. - Cách làm lạm dụng AI: Gõ một comment như
// a-la-copilot, rename this variable to 'newUserProfile'
. Chờ AI gợi ý, đọc và xác nhận. Thời gian: 15-30 giây, kèm theo sự gián đoạn dòng suy nghĩ.
- Kịch bản thực tế: Như ví dụ trên thì đôi khi AI thậm chí có thể đổi tên thừa/nhầm sang biến khác nếu dev không đọc kỹ và apply thay đổi của AI
- Giải pháp(tham khảo):
- Đối với task đơn giản thì nên tự thân vận động @@
Lời Kết: Hãy Là Nhạc Trưởng, Đừng Là Cái Máy Chép Nhạc
AI, đặc biệt là Copilot, là một công cụ mang tính cách mạng. Hãy xem nó như một lập trình viên junior cực kỳ nhanh nhẹn, có trí nhớ siêu phàm nhưng thiếu kinh nghiệm thực tế và tư duy tổng thể.
Vai trò của bạn, với tư cách là một developer chuyên nghiệp, là nhạc trưởng chỉ huy dàn nhạc, chứ không phải người thụ động chép lại bản nhạc do AI viết ra. Hãy sử dụng AI để tự động hóa những phần nhàm chán, để có những ý tưởng ban đầu, nhưng luôn giữ lại cho mình quyền kiểm soát cuối cùng, tư duy phản biện và bản năng của một kỹ sư.
Sử dụng AI một cách thông minh sẽ giúp bạn thăng hoa. Ngược lại, phụ thuộc vào nó một cách mù quáng chính là con đường ngắn nhất dẫn đến sự thụt lùi.