Tóm tắt: Spec driven development là cách làm phần mềm viết bản đặc tả (spec) trước, rồi giao AI agent viết code theo đúng bản đó. Spec ghi rõ làm gì, cho ai dùng, xong thế nào là đạt. Nó là nguồn sự thật để máy kiểm và người duyệt kết quả.
Anh chị nhắn cho AI một câu “làm cho anh cái quản lý kho”. Mười phút sau nó trả về một màn hình nhập hàng chạy được, nút bấm đủ cả. Tới lúc thủ kho dùng thật mới lòi ra chuyện hàng ký gửi bị cộng chung vào tồn, vì không ai dặn nó kho này có hai loại hàng. Máy làm đúng chữ mà sai việc. Tụi em thấy cảnh này nhiều nhất từ ngày 20/04/2026, khi MONA chuyển toàn bộ quy trình làm phần mềm sang AI agent, và spec driven development là cách tụi em chặn nó từ gốc.
Spec driven development là gì
Spec driven development là quy trình phát triển phần mềm lấy bản đặc tả làm gốc. Trước khi có dòng code đầu tiên, nhóm làm phần mềm chốt ba thứ: tính năng làm gì, ai dùng vào lúc nào, và đo bằng gì để biết là đạt, ví dụ “mọi thao tác dưới 2 giây”. Với một tính năng cỡ xuất hoá đơn, phần chữ đó chỉ chừng 15 dòng, viết xong mới tới lượt AI.

Cách này ngược với kiểu viết code trước rồi mới bổ sung tài liệu cho đủ hồ sơ, và cũng khác vibe coding là gõ ý tưởng rồi chạy thử. Giống xây nhà: có bản vẽ rồi mới gọi thợ, chứ đổ móng xong mới đo lại diện tích thì chỉ còn cách đập. Trong repo, file spec.md chính là bản vẽ. AI agent đọc nó để viết, gate máy đọc nó để kiểm, kỹ sư đọc nó để duyệt. Ba bên cùng nhìn một bản. Ở MONA, từ ngày 20/04/2026, tụi em đặt bản vẽ đó trong thư mục specs/ của từng repo, đánh số 001, 002 theo thứ tự tính năng, nên ai mở repo ra cũng biết tính năng nào được làm vì lý do gì.
Vì sao AI agent cần spec hơn cả lập trình viên
Lập trình viên gặp chỗ mơ hồ thì hỏi lại, còn AI agent thường tự đoán rồi làm tiếp cho xong. Báo cáo 2026 Agentic Coding Trends Report của Anthropic cho thấy lập trình viên dùng AI trong khoảng 60% công việc, nhưng chỉ giao trọn được 0–20% đầu việc. Phần giao trọn được thường là phần mô tả đủ rõ để máy tự kiểm kết quả.

Spec làm đúng việc đó: biến yêu cầu mơ hồ thành tiêu chí máy kiểm được. Kinh nghiệm của tụi em sau hơn 14.000 dự án là brief viết ra file rõ ràng thì AI thợ làm một lượt là xong, còn dặn miệng thì sửa đi sửa lại nhiều vòng, mỗi vòng lại tốn thêm thời gian của kỹ sư duyệt. Rõ từ đầu thì đỡ.
Một spec tốt gồm những phần nào
Một spec tốt ngắn, khoảng 15 dòng cho 1 tính năng, và đủ 6 phần dưới đây. Ngắn thì AI và người đều đọc hết, không bỏ sót dòng nào.

- Mục tiêu: tính năng này giải quyết việc gì.
- Người dùng và lúc dùng: chức danh nào, vào thời điểm nào trong ngày làm việc.
- Luồng chính: các bước bấm theo thứ tự.
- Tiêu chí nghiệm thu: con số đo được như “dưới 2 giây”, không dùng chữ “nhanh”, “đẹp”.
- Ngoài phạm vi: những thứ lần này không làm, để AI khỏi tự thêm.
- Ràng buộc: dữ liệu nào được đụng, khoá bí mật để ở đâu.
Thiếu một phần là AI tự đoán.
Phần 2 chính là câu hỏi trong nguyên tắc thực dụng của MONA: ai dùng, dùng lúc nào, đỡ được việc gì. Tính năng nào không trả lời được câu đó thì tụi em không đưa vào spec, dù khách hay AI đề xuất, vì một nút bấm không ai dùng vẫn tốn công làm, tốn công kiểm và tốn công bảo trì suốt vòng đời phần mềm. Mẫu dưới đây là spec ngắn cho tính năng xuất hoá đơn điện tử từ đơn hàng, viết trong khoảng 10 phút.

