Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 5 — Windsurf & Devin: từ IDE agentic đến kỹ sư AI tự chủ

Đã đọc 0/13 mục · còn khoảng 5 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Hai công cụ này ở hai đầu khác nhau: Windsurf giữ bạn trong luồng IDE với agent mượt, còn Devin đưa bạn ra ngoài để nhận kết quả như từ một đồng nghiệp.

Windsurf — IDE AI-first với luồng Cascade

Điểm mạnh: trải nghiệm IDE mượt tương tự Cursor, với agent "Cascade" tự theo dõi thay đổi ngữ cảnh và đề xuất bước tiếp theo, giảm việc bạn phải liên tục cung cấp ngữ cảnh thủ công. Hợp với người muốn IDE AI-first nhưng ưu tiên sự liền mạch.

Khi nào dùng: bạn muốn một IDE thay Cursor để so sánh, thích agent chủ động theo dõi thay đổi, hoặc làm task vừa trong luồng viết code có nhiều qua lại người-máy.

Các bước bắt đầu với Windsurf

  • Cài Windsurf, import cấu hình từ VS Code.
  • Mở dự án, để nó index.
  • Mở panel Cascade, mô tả nhiệm vụ.
  • Theo dõi các bước agent đề xuất; xem diff và chấp nhận/từ chối.
  • Tiếp tục hội thoại — Cascade giữ mạch ngữ cảnh qua các bước.

Devin — kỹ sư AI tự chủ trong sandbox

Điểm mạnh: chạy trong môi trường riêng có trình duyệt, terminal và editor; nhận một task và làm gần như độc lập từ đầu đến khi ra PR. Hợp với task có thể chạy nền song song để bạn làm việc khác.

Khi nào dùng: task được định nghĩa rõ, không quá phụ thuộc kiến thức ngầm của team, và bạn muốn giao rồi rời đi (ví dụ: nâng cấp phiên bản thư viện, viết bộ test cho module cũ, xử lý issue có mô tả rõ).

Các bước giao việc cho Devin

  • Kết nối repo và cấp quyền cần thiết.
  • Viết task như một issue tốt: bối cảnh, yêu cầu, tiêu chí done, ràng buộc.
  • Để Devin lập kế hoạch và thực thi trong sandbox; theo dõi log khi cần.
  • Nhận PR, review kỹ như review PR của một dev junior.
Task cho Devin:
- Mục tiêu: nâng React 17 -> 18 cho package `web`.
- Ràng buộc: không đổi API public; giữ test cũ pass.
- Done khi: build thành công, test pass, mở PR kèm ghi chú breaking changes.

Khung tư duy: Trục Tự chủ vs Kiến thức ngầm

  • Devin làm tốt task tự chứa (self-contained), ít phụ thuộc "luật bất thành văn" của team.
  • Task càng nhiều kiến thức ngầm (quy ước nội bộ, ngữ cảnh nghiệp vụ) -> càng nên dùng công cụ có bạn trong vòng lặp (Windsurf/Cursor/Claude Code) thay vì giao trọn cho Devin.

Checklist quyết định Devin hay không

  • [ ] Task có thể mô tả trọn vẹn trong một issue không?
  • [ ] Có tiêu chí done kiểm chứng được (build/test) không?
  • [ ] Task có thể chạy song song để tôi làm việc khác không?
  • [ ] Nếu sai, chi phí review/rollback có chấp nhận được không?

Sai lầm thường gặp

  • Giao task mơ hồ cho Devin: thiếu tiêu chí done -> PR lệch hướng, tốn công review.
  • Không review PR của agent tự chủ: tự chủ không có nghĩa là không cần kiểm.
  • Chọn Windsurf/Cursor theo cảm tính: hãy thử cùng một task trên cả hai rồi quyết theo trải nghiệm thật.
  • Dùng Devin cho việc cần trao đổi liên tục: những task nhiều qua lại nên ở trong IDE, không nên giao trọn gói.
<!--les-append-->

Hai đầu của một trục: bạn ở trong luồng hay ngoài luồng

Windsurf và Devin đại diện hai triết lý, và lựa chọn giữa chúng không phải về tính năng mà về bạn muốn ở đâu khi công việc diễn ra:

Trong luồng (Windsurf, Cursor)Ngoài luồng (Devin, agent chạy nền)
Bạn làm gì trong lúc đóXem, chỉnh, lái từng bướcLàm việc khác
Bạn thấy gìTừng thay đổi, ngay lúc nó xảy raKết quả cuối, dạng PR
Khi nó đi chệchBạn ngắt sớmBạn phát hiện khi đã muộn
Phù hợp việcCần phán đoán liên tụcRõ ràng, có tiêu chí kiểm được
Rủi ro chínhBạn tốn thời gian ngồi xemBạn nhận code không ai hiểu
Ô dưới cùng bên phải là rủi ro thật của mô hình "ngoài luồng", và nó không phải rủi ro kỹ thuật — nó là rủi ro về hiểu biết. Code chạy được mà không ai trong đội giải thích được lý do thiết kế là code không ai dám sửa sáu tháng sau.

Việc nào giao cho agent chạy nền được

Phép thử ba câu. Phải đạt cả ba:

  • Tiêu chí xong kiểm được bằng máy? (test pass, build sạch, lint sạch)
  • Có khuôn mẫu đã tồn tại trong dự án để bắt chước?
  • Nếu làm sai hoàn toàn, chi phí là bỏ đi và làm lại — chứ không phải sửa hậu quả?
Việc đạt cả ba: thêm ca test còn thiếu, đổi tên xuyên dự án, nâng phiên bản thư viện và sửa chỗ hỏng, chuyển một mẫu code đã có sang chỗ mới.

Việc không đạt: thiết kế cấu trúc dữ liệu mới, quyết định đánh đổi hiệu năng, bất cứ việc chạm vào luồng thanh toán hoặc quyền truy cập.

Đánh giá kết quả từ agent chạy nền

Nhận một PR từ agent thì đọc theo thứ tự khác với PR từ người:

  • Phạm vi trước tiên. File nào bị sửa? Có file nào không liên quan không? Đây là dấu hiệu chệch phạm vi.
  • Test có bị sửa không. Nếu có, đọc phần đó trước mọi phần khác.
  • Có phụ thuộc mới không.
  • Rồi mới đọc logic.
Với PR từ người, bạn tin phạm vi và đọc logic. Với PR từ agent, phạm vi là chỗ hay sai nhất — nên nó đi đầu.

Chi phí: thứ hay bị bỏ qua khi so công cụ

Agent tự chủ tốn nhiều hơn autocomplete một bậc độ lớn, vì nó đọc nhiều và lặp nhiều vòng. Ba cách giữ chi phí hợp lý:

  • Giao việc nhỏ. Một việc lớn mơ hồ tốn nhiều hơn năm việc nhỏ rõ ràng, và cho kết quả kém hơn.
  • Cung cấp ngữ cảnh đúng thay vì để nó tự tìm khắp dự án.
  • Đặt tiêu chí xong rõ, để nó không lặp vô ích.
Ba điều này vừa giảm chi phí vừa tăng chất lượng — chúng không đánh đổi nhau.

Làm ngay

Chọn một việc trong danh sách tồn đọng của bạn và chạy phép thử ba câu. Nếu nó đạt cả ba, đó là ứng viên tốt để thử mô hình "ngoài luồng". Nếu không đạt câu 1, hãy làm cho tiêu chí xong kiểm được trước — việc đó có giá trị dù bạn có dùng agent hay không. <!--/les-append-->

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi