- Một staff engineer chia sẻ trải nghiệm thử nghiệm workflow phát triển cùng AI trong 6 tuần bằng Claude Code
- Tư duy coi AI là một ‘junior developer không học được’ là chìa khóa để tích hợp thành công
- Phần lớn lần thử đầu tiên thất bại tới 95%, nhưng qua các vòng lặp, mã dần được gọt giũa thành thứ hữu ích
- Giải quyết vấn đề thiếu ngữ cảnh của AI bằng file ngữ cảnh theo dự án (Claude.md) và tích hợp công cụ dựa trên MCP
- Vai trò của developer chuyển từ viết mã sang giải quyết vấn đề và thiết kế kiến trúc, tạo ra một mô thức năng suất mới trong thời đại tận dụng AI
Bối cảnh và cách tiếp cận
- Tác giả trước đây tự viết toàn bộ mã, nhưng gần đây 80% mã do AI viết, còn bản thân tập trung vào kiến trúc, review và quản lý phát triển đa luồng
- Bài viết này không mang giọng điệu màu hồng kiểu 'AI sẽ dẫn dắt đổi mới', mà chia sẻ sự hỗn loạn và phương pháp thực tế khi tích hợp AI vào workflow phát triển production thực tế
- Cốt lõi để sử dụng thành công là đối xử với AI như một ‘junior developer không học được’
Quá trình thay đổi của mô hình phát triển
- 5 năm đầu duy trì cách phát triển dựa vào sách và tài liệu SDK
- 12 năm sau chuyển sang tận dụng tri thức cộng đồng dựa trên tìm kiếm (google)
- 18 tháng gần đây thử nghiệm lập trình có AI hỗ trợ qua Cursor
- 6 tuần ngay trước đó chứng kiến thay đổi mạnh mẽ với ủy quyền toàn diện cho AI bằng Claude Code
- Việc thích nghi với Claude Code cho cảm nhận năng suất tăng lên chỉ sau vài giờ
Workflow production thực tế dựa trên AI
- Khi làm mã sẽ đưa vào production, AI chủ yếu được dùng để "suy nghĩ"
- Không thể tạo ra mã hoàn hảo chỉ trong một lần. Nhiệm vụ của kỹ sư là tìm ra giải pháp tốt nhất cho vấn đề
- Lần thử đầu tiên (thất bại 95%): AI xây dựng ngữ cảnh hệ thống, developer xác định vấn đề, nhưng mã gần như đều sai
- Lần thử thứ hai (thất bại 50%): Hiểu biết về ngữ cảnh được cải thiện, cách tiếp cận cụ thể hơn, nhưng một nửa vẫn vô dụng
- Lần thử thứ ba (mã dùng được): Qua lặp lại và review, xuất hiện phần mã nền thực sự có thể dùng và tiếp tục cải thiện được
- Quá trình này không phải thất bại, mà là quá trình thử nghiệm có chủ đích và tối ưu hóa lặp đi lặp lại
Vấn đề ngữ cảnh và cách giải quyết
- AI không thể duy trì trí nhớ giữa các session, nên có hạn chế là phải lặp lại cùng một phần giải thích mỗi lần
- Giải pháp là dùng file Claude.md để ghi lại quyết định kiến trúc, pattern, link tài liệu, v.v.
- Thông qua tích hợp MCP, có thể kết nối với Linear, Notion, GitHub, codebase và database để tự động cung cấp ngữ cảnh
- Dùng Linear để cung cấp ngữ cảnh ticket
- Dùng Notion hoặc Canvas để truy cập tài liệu
- Dùng database phi production để kiểm tra cấu trúc dữ liệu
- Tận dụng thông tin nền từ các PR cũ trong GitHub
Vận hành song song nhiều instance Claude và chiến lược cốt lõi
- Vận hành song song nhiều instance Claude, tiếp cận như đang quản lý ‘một đội developer nhỏ mất trí nhớ mỗi ngày’
- Thiết lập chiến lược như không song song hóa trong cùng một vùng vấn đề, ghi mọi công việc vào công cụ quản lý dự án như Linear, và đánh dấu rõ phần mã do con người chỉnh sửa trực tiếp
- Không chỉ viết mã mà còn tích cực dùng AI trong code review: nhanh chóng phát hiện test còn thiếu, bug rõ ràng và điểm cần cải thiện để giảm công việc lặp lại
- Theo chính sách của công ty tác giả (Sanity), dù mã do AI tạo ra thì kỹ sư vẫn chịu trách nhiệm cuối cùng về chất lượng
- Trong môi trường tạo mã mà khó phân biệt AI và con người, sự gắn bó cảm xúc giảm đi, giúp review mã mang tính phản biện và khách quan hơn
Quy trình code review 3 bước
- Viết mã là một phần của công việc, nhưng review mã cũng vậy
- Review vòng 1: Claude kiểm tra ban đầu
- Phát hiện thiếu test coverage và bug hiển nhiên
- Tiết kiệm thời gian review của đồng nghiệp bằng các đề xuất cải thiện
- Review vòng 2: tự tôi kiểm tra
- Xác nhận khả năng bảo trì, kiến trúc, business logic, tính tích hợp
- Dù là mã AI tạo ra, kỹ sư vẫn chịu trách nhiệm cuối cùng
- Review vòng 3: review thông thường của cả team
- Không ai biết phần nào là mã do AI tạo. Áp dụng cùng một tiêu chuẩn chất lượng
- Có thể review khách quan mà không có sự gắn bó cảm xúc
- Việc bớt gắn bó cảm xúc với mã do AI viết giúp review khách quan hơn
Thử nghiệm agent kích hoạt qua Slack và tự động hóa công việc
- Pilot agent tích hợp Slack bằng Cursor: thành công với các chỉnh sửa business logic đơn giản, nhưng thất bại với layout CSS phức tạp
- Ở thời điểm hiện tại vẫn tồn tại các hạn chế như không hỗ trợ private NPM package, commit không có chữ ký, và vòng tránh cơ chế theo dõi chính thức
- Tuy vậy, tác giả kỳ vọng vào kịch bản tương lai nơi agent có thể xử lý các ticket lặp lại đơn giản vào ban đêm
Chi phí và ROI
- Chi phí dùng Claude Code là khoản không nhỏ mà công ty chi cho kỹ sư
- Tuy nhiên, đổi lại là hiệu quả tăng năng suất
- Tốc độ phát hành tính năng tăng 2~3 lần
- Có thể quản lý đồng thời nhiều luồng phát triển
- Không còn phải tự tay viết mã lặp lại hoặc boilerplate
- Ở giai đoạn đầu triển khai AI, cần ngân sách $1000~1500 mỗi tháng cho senior engineer, và kỳ vọng hiệu quả chi phí sẽ được cải thiện khi mức độ thành thạo tăng lên
Vấn đề và giới hạn kéo dài của phát triển có AI hỗ trợ
- Vấn đề học tập: AI không học từ sai lầm nên lặp lại cùng một hiểu lầm; giải pháp là tăng cường tài liệu hóa phong phú và chỉ dẫn rõ ràng
- Vấn đề độ tin cậy: AI có thể tự tin đưa ra mã sai nên bắt buộc phải kiểm chứng, đặc biệt cần thận trọng hơn ở các khu vực quản lý trạng thái phức tạp, hiệu năng và bảo mật
- Vấn đề giới hạn ngữ cảnh: codebase lớn vượt quá cửa sổ ngữ cảnh của AI, nên bắt buộc phải chia vấn đề thành đơn vị nhỏ và cung cấp ngữ cảnh rõ ràng
Sự thay đổi cảm xúc từ mã sang vấn đề
- Buông bỏ sự ám ảnh với mã và chuyển sang tư duy lấy giải quyết vấn đề làm trung tâm
- Xóa nhanh mã sai, review khách quan hơn, và bớt áp lực với việc refactor => thay đổi tích cực
- Nếu có công cụ AI tốt hơn xuất hiện, tác giả sẵn sàng thay thế ngay
- Bản chất quan trọng không phải là ‘bản thân mã’, mà là giá trị của vấn đề cần giải quyết
Lời khuyên về triển khai AI từ góc nhìn kỹ sư
- 1. Cho phép thử nghiệm nhiều giải pháp AI: team cần trực tiếp dùng nhiều công cụ khác nhau để nâng cao năng lực thực chiến
- 2. Áp dụng AI trước cho các công việc lặp lại và đơn giản: có thể kỳ vọng hiệu quả nhanh
- 3. Dành ngân sách cho thử-sai: tháng đầu tiên cần chấp nhận sự hỗn loạn
- 4. Thiết kế lại quy trình review: tăng cường khâu kiểm tra phù hợp với đặc tính của mã do AI tạo
- 5. Tài liệu hóa triệt để: ngữ cảnh tốt sẽ nhân đôi năng suất
- Kỹ sư thích nghi với workflow AI mới sẽ nhận ra trong hộp đồ nghề của mình có thêm một con dao sắc mới
- Những kỹ sư chấp nhận workflow AI sẽ tiến hóa sang vai trò mới: điều phối nhiều AI agent, tập trung vào kiến trúc, review và giải quyết vấn đề phức tạp
Bước tiếp theo của bạn
- Hãy chọn một tính năng nhỏ nhưng được định nghĩa rõ ràng,
- cho AI ba cơ hội để triển khai tính năng đó,
- rồi review kết quả như đang mentoring một developer mới vào nghề
- Chỉ vậy là đủ. Không cần thay đổi lớn hay cải tổ quy trình
- Chỉ cần một tính năng, ba lần thử, và một buổi review thẳng thắn
- Tương lai không phải là AI thay thế developer
- Mà là việc developer làm việc nhanh hơn, xây dựng giải pháp tốt hơn và tận dụng những công cụ tốt nhất
Chưa có bình luận nào.