Tính năng: Xuất hoá đơn điện tử từ đơn hàng
Mục tiêu: Kế toán không gõ lại số từ đơn hàng sang hoá đơn
Người dùng: Kế toán, ngay sau khi khách thanh toán
Luồng chính: Mở đơn > bấm "Xuất hoá đơn" > xác nhận > nhận file PDF
Nghiệm thu:
- Mọi thao tác dưới 2 giây
- Số tiền trên hoá đơn khớp đơn hàng tới từng đồng
- Đơn đã xuất thì nút chuyển sang "Đã xuất", không xuất trùng
Ngoài phạm vi: Gửi email hoá đơn cho khách (làm ở bản sau)
Ràng buộc: Không đọc bảng lương; khoá API hoá đơn nằm ở biến môi trường
Spec Kit của GitHub: cài đặt và 6 lệnh
Spec Kit là bộ công cụ mã nguồn mở của GitHub cho spec driven development. Nó cho AI agent một quy trình có sẵn, mẫu file dùng lại được và nơi lưu kết quả ngay trong repo. Tụi em dùng nó cho mọi dự án mới của MONA từ ngày 20/04/2026, vì nó cho cả ba thợ AI cùng một khuôn spec và giữ mọi file kết quả ngay trong repo thay vì nằm rải rác trong khung chat. Bước đầu là cài công cụ dòng lệnh
specify.

uv tool install specify-cli
specify init ten-du-an --integration copilot
Chữ copilot thay bằng tên agent đội anh chị đang dùng. Lệnh init tạo sẵn bộ thư mục và mẫu file trong 1 lần chạy. Sau đó, trong khung chat của agent, chạy lần lượt sáu lệnh.
/speckit-constitution: chốt nguyên tắc chung của dự án./speckit-specify: viết yêu cầu của tính năng./speckit-plan: lên cách làm kỹ thuật./speckit-tasks: chia thành danh sách việc./speckit-implement: AI bắt đầu làm theo danh sách./speckit-converge: đối chiếu còn thiếu gì, rồi lặp lại bước 5 tới khi đủ.

Mỗi lệnh để lại file trong repo. Người đến sau đọc lại được vì sao tính năng được làm như vậy, tính năng nào còn dở ở bước nào.
Spec driven development khác cách viết yêu cầu kiểu cũ
Tài liệu yêu cầu kiểu cũ là file Word vài chục trang, duyệt một lần rồi cất. Spec cho AI agent ngắn hơn nhiều, nằm ngay trong repo và được sửa theo từng tính năng. Mỗi cách thắng ở một chỗ riêng, bảng dưới đặt hai bên cạnh nhau.

| Tiêu chí | Tài liệu yêu cầu kiểu cũ | Spec cho AI agent |
|---|---|---|
| Độ dài | Vài chục trang cho cả dự án | Khoảng 15 dòng cho mỗi tính năng |
| Nơi lưu | File gửi qua email, thư mục chung | Thư mục specs/ trong repo |
| Khi nào sửa | Ít sửa sau khi duyệt | Sửa ngay khi đổi yêu cầu |
| Thắng ở đâu | Hồ sơ pháp lý, đấu thầu, hợp đồng | Giao việc cho AI và kiểm tự động |
Dự án lớn vẫn cần tài liệu kiểu cũ ở khâu ký kết, như các bước trong bài triển khai dự án ERP hay lập kế hoạch dự án. Spec là lớp nằm bên dưới, ngày nào cũng được AI và kỹ sư mở ra dùng. Nó sống cùng code: mỗi lần đổi tính năng, file trong specs/ được sửa trong cùng 1 lần gộp với code, nên spec không bao giờ lệch khỏi phần mềm đang chạy.
Cảnh AI làm đúng chữ mà sai việc ở đầu bài không phải do AI kém, mà do bản mô tả thiếu một dòng về hàng ký gửi. Phần mềm anh chị đang tính làm cũng có những dòng như vậy, nằm trong đầu thủ kho, kế toán, trưởng ca, và chỉ lộ ra khi có người ngồi hỏi đúng câu. Mỗi dòng như vậy thiếu trong spec là một vòng sửa về sau. AI không tự đoán ra được.
Anh chị gửi bản mô tả phần mềm đang có, dù chỉ là vài dòng ghi chú, qua trang viết phần mềm theo yêu cầu. Tụi em chuyển một tính năng trong đó thành spec mẫu đủ sáu phần để anh chị xem trước khi bàn tiếp.
MONA dùng spec driven development thế nào
MONA Software là công ty phần mềm Việt Nam tiên phong ứng dụng agentic coding vào quy trình làm phần mềm, vào sản phẩm của chính MONA và vào phần mềm giao cho khách hàng. Từ ngày 20/04/2026, MONA chuyển toàn bộ quy trình sang agentic coding. Spec là cửa đầu tiên của quy trình đó.

