Sử dụng Coding Agent hiệu quả với tư duy của Product Owner và Scrum Master
Hãy nhớ rằng, Coding Agent là công cụ mạnh mẽ, nhưng hiệu quả của nó phụ thuộc vào người sử dụng.
Khi làn sóng trí tuệ nhân tạo đang cách mạng hóa ngành phát triển phần mềm, các Coding Agent như Cursor đã xuất hiện và hứa hẹn tăng tốc đáng kể quá trình phát triển code. Tuy nhiên, qua thực tế sử dụng, tôi nhận ra rằng tiềm năng thực sự của những công cụ này không chỉ phụ thuộc vào năng lực kỹ thuật thuần túy, mà phụ thuộc nhiều hơn vào phương pháp tiếp cận và quản lý của người sử dụng. Với tư cách là một người có chút kiến thức về Product Owner (PO) và Scrum Master (SM), tôi phát hiện rằng việc áp dụng tư duy và phương pháp của PO và SM vào quá trình làm việc với Coding Agent mang lại hiệu quả đáng ngạc nhiên.
Sự giao thoa giữa Agile và AI
Coding Agent hiện tại chưa thể thay thế hoàn toàn các Senior Developer với nhiều năm kinh nghiệm. Chúng có thể tạo ra code chất lượng cao trong nhiều trường hợp, nhưng vẫn thiếu sự nhạy bén và linh hoạt trong việc giải quyết các tình huống phức tạp hoặc đưa ra những quyết định thiết kế mang tính chiến lược.
Tuy nhiên, khoảng cách này không nằm ở giới hạn của công nghệ, mà nằm ở phương pháp tương tác và làm việc với chúng. Sau một thời gian trải nghiệm với kiến thức PO và SM, tôi đã phát triển một cách tiếp cận có cấu trúc đối với phát triển sản phẩm, tập trung vào việc tạo yêu cầu rõ ràng, và kiểm tra kết quả liên tục. Khi áp dụng những nguyên tắc này vào việc sử dụng Coding Agent, tôi nhận thấy một sự chuyển biến đáng kể trong kết quả công việc.
Thay vì xem Coding Agent như những máy tạo mã đơn giản, tôi tiếp cận chúng như những thành viên trong nhóm phát triển cần được quản lý đúng cách, với hướng dẫn rõ ràng và phản hồi liên tục. Sự thay đổi trong quan điểm này đã cải thiện đáng kể hiệu suất và cho thấy rằng thành công với những công cụ này phụ thuộc ít hơn vào chuyên môn lập trình và nhiều hơn vào kỹ năng quản lý sản phẩm.
Nguyên tắc cốt lõi khi quản lý Coding Agent với tư duy PO/SM
1. Đối xử với Coding Agent như một Development Team
Cái nhìn sâu sắc cơ bản đã biến đổi cách tôi tương tác với Coding Agent là khi tôi bắt đầu xem chúng như một nhóm phát triển. Một PO giỏi "chịu trách nhiệm tối đa hóa giá trị của sản phẩm từ công việc của nhóm Scrum." Tương tự, khi làm việc với Coding Agent, tôi chịu trách nhiệm tối đa hóa giá trị mà nó mang lại bằng cách cung cấp yêu cầu rõ ràng và kỳ vọng thực tế.
SM "chịu trách nhiệm thiết lập Scrum" và "giúp mọi người hiểu về lý thuyết và thực hành Scrum." Với Coding Agents, tôi cũng thiết lập quy trình làm việc có cấu trúc và giúp AI hiểu rõ kỳ vọng và quy trình làm việc. Tôi trở thành người tạo điều kiện để đảm bảo AI luôn năng suất và phù hợp với mục tiêu sản phẩm.
2. Chuẩn bị kỹ lưỡng
Giống như các sprint thành công bắt đầu bằng việc lập kế hoạch kỹ lưỡng, các phiên làm việc hiệu quả với AI cũng bắt đầu bằng việc chuẩn bị toàn diện. Tôi thường sử dụng một công cụ AI khác để giúp tạo tài liệu requirement chi tiết trước khi sử dụng Coding Agent cho việc thực hiện code.
Ví dụ, khi phát triển dự án Deep Research Agent, tôi đã tạo một tài liệu requirement chi tiết phác thảo kiến trúc hệ thống, tương tác giữa các thành phần và các chức năng cụ thể:
# Requirements Document - Deep Research Agent
## 1. Introduction
### 1.1 Purpose
Deep Research Agent is an intelligent system designed to perform in-depth research and create high-quality analytical content.
The system supports a complete process from analyzing research requirements to creating outlines, detailed research, and editing the final article.
### 1.2 Scope
This document describes in detail the functional and non-functional requirements necessary to develop the Deep Research Agent system, including:
- Overall architecture
- Main components of the system
- API endpoints and interaction flows
- Integrated services (LLM, Search, Storage)
- Research process and data processing
- Deployment and Docker requirements
...
Với tài liệu này, tôi yêu cầu Coding Agent tạo một Implementation Plan chi tiết. Cách tiếp cận này tương tự như cách một PO tạo một Product Backlog trước khi bắt đầu phát triển.
3. Quản lý Task có chiến lược
Một nguyên tắc quan trọng của thực hành Scrum hiệu quả là chia nhỏ công việc phức tạp thành các đơn vị có thể quản lý được. Thay vì làm cho Coding Agent bị quá tải với các hướng dẫn khổng lồ, tôi chia việc thực hiện thành các task rời rạc, mỗi task được xử lý trong một cuộc trò chuyện và một branch git riêng biệt.
Cách hiệu quả nhất đối với một SM, là quản lý task theo Sprint:
## Sprint 2: Core Service Architecture ✅
### Completed User Stories
- Developers can easily integrate different LLM services
- Developers can change search services without affecting code
- System can expand with new services in the future
### Implemented Features
- ✅ Design and implement Service Factory Pattern
- ✅ Create basic interfaces: BaseLLMService, BaseSearchService, BaseStorageService
- ✅ Implement specific services:
- OpenAI service and Claude service
- Perplexity search and Google search
- GitHub storage service
- ✅ Complete unit tests for factory and services
### Feedback & Improvements
- Add DummySearchService for testing without API dependencies
- Add API key authentication mechanism for services
Cách tiếp cận này mang lại nhiều lợi ích:
Ngăn chặn tình trạng quá tải ngữ cảnh trong mô hình AI
Tạo ra các thời điểm kiểm tra cho việc xem xét và sửa lỗi
Phản ánh nguyên tắc phát triển lặp đi lặp lại của Scrum
4. Vòng phản hồi liên tục
Có lẽ thực tiễn hữu ích nhất từ kinh nghiệm PO/SM là thiết lập các chu kỳ phản hồi thường xuyên. Trong Scrum, các nhóm thực hiện Sprint Review để kiểm tra increment và thích nghi với Product Backlog. Với Coding Agents, tôi áp dụng mô hình tương tự:
Trước mỗi task, tôi yêu cầu Coding Agent xem lại các Requirement và Implementation Plan.
Sau khi hoàn thành một task, tôi yêu cầu Coding Agent cập nhật Implementation Plan với tiến độ hiện tại.
Tôi thường xuyên xác thực thành quả của Agent so với yêu cầu ban đầu.
Vòng phản hồi này—giống như những gì một SM tạo điều kiện trong các buổi standup meeting hàng ngày—giữ cho quy trình phát triển luôn phù hợp với mục tiêu sản phẩm. Khi Coding Agent bị nhầm lẫn hoặc đi sai hướng, tôi không ngần ngại restart lại task với ngữ cảnh mới.
5. Definition of Done nghiêm ngặt
Trong Scrum, Definition of Done (DoD) là tập hợp các tiêu chí nghiệm thu mà mọi thành quả phải đáp ứng để được coi là hoàn thành. Tôi áp dụng DoD nghiêm ngặt khi làm việc với Coding Agent, yêu cầu mỗi tính năng đều phải vượt qua các Unit Test hoặc API Test.
Quy trình DoD tôi áp dụng bao gồm:
Yêu cầu cụ thể về hành vi - Mã phải thực hiện đúng những gì được yêu cầu
Test tự động - Mọi thành phần phải có test case và pass tất cả
Xử lý ngoại lệ - Code phải xử lý lỗi một cách đầy đủ
Việc áp dụng DoD nghiêm ngặt giúp tôi tránh được cạm bẫy phổ biến khi làm việc với Coding Agent: chấp nhận những giải pháp hoạt động "gần đúng, nửa vời".
Ứng dụng thực tế: Dự án Deep Research Agent
Để minh họa cụ thể, tôi sẽ chia sẻ source code từ dự án Deep Research Agent mà tôi đã phát triển với sự hỗ trợ của Cursor.
Mọi người có thể xem các document mà tôi đã yêu cầu Agent chuẩn bị và update liên tục, để đảm bảo không bao giờ Agent bị “lạc đường”.
Tại sao kỹ năng PO/SM lại quan trọng?
Một trong những khám phá thú vị nhất là kỹ năng Product Owner và Scrum Master mạnh mẽ thường có giá trị hơn cho việc sử dụng Coding Agent hiệu quả so với chuyên môn lập trình thuần tuý (tất nhiên, nếu bạn vừa có kỹ thuật, vửa có kiến thức quản lý, thì quá tuyệt vời).
Điều này là do:
Truyền đạt rõ ràng là tối quan trọng: Giống như PO phải diễn đạt rõ ràng các yêu cầu sản phẩm cho các nhà phát triển, bạn phải truyền đạt rõ ràng ý định của mình cho AI. Đây là một kỹ năng mềm mà nhiều chuyên gia kỹ thuật chưa phát triển.
Tư duy hệ thống là thiết yếu: SM giỏi trong việc nhìn thấy cách các thành phần khác nhau tương tác trong một hệ thống phức tạp. Quan điểm này giúp điều hướng các điểm mạnh và hạn chế của Coding Agent.
Phân tích và chia nhỏ vấn đề: PO thường xuyên chia các tính năng lớn thành các câu chuyện có thể quản lý được. Kỹ năng này cũng giúp chia các task mã hóa phức tạp thành các phần mà AI có thể xử lý.
Tập trung vào kết quả: PO tập trung vào việc cung cấp giá trị thay vì viết mã hoàn hảo. Cách tiếp cận thực tế này hoạt động tốt với các công cụ AI có thể tạo ra các giải pháp hoạt động nhưng không tối ưu.
Các điểm chính cần nhớ
Coding Agent là công cụ, không phải phép màu: Coding Agent có giá trị lớn nhưng cần được quản lý đúng cách. Coi chúng như những thành viên của Development team, cần được hướng dẫn và giám sát.
Chuẩn bị là chìa khóa thành công: Đầu tư thời gian để tạo tài liệu yêu cầu chi tiết trước khi tương tác với Coding Agent sẽ mang lại kết quả tốt hơn đáng kể.
Chia để trị: Chia task phức tạp thành các đơn vị nhỏ, có thể quản lý giúp AI xử lý hiệu quả hơn và giảm thiểu lỗi.
Vòng lặp phản hồi liên tục: Tạo các điểm kiểm tra thường xuyên và cung cấp phản hồi kịp thời để đảm bảo kết quả đáp ứng kỳ vọng.
Thiết lập tiêu chuẩn rõ ràng: Xác định trước "Definition of Done" rõ ràng để đảm bảo kết quả đáp ứng các tiêu chuẩn chất lượng cần thiết.
Tư duy PO/SM hơn là kỹ năng lập trình thuần túy: Khả năng truyền đạt rõ ràng, tư duy hệ thống và phân chia vấn đề là giá trị hơn kiến thức lập trình sâu khi làm việc với Coding Agent.
Đầu tư vào kỹ năng quản lý sản phẩm: Trong thời đại AI, những người có thể kết hợp hiểu biết kỹ thuật với các kỹ năng quản lý sản phẩm mạnh mẽ sẽ có lợi thế cạnh tranh lớn.
Kết luận: Đầu tư vào kỹ năng PO/SM cho tương lai
Coding Agents đang nhanh chóng trở thành một phần không thể thiếu của quy trình phát triển phần mềm hiện đại. Tuy nhiên, để khai thác tối đa tiềm năng của chúng, chúng ta cần không chỉ hiểu về công nghệ mà còn cần có những kỹ năng và tư duy PO/SM để điều khiển chúng hiệu quả.
Những người có kiến thức vững vàng về PO/SM sẽ có lợi thế đáng kể trong việc làm việc với Coding Agent. Các nguyên tắc và thực hành từ Agile và Scrum có thể được áp dụng hiệu quả vào quá trình làm việc với AI, giúp tăng hiệu suất và chất lượng sản phẩm.
Tôi khuyến khích mọi người đầu tư vào việc phát triển kỹ năng PO/SM, không chỉ để trở thành những nhà quản lý sản phẩm và quy trình tốt hơn mà còn để sẵn sàng cho tương lai với Coding Agent. Những người có khả năng kết hợp hiệu quả giữa kiến thức kỹ thuật và kỹ năng quản lý sẽ là những người có nhiều lợi thế trong kỷ nguyên AI này.
Hãy nhớ rằng, Coding Agent là công cụ mạnh mẽ, nhưng hiệu quả của nó phụ thuộc vào người sử dụng. Với tư duy PO/SM, bạn có thể khai thác tối đa tiềm năng của Coding Agent, vượt qua những hạn chế hiện tại của chúng, và đạt được những kết quả đáng ngạc nhiên.