- Phát triển theo đặc tả (Spec-Driven Development): một cách tiếp cận nhằm nâng đặc tả (Spec) từ vai trò công cụ hỗ trợ trong phát triển truyền thống thành đặc tả có thể thực thi, để trực tiếp tạo ra phần triển khai đang hoạt động từ đặc tả
- Chuyển đổi thói quen lấy code làm trung tâm sang nhấn mạnh phát triển lấy ý định làm trung tâm, trong đó định nghĩa cái gì và tại sao trước, rồi mới cụ thể hóa như thế nào
- Ý tưởng cốt lõi là tạo ra các đầu ra nhất quán thông qua đặc tả, đồng thời tự động hóa công việc lặp lại để giúp lập trình viên tập trung vào vấn đề của sản phẩm
- Spec Kit là bộ công cụ giúp chuyển đặc tả thành đầu ra có thể thực thi để tự động hóa việc triển khai theo cách này
- Sau khi cài đặt, dùng
/specify để mô tả cái gì/tại sao, /plan để khai báo stack/kiến trúc, và /tasks để tạo đơn vị công việc
- Mục tiêu là giúp tổ chức thoát khỏi việc viết mã dùng chung không tạo khác biệt để tập trung vào kịch bản sản phẩm, như một framework thử nghiệm nhằm nâng cả chất lượng lẫn tốc độ thông qua phương pháp phát triển theo đặc tả
Triết lý cốt lõi: Core philosophy
- Tư duy đặc tả trước tiên với phát triển lấy ý định làm trung tâm, đặt cái gì lên trước và cụ thể hóa như thế nào sau
- Viết các đặc tả phong phú có guardrail và nguyên tắc tổ chức, đồng thời đi qua quá trình tinh chỉnh nhiều giai đoạn thay vì tạo code một lần là xong
- Hướng đến cách tận dụng khả năng diễn giải của mô hình AI tiên tiến để chủ động chuyển đặc tả thành kết quả có thể thực thi
Quy trình phát triển theo đặc tả với Spec Kit
- Spec Kit đặt đặc tả vào trung tâm của quy trình kỹ thuật để dẫn dắt triển khai, checklist và phân rã công việc, còn lập trình viên chủ yếu đóng vai trò chỉ đạo
- Tác tử lập trình đảm nhiệm phần lớn công việc viết
- Quy trình gồm 4 giai đoạn, mỗi giai đoạn có checkpoint rõ ràng và không chuyển sang bước tiếp theo cho đến khi công việc hiện tại được xác minh đầy đủ
- Giai đoạn Specify: khi cung cấp mô tả cấp cao, tác tử lập trình sẽ tạo đặc tả chi tiết, tập trung vào hành trình người dùng, trải nghiệm và chỉ số thành công thay vì stack công nghệ
- Lập bản đồ người dùng là ai, đang giải quyết vấn đề gì, cách tương tác và các kết quả quan trọng
- Đây là một artifact sống tiếp tục phát triển theo hiểu biết ngày càng nhiều về người dùng
- Giai đoạn Plan: khi cung cấp stack, kiến trúc và các ràng buộc mong muốn, tác tử lập trình sẽ tạo kế hoạch kỹ thuật toàn diện
- Bao gồm công nghệ tiêu chuẩn của công ty, tích hợp hệ thống legacy, tuân thủ quy định, mục tiêu hiệu năng, v.v.
- Có thể yêu cầu nhiều biến thể kế hoạch để so sánh; nếu cung cấp tài liệu nội bộ thì các pattern kiến trúc có thể được tích hợp trực tiếp
- Giai đoạn Tasks: dựa trên đặc tả và kế hoạch, tác tử lập trình phân rã công việc thành các phần nhỏ có thể review
- Mỗi công việc có thể được triển khai và kiểm thử độc lập, được thiết kế để AI có thể xác minh và theo dõi
- Ví dụ, thay vì "xây dựng xác thực" thì sẽ cụ thể như "tạo endpoint đăng ký người dùng có kiểm tra định dạng email"
- Giai đoạn Implement: tác tử lập trình xử lý từng công việc một hoặc song song, còn lập trình viên review các thay đổi tập trung
- Đặc tả cho biết cần xây gì, kế hoạch cho biết xây như thế nào, và tác vụ cho biết cần làm những gì
- Ở mỗi giai đoạn, lập trình viên thực hiện vai trò xác minh: suy ngẫm và tinh chỉnh, kiểm tra xem đặc tả có nắm đúng ý định không, kế hoạch có phản ánh đúng ràng buộc thực tế không, và có thiếu sót hay edge case nào không
Cách dùng Spec Kit trong workflow agentic
- Spec Kit hoạt động với các tác tử lập trình như GitHub Copilot, Claude Code, Gemini CLI, sử dụng một chuỗi lệnh đơn giản để chỉ đạo tác tử và tạo artifact
- Cách này biến prompt mơ hồ thành ý định rõ ràng để thực thi đáng tin cậy
- Sau khi khởi tạo dự án, cung cấp prompt cấp cao bằng lệnh /specify thì tác tử lập trình sẽ tạo đặc tả hoàn chỉnh, tập trung vào "cái gì" và "tại sao" của dự án
- Với lệnh /plan, khi cung cấp định hướng kỹ thuật cấp cao, tác tử lập trình sẽ tạo kế hoạch chi tiết tôn trọng kiến trúc và ràng buộc
- Với lệnh /tasks, đặc tả và kế hoạch được phân rã thành danh sách công việc có thể thực thi, để tác tử lập trình dựa vào đó triển khai yêu cầu của dự án
Các giai đoạn phát triển: Development phases
- 0-to-1 (greenfield): hỗ trợ luồng tạo đặc tả → lập kế hoạch → tạo ứng dụng sẵn sàng cho production dựa trên yêu cầu cấp cao
- Khám phá sáng tạo: nhấn mạnh quy trình thử nghiệm nhiều stack/kiến trúc và pattern UX bằng triển khai song song
- Cải tiến dần (brownfield): phát triển tiến hóa lặp lại việc thêm tính năng, hiện đại hóa legacy, và điều chỉnh quy trình
3 kịch bản mà cách tiếp cận này hoạt động tốt
- Greenfield (zero-to-one): khi bắt đầu một dự án mới, thay vì code ngay thì tạo đặc tả và kế hoạch trước để đảm bảo AI xây đúng ý định, đồng thời cho ra kết quả tùy biến thay vì giải pháp chung chung dựa trên pattern phổ biến
- Công việc tính năng trên hệ thống hiện có (N-to-N+1): khi thêm tính năng vào codebase phức tạp, đặc tả giúp làm rõ cách tính năng mới tương tác với hệ thống hiện tại, còn kế hoạch mã hóa các ràng buộc kiến trúc để tạo ra code có cảm giác như phần gốc của hệ thống
- Điều này giúp phát triển liên tục nhanh hơn và an toàn hơn, dù có thể cần các kỹ thuật context engineering nâng cao
- Hiện đại hóa legacy: khi xây lại hệ thống legacy mà ý định ban đầu đã bị thất lạc, quy trình Spec Kit giúp ghi lại logic nghiệp vụ cốt lõi vào đặc tả hiện đại và lập kế hoạch cho kiến trúc mới để AI tái xây dựng mà không mang theo technical debt
Prerequisites
- Cần Linux/macOS hoặc WSL2 trên Windows
- Chọn một tác tử AI trong Claude Code, GitHub Copilot, Gemini CLI, Cursor
Chưa có bình luận nào.