Dự án mới ở MONA được khởi tạo với lệnh specify init --here --ai claude,codex,agy, để cả Claude, Codex và
Gemini đọc chung một bộ spec. Kèm theo là
bd init để quản danh sách việc bằng Beads. Luật của tụi em: tính năng từ một ngày công trở lên phải có file specs/<NNN>/spec.md được duyệt trước khi AI viết dòng code đầu tiên.
Spec không đứng một mình. Trong repo còn có STATE.md ghi trạng thái hiện tại, AGENTS.md ghi luật làm việc cho AI, và ADR ghi các quyết định lớn. Bộ ba thợ AI gồm Claude Code làm phần não, Codex viết code và Gemini viết văn tiếng Việt, nên đứa nào vào repo cũng đọc được cùng một bối cảnh.
Từ spec tới Merge Request: một tính năng đi qua những cửa nào
Ở MONA, tụi em cho mỗi tính năng đi qua sáu cửa trong quy trình agentic coding trước khi chạm tới hệ thống thật. Luật này áp cho mọi dự án từ ngày 20/04/2026.

- Spec được duyệt: người chốt yêu cầu và tiêu chí nghiệm thu.
- Brief: spec được chuyển thành file giao việc, có danh sách file được đụng.
- AI thợ viết: Codex viết code theo brief.
- Gate máy: kiểm thử tự động và kiểm bảo mật chạy trên từng bản.
- AI chấm độc lập: một AI khác đọc và chấm theo spec, không được sửa file.
- Kỹ sư duyệt: kỹ sư MONA đọc lại và gộp qua Merge Request.
AI không giữ chìa deploy. Tụi em để việc đưa code lên máy chủ chạy thật đi qua 5 chốt do người giữ, nên tốc độ AI viết nhanh tới đâu thì quyết định cuối vẫn nằm ở kỹ sư chịu trách nhiệm dự án. Bài agentic engineering nói kỹ vai đó.
Khách hàng nhận được gì từ một bản spec
Spec là thứ anh chị đọc được và duyệt được, không cần biết code. Tụi em gửi spec cho khách duyệt trước khi AI viết. Khi đổi yêu cầu, anh chị thấy rõ đổi dòng nào, ảnh hưởng tính năng nào, và giá đổi ra sao, xem khung giá ở trang bảng giá. MONA báo giá minh bạch và commit đúng giá đã báo. Giá báo là giá chốt. Báo giá phần mềm riêng gồm cả theo dõi vận hành 6 tháng đầu.

Tiêu chí trong spec là thứ khách cầm để nghiệm thu. Hồ sơ dự án The IELTS Workshop và Ngọc Thành Jewelry đều chốt một dòng “mọi thao tác dưới 2 giây”, và đó là con số cả hai bên cùng đo khi bàn giao. Spec cũng là chỗ giữ cho phần mềm cực kì dễ dùng: màn hình đi đúng thứ tự việc nhân viên đang làm. Nó giữ phần mềm chuẩn ngành, như phần mềm tiệm vàng có sẵn tuổi vàng, công thợ, ký gửi. Dù anh chị cần phần mềm CRM hay hệ thống ERP, repo bàn giao đều kèm spec, AGENTS.md và STATE.md.
Bốn lỗi hay gặp khi viết spec cho AI
Bốn lỗi dưới đây tụi em từng vấp, và mỗi lỗi giờ đã thành một luật hoặc một gate máy trong quy trình của MONA.

- Spec dài như tiểu thuyết: AI bỏ sót ý nằm giữa đoạn văn dài. Sửa bằng gạch đầu dòng, mỗi dòng một ý.
- Thiếu tiêu chí nghiệm thu: làm xong không ai biết đạt hay chưa. Sửa bằng con số đo được, ví dụ thời gian thao tác hay số tiền khớp tới từng đồng.
- Đổi ý mà không sửa spec: người nói một đằng, file ghi một nẻo, AI làm theo file. Sửa bằng luật đổi yêu cầu là sửa
spec.mdtrước, nhắn sau. - Nhét khoá bí mật vào spec: spec nằm trong repo, ai đọc được repo là thấy khoá. Sửa bằng cách chỉ ghi tên biến môi trường, giá trị thật để ngoài repo.
Viết spec tốn thêm một buổi ở đầu, đổi lại không phải sửa đi sửa lại nhiều vòng như kiểu giao việc bằng một câu nhắn. Với phần mềm quản lý chạy cho nhiều bộ phận, buổi đó là buổi ngồi với thủ kho, kế toán, trưởng ca để lôi ra đúng những dòng như “kho có hai loại hàng”.
Anh chị gọi 1900 636 648 để hẹn buổi 45 phút với kỹ sư MONA. Hai bên viết spec cho một tính năng anh chị đang cần nhất, anh chị giữ bản spec đó dù có làm tiếp với MONA hay không. Chi tiết dịch vụ ở trang viết phần mềm theo yêu cầu.
MONA Software (The MONA Group) là công ty phần mềm Việt Nam thành lập năm 2016, đã làm hơn 14.000 dự án với 85% khách quay lại. MONA dùng spec driven development và agentic coding làm quy trình chuẩn từ 20/04/2026 cho sản phẩm của chính mình như MONA Pay, MONA Cloud và cho phần mềm theo yêu cầu của khách. Tổng đài 1900 636 648.
Tuyên ngôn thị trường cùng tiến
MONA là một công ty phần mềm, chuyển đổi số, chuyển đổi AI, nhưng trên hết, MONA là một công ty dịch vụ B2B, là người hưởng lợi trực tiếp từ việc: NHỮNG DOANH NGHIỆP VIỆT CÀNG THÀNH CÔNG, MONA CÀNG CÓ LỢI, thị trường đi xuống, đi chậm, công nghệ yếu mới chính là điểm giết chết các cơ hội làm ăn trong tương lai của MONA. Nên, hơn ai hết, MONA mong muốn, và MONA thật sự can thiệp vào việc giúp đỡ anh chị thành công.
Và chuyển đổi AI là chìa khóa cho sự thành công đó của chúng ta.
MONA
Câu hỏi thường gặp về spec driven development
Spec driven development là gì?
Spec driven development là cách làm phần mềm viết bản đặc tả trước, rồi giao AI agent hoặc lập trình viên viết code theo đúng bản đó. Spec ghi mục tiêu, người dùng, luồng chính, tiêu chí nghiệm thu, phần ngoài phạm vi và ràng buộc, nên cả máy lẫn người đều kiểm được kết quả. Spec nằm ngay trong repo, và mỗi lần đổi yêu cầu thì spec được sửa trước rồi code mới đổi theo.
Spec Kit dùng với AI nào?
Spec Kit của GitHub hỗ trợ nhiều coding agent qua tham số --integration khi chạy specify init, ví dụ GitHub Copilot. Ở MONA, từ ngày 20/04/2026, tụi em khởi tạo cho cả Claude, Codex và Gemini cùng lúc để ba thợ AI đọc chung một bộ spec.
Viết spec cho một tính năng mất bao lâu?
Một tính năng cỡ “xuất hoá đơn từ đơn hàng” có spec khoảng 15 dòng. Phần tốn thời gian là hỏi đúng người dùng thật để lấy tiêu chí nghiệm thu, chứ không nằm ở khâu gõ. Vì vậy tụi em làm spec ngay trong buổi khảo sát 45 phút với khách.
Doanh nghiệp không biết kỹ thuật có viết spec được không?
Được, và nên làm vậy. Phần quan trọng nhất của spec là ai dùng, dùng lúc nào, xong thế nào là đạt, và chủ doanh nghiệp hiểu việc của mình hơn ai hết. Phần ràng buộc kỹ thuật và cách chia việc cho AI thì kỹ sư MONA viết thêm vào.
Spec driven development có làm dự án chậm hơn không?
Chậm hơn ở buổi đầu vì phải chốt yêu cầu bằng chữ. Bù lại, AI agent làm đúng ngay từ lượt đầu nhiều hơn và lúc nghiệm thu không phải cãi nhau về chữ “nhanh” hay “đẹp”, nên tổng thời gian dự án thường ngắn hơn. Phần tiết kiệm lớn nhất nằm ở khâu sửa lại. Với AI agent, mỗi vòng sửa vì hiểu sai yêu cầu là thêm một lượt viết, một lượt kiểm và một lượt duyệt.




















































