LinhNDM — Nguyễn Đình Mạnh Linh
// PLAYBOOK: SPEC-DRIVEN & AGENT-DRIVEN DEVELOPMENT

Lịch Sử Tiến Hóa
Phương Pháp PTPM

Từ Waterfall đến Agentic AI · và tại sao mọi thứ bạn biết về lập trình đang được viết lại
@2026 LinhNDM — Nguyễn Đình Mạnh Linh
// GIỚI THIỆU CHƯƠNG

Tổng Quan Chương 1

Chương này đưa bạn qua hành trình nửa thế kỷ tiến hóa của phương pháp phát triển phần mềm — từ Waterfall cứng nhắc, qua Agile linh hoạt, đến DevOps tự động hóa, và cuối cùng là kỷ nguyên AI Agents đang định hình lại toàn bộ cách chúng ta viết phần mềm.

Đây không phải lịch sử thuần túy, mà là bối cảnh để hiểu vì sao SDDADD xuất hiện như một tất yếu trong giai đoạn 2025-2026.

Ba paradigm lớn được phân tích theo thứ tự tiến hóa: Vibe Coding, Spec-Driven Development, và Agent-Driven Development. Mỗi paradigm được trình bày với ví dụ thực tế, ưu nhược điểm, và trường hợp sử dụng.

ℹ ĐIỂM TRỌNG TÂM CỦA CHƯƠNG
  • Phương pháp này giải quyết vấn đề gì của thế hệ trước?
  • Nó tạo ra vấn đề mới nào?
  • Ai nên dùng paradigm nào — và khi nào?
  • Tiếp cận như kỹ sư có tư duy hệ thống, không học theo trào lưu
ℹ YÊU CẦU TIÊN QUYẾT
Không có yêu cầu tiên quyết · Kiến thức cơ bản về lập trình · Có thể đọc và hiểu code ở mức cơ bản · Sẵn sàng tư duy phê phán về phương pháp và công cụ
Tools minh họa: GitHub Copilot · ChatGPT · Claude · Cursor
// TABLE OF CONTENTS

Mục Lục Chương 1

1.1
Từ Waterfall đến Agile:
Nửa Thế Kỷ Cô Đặc
1.2
Sự Xuất Hiện Của AI
Trong Quy Trình Phát Triển
1.3
Vibe Coding & Nhu Cầu
Cấu Trúc — Ba Paradigm
1.4
Bức Tranh Toàn Cảnh 2026:
SDD, ADD & Hybrid Approach
Hands-on & Thực Tế: Ứng dụng thực tiễn cho đồ án và công việc
1.1

Từ Waterfall đến Agile:
Nửa Thế Kỷ Cô Đặc

Mỗi phương pháp phát triển phần mềm không xuất hiện từ hư không — nó ra đời để giải quyết vấn đề của phương pháp trước đó.
// 1.1 · KỶ NGUYÊN WATERFALL

Waterfall (1970–1990s): "Lên Kế Hoạch Mọi Thứ Trước Khi Code"

Năm 1970, Winston Royce xuất bản bài báo mô tả quy trình phát triển phần mềm tuần tự: Requirements → Design → Implementation → Verification → Maintenance. Mô hình Waterfall chỉ chảy một chiều từ trên xuống. Điều thú vị là chính Royce cũng cảnh báo mô hình này có nhiều rủi ro.

✓ WATERFALL HOẠT ĐỘNG TỐT KHI...
  • Phần mềm giao trên đĩa mềm hoặc băng từ — thay đổi sau khi ship cực kỳ tốn kém
  • Yêu cầu phần mềm tương đối ổn định (hệ thống quân sự, ngân hàng)
  • Cần quy trình rõ ràng, tài liệu hóa đầy đủ cho dự án lớn
✗ VẤN ĐỀ CỐT LÕI
  • Khách hàng không biết chính xác mình muốn gì cho đến khi thấy sản phẩm chạy
  • Khi phần mềm hoàn thành sau 2–3 năm, yêu cầu đã thay đổi
  • Sản phẩm trở nên lỗi thời ngay khi giao
Kế hoạch chi tiết là cần thiết, nhưng kế hoạch không thể thay đổi là nguy hiểm. Đây cũng là bài học sẽ quay lại khi chúng ta nói về Spec-Driven Development — viết spec tốt không có nghĩa là "đông cứng" spec. 💡 BÀI HỌC TỪ WATERFALL
// 1.1 · KỶ NGUYÊN AGILE

Agile (2001–2015): "Thay Đổi Là Bình Thường"

Tháng 2 năm 2001, 17 nhà phát triển phần mềm gặp nhau tại Utah và viết ra Agile Manifesto — một tài liệu chỉ vỏn vẹn 68 từ đã thay đổi toàn bộ ngành phần mềm.

4 GIÁ TRỊ CỐT LÕI AGILE
  • Con người & tương tác hơn là quy trình & công cụ
  • Phần mềm chạy được hơn là tài liệu đầy đủ
  • Hợp tác với khách hàng hơn là đàm phán hợp đồng
  • Phản hồi với thay đổi hơn là tuân theo kế hoạch
CÁC FRAMEWORK AGILE
  • Scrum — Sprint 2 tuần, daily standup, retrospective
  • Kanban — Việc chảy liên tục, giới hạn WIP
  • XP / Extreme Programming — Pair programming, TDD, CI
⚠ VẤN ĐỀ MỚI CỦA AGILE
Agile giải quyết tốt "yêu cầu thay đổi", nhưng tạo ra thách thức mới: Làm thế nào để giao hàng liên tục mà không hy sinh chất lượng? Làm thế nào để code luôn sẵn sàng deploy? → Câu trả lời dẫn đến DevOps.
// 1.1 · KỶ NGUYÊN DEVOPS & CI/CD

DevOps & CI/CD (2010s–2022): "Tự Động Hóa Mọi Thứ Có Thể"

DevOps là một văn hóa: xóa bỏ bức tường giữa DevelopmentOperations. CI/CD trở thành tiêu chuẩn: mỗi lần commit code, hệ thống tự động build, test, và deploy.

CÔNG CỤ TIÊU BIỂU
  • Jenkins · GitLab CI · GitHub Actions
  • Docker · Kubernetes (container orchestration)
  • Terraform · Ansible (infrastructure as code)
GOOGLE DORA METRICS
  • Deployment frequency (tần suất deploy)
  • Lead time (thời gian từ code đến prod)
  • Change failure rate (tỷ lệ lỗi sau deploy)
  • Recovery time (thời gian phục hồi)
⚡ BOTTLENECK VẪN CÒN ĐÓ
Dù CI/CD có nhanh đến mấy, nếu developer mất 3 ngày để viết một feature, thì pipeline vẫn phải chờ 3 ngày. Bottleneck lớn nhất vẫn là: con người viết code. Đây là lúc AI bước vào cuộc chơi.
// BẢNG 1.1

Timeline Tiến Hóa Phương Pháp Phát Triển Phần Mềm

Giai đoạn Phương pháp Giải quyết vấn đề Tạo vấn đề mới
1970s Waterfall Cần quy trình rõ ràng cho dự án lớn Không thích ứng được thay đổi
1990s RUP / Iterative Chia thành iterations nhỏ hơn Quá nhiều documentation
2001 Agile / Scrum Thích ứng nhanh, phản hồi sớm với thay đổi Giao hàng liên tục = áp lực ops
2010s DevOps / CI/CD Tự động hóa deploy, giảm bottleneck ops Bottleneck: tốc độ viết code
2022+ AI-Assisted Tăng tốc viết code đột biến Chất lượng, kiểm soát, trust?
1.2

Sự Xuất Hiện Của AI
Trong Coding (2022–2026)

Nếu Agile mất 20 năm để trở thành mainstream, thì AI coding tools chỉ mất 3 năm. Tốc độ áp dụng là chưa từng có tiền lệ trong lịch sử ngành.
// 1.2 · GIAI ĐOẠN 1

Autocomplete: "Gợi Ý Dòng Tiếp Theo" (2021–2023)

GitHub Copilot ra mắt bản technical preview vào tháng 6/2021 và GA tháng 6/2022. Đây là công cụ đầu tiên mang AI vào IDE của hàng triệu developer dưới dạng một thứ rất quen thuộc: autocomplete.

ĐẶC ĐIỂM
  • AI hoạt động ở mức dòng code và hàm
  • Không hiểu dự án, không biết kiến trúc tổng thể
  • Không đọc file khác ngoài file hiện tại
WORKFLOW
  • Bạn gõ một vài dòng → AI gợi ý phần còn lại
  • Tab để accept, Esc để reject
  • Đơn giản, nhanh, lập tức hữu ích
Giống một người bạn ngồi cạnh biết rất nhiều pattern code, nhưng không biết gì về dự án bạn đang làm.
// 1.2 · GIAI ĐOẠN 2

Chat-Based: "Hỏi AI, Nhận Code" (2023–2024)

ChatGPT ra mắt tháng 11/2022 và thay đổi mọi thứ. Lần đầu tiên, developer có thể mô tả vấn đề bằng ngôn ngữ tự nhiên và nhận lại một khối code hoàn chỉnh. Tiếp theo: Claude (Anthropic), Gemini (Google), Cursor (2023).

ĐẶC ĐIỂM
  • AI hoạt động ở mức khối code và file
  • Bạn copy-paste code vào chat, AI sửa và trả lại
  • Context = những gì bạn paste vào
WORKFLOW
  • Hỏi → Nhận code → Copy về IDE → Test
  • Không chạy → Hỏi lại → Vòng lặp tiếp tục
  • Điểm yếu: vòng lặp copy-paste
⚠ GIỚI HẠN
Mô hình hỏi-đáp tạo ra vòng lặp thủ công tốn thời gian. AI không có khả năng tự chạy code, kiểm tra kết quả, hay đọc toàn bộ codebase — đây là giới hạn cần vượt qua.
// 1.2 · GIAI ĐOẠN 3

Agentic: "AI Tự Làm, Bạn Duyệt" (2025–Nay)

Bước nhảy lớn nhất xảy ra từ đầu 2025. Claude Code (Anthropic, 02/2025), GitHub Copilot Agent Mode, Cursor Agent Mode, OpenAI Codex CLI — tất cả chuyển từ mô hình "hỏi-đáp" sang mô hình "ủy quyền".

ĐẶC ĐIỂM
  • AI hoạt động ở mức toàn bộ dự án
  • Tự đọc cả codebase, hiểu kiến trúc, biết file nào liên quan đến file nào
  • Có thể chạy terminal commands, tự kiểm tra kết quả
WORKFLOW MỚI
  • Bạn mô tả mục tiêu → Agent tự lên kế hoạch
  • Agent tự edit nhiều file, chạy test, sửa lỗi
  • Tất cả trong một phiên làm việc duy nhất
⚡ TOOLS TIÊU BIỂU 2025
Claude Code · Cursor Agent Mode · GitHub Copilot Agent · OpenAI Codex CLI · Windsurf
Thực tế đã chuyển từ bổ trợ code sang ủy quyền code. 10x engineer có thể trở thành 100x engineer — không bằng cách viết nhiều code hơn, mà bằng cách điều phối nhiều agent hơn. — DEV COMMUNITY · "THE AI REVOLUTION IN 2026"
// BẢNG 1.2

Ba Giai Đoạn Tiến Hóa Của AI Coding

Tiêu chí Autocomplete Chat-Based Agentic Xu hướng 2026+
Phạm vi Dòng / hàm Khối code / file Toàn dự án Multi-dự án
Workflow Gõ → Tab Hỏi → Copy → Paste Mô tả → Duyệt Spec → Auto
Context File hiện tại Những gì bạn paste Cả codebase Codebase + MCP
Kiểm soát Từng dòng Từng khối Từng task Từng spec
Tool tiêu biểu Copilot v1 ChatGPT, Claude Claude Code, Cursor Agent Spec Kit + Agent
Rủi ro chính Thấp Copy sai context Agent "tự ý" Over-reliance
// 1.2 · DỮ LIỆU THỰC TẾ

Mức Độ Áp Dụng AI Trong Lập Trình

INFO · DỮ LIỆU CHO SINH VIÊN
Nếu làm đồ án SE mà không dùng AI tools, bạn đang ở vị trí bất lợi so với 84-92% developer toàn cầu. Nhưng dùng AI không đúng cách còn nguy hiểm hơn không dùng.
84%
developer đang sử dụng hoặc có kế hoạch sử dụng AI tools
Stack Overflow Developer Survey 2025
90%
chuyên gia phát triển phần mềm sử dụng AI, trung bình 2 giờ/ngày
Google DORA Report 2025
92%
US developers sử dụng AI coding tools hàng ngày tính đến đầu 2026
Industry Report 2026
25%
startups trong Y Combinator W2025 có codebase 95% do AI tạo
YC Winter 2025
12/12 điểm tối đa
Hệ thống AI của OpenAI đạt điểm tối đa tại ICPC World Finals 2025, xếp thứ nhất nếu là đội người
ICPC World Finals 2025
1.3

Vibe Coding & Nhu Cầu Cấu Trúc:
Ba Paradigm Lớn

Vibe Coding nhanh nhưng nguy hiểm. Để hiểu tại sao SDD và ADD ra đời, ta cần hiểu rõ vấn đề mà Vibe Coding tạo ra.
// 1.3 · VIBE CODING LÀ GÌ?

Vibe Coding — Định Nghĩa & Sức Hút

Tháng 2 năm 2025, Andrej Karpathy — đồng sáng lập OpenAI, cựu giám đốc AI tại Tesla — đăng bài mô tả cách lập trình mới:

"Hoàn toàn buông theo cảm xúc, đón nhận sự tăng trưởng theo cấp số nhân, và quên rằng code thậm chí đang tồn tại." — ANDREJ KARPATHY, 02/2025
TẠI SAO VIBE CODING HẤP DẪN?
  • Cảm giác "siêu năng lực": tạo app hoàn chỉnh trong vài giờ
  • Prototype nhanh chưa bao giờ dễ đến vậy
  • Hackathon trở nên sôi động hơn bao giờ hết
  • Phù hợp cho đồ án ngắn hạn với áp lực deadline
VIBE CODING = GÌ TRONG THỰC TẾ?
  • Viết prompt → Nhận code từ AI
  • Chạy thử → Thấy chạy được → Tiếp tục
  • Không cần hiểu sâu code đang làm gì
  • Giống xây nhà không có bản vẽ
// 1.3 · VẤN ĐỀ CỦA VIBE CODING

Vấn Đề 1 & 2: Code Complexity + Bảo Mật

✗ VẤN ĐỀ 1: CODE COMPLEXITY BÙ NỔ
  • AI-assisted coding làm tăng độ phức tạp code lên +41%
  • Cảnh báo từ static analysis tăng +30%
  • AI tạo code dài hơn, nhiều abstraction hơn, dùng nhiều dependencies hơn cần thiết
  • Sau vài tuần, không ai trong nhóm hiểu toàn bộ codebase
✗ VẤN ĐỀ 2: BẢO MẬT BỊ BỎ QUA
  • LLM tạo code có lỗ bảo mật với tỷ lệ từ 9.8% đến 42.1% tùy benchmark
  • Khoảng 2% các issues là lỗ bảo mật
  • 56–93% các lỗ đó được đánh giá mức Blocker hoặc Critical
  • AI không chủ động nghĩ về bảo mật trừ khi được yêu cầu rõ ràng
Tháng 9/2025, Fast Company xuất bản bài "The Vibe Coding Hangover Has Arrived" — các senior software engineer mô tả trải nghiệm làm việc với code do AI tạo mà không ai hiểu được.
// 1.3 · VẤN ĐỀ CỦA VIBE CODING

Vấn Đề 3 & 4: Final 20% + Technical Debt

⚠ VẤN ĐỀ 3: "FINAL 20% PROBLEM"
  • AI có thể build 80% ứng dụng trong vài giờ
  • 20% còn lại — edge cases, polish, integration, performance — mất thời gian bằng cả dự án trước đây
  • 15.000 dòng code mà không ai hiểu = cơn ác mộng khi sửa
⚠ VẤN ĐỀ 4: TECHNICAL DEBT TÍCH LŨY
  • Code tối ưu cho "chạy được ngay" không phải "dễ bảo trì"
  • Naming không nhất quán, patterns lẫn lộn giữa các file
  • Cùng một vấn đề giải quyết theo 3 cách khác nhau trong 3 file
  • Tuần 15–20 của đồ án 20 tuần = cơn ác mộng
"Tốc độ là thật... nhưng founder nào chưa từng học cách quản lý context sẽ gặp rắc lớn khi AI tạo ra 15.000 dòng code mà họ không hiểu." — REDDIT · r/programming, 2025
// BẢNG 1.3

Vibe Coding vs. Structured AI Development (SDD + ADD)

Tiêu chí Vibe Coding Structured (SDD + ADD)
Triết lý Prompt → Code → Ship Spec → Plan → Code → Validate
Tốc độ ban đầu Rất nhanh (giờ) Chậm hơn (ngày)
Tốc độ lâu dài Chậm dần (nợ kỹ thuật) Duy trì ổn định
Chất lượng code Không đảm bảo Có validation gates
Bảo mật Phụ thuộc may rủi Spec định nghĩa constraints
Team collaboration Khó (ai hiểu code?) Dễ (spec là ngôn ngữ chung)
Bàn giao / Handoff Rất khó Spec + docs tự nhiên
Phù hợp cho Prototype, hackathon, 1 người Đồ án thực, team, sản phẩm
// 1.3 · CẢNH BÁO THỰC TẾ

Bẫy Vibe Coding Cho Nhóm Đồ Án

⚠ CẢNH BÁO CHO NHÓM ĐỒ ÁN
Nhiều nhóm sinh viên bắt đầu bằng Vibe Coding vì nó nhanh, rồi gặp khủng hoảng ở giữa kỳ khi cần tích hợp, test, và demo cho giáo viên.

Playbook này giúp bạn tránh bẫy đó bằng cách dành 2–3 tuần đầu để setup đúng, và thu hoạch tốc độ suốt 17 tuần còn lại.
+41%
Code Complexity
42%
Security Vulnerabilities/Lỗ hổng bảo mật
20%
Final Problem Trap
1.4

Bức Tranh Toàn Cảnh 2026:
SDD, ADD & Hybrid Approach

Để giải quyết vấn đề chất lượng của Vibe Coding, hai approach đã xuất hiện gần như đồng thời trong năm 2025.
// 1.4 · APPROACH 1

Spec-Driven Development (SDD)

"Vấn đề không phải AI kém, mà là chúng ta đưa cho AI input kém." Nếu bạn viết một specification rõ ràng, chi tiết, và có thể kiểm chứng được, thì AI sẽ tạo ra code chất lượng cao hơn nhiều.
NGUYÊN TẮC CORE
  • Spec là artifact chính, code là sản phẩm dẫn xuất
  • Quy trình: Specify → Plan → Tasks → Implement → Validate
  • Tools tiêu biểu: GitHub Spec Kit, Amazon Kiro
ĐÁNH GIÁ
  • ✓ Reproducible, quality gates rõ ràng
  • ✓ Team alignment — spec là ngôn ngữ chung
  • ✓ Dễ bàn giao, dễ kiểm tra
  • △ Overhead viết spec ban đầu
  • △ Nguy cơ over-specification
  • △ Chậm hơn cho task nhỏ
// 1.4 · APPROACH 2

Agent-Driven Development (ADD)

"AI đã đủ thông minh để tự làm, chỉ cần chỉ đường đúng." Thay vì viết spec chi tiết, hãy cung cấp context đầy đủ rồi để agent tự lên kế hoạch và thực thi.
NGUYÊN TẮC CORE
  • Agent là collaborator, không phải tool
  • Context setup gồm AGENTS.md, constraints, domain knowledge
  • Quy trình: Context Setup → Intent → Agentic Execution → Human Review
  • Tools tiêu biểu: Claude Code, Cursor Agent Mode, Codex CLI
ĐÁNH GIÁ
  • ✓ Nhanh, flexible, linh hoạt
  • ✓ Explore codebase tốt
  • ✓ Xử lý tốt boilerplate(cấu trúc m) và repetitive tasks
  • △ Context drift khi task dài
  • △ Hallucination, tự ý thay đổi
  • △ Khó kiểm soát với team lớn
// 1.4 · APPROACH 3 · RECOMMENDED

Hybrid Approach: Kết Hợp Tốt Nhất Của Cả Hai

⭐ NGUYÊN TẮC CỐT LÕI CỦA HYBRID
Dùng SDD cho những gì cần ĐÚNG TỪ ĐẦU (kiến trúc, API contracts, data models, security).
Dùng ADD cho những gì cần NHANH VÀ ITERATIVE (UI components, business logic, tests, boilerplate).
Spec ở tầng kiến trúc, Agent ở tầng implementation.
SDD LAYER (ARCHITECTURE)
  • Kiến trúc hệ thống → Full spec
  • API contracts → Full spec
  • Database schema → Full spec
  • Security constraints → Full spec
ADD LAYER (IMPLEMENTATION)
  • UI components → Agent tự do
  • Unit tests → Agent tự do
  • Bug fixing → Agent tự do
  • Boilerplate / scaffold → Multi-agent
// BẢNG 1.4

Khi Nào Dùng SDD, Khi Nào Dùng ADD?

⚠ LƯU Ý QUAN TRỌNG
Hybrid không phải là "dùng cả hai lung tung". Đây là framework có nguyên tắc rõ ràng: khi nào cần spec chặt, khi nào để agent tự do, và cách hai approach bổ sung cho nhau.
Loại task Spec Depth Agent Autonomy Approach
Kiến trúc hệ thống Full spec Guided SDD
API contracts Full spec Guided SDD
Database schema Full spec Agentic Hybrid
Feature logic (core) Standard spec Agentic Hybrid
UI components Light spec Agentic ADD
Unit tests None Agentic ADD
Bug fixing None Agentic ADD
Boilerplate / scaffold None Multi-agent ADD
Refactoring Light spec Agentic Hybrid
Documentation None Agentic ADD
// 1.4 · TẠI SAO HYBRID?

Hybrid Phù Hợp Cho Nhóm Sinh Viên: 5 Lý Do

Với nhóm 5 người làm đồ án 20 tuần, Hybrid mang lại những lợi ích cụ thể:

  • Spec làm ngôn ngữ chung của nhóm — Khi 5 người cùng code, spec rõ ràng giúp tránh hiểu lầm và code mâu thuẫn
  • Agent tăng tốc viết code — Mỗi thành viên hoàn thành nhiều hơn trong cùng thời gian, đặc biệt khi vừa học vừa làm
  • Validation gates bảo vệ chất lượng — Spec-based review phát hiện lỗi sớm, trước khi lan sang module khác
  • Dễ phân công và theo dõi — Mỗi người assign spec + tasks rõ ràng, giáo viên đánh giá cá nhân dễ dàng hơn
  • Chuẩn bị cho career thực tế — SDD và ADD đều là kỹ năng đang được tìm kiếm trên thị trường lao động 2026
// TÓM TẮT CHƯƠNG 1

Key Takeaways

  • Phương pháp phát triển phần mềm tiến hóa theo vòng lặp: mỗi bước mới giải quyết vấn đề của bước trước
  • AI coding trải qua 3 giai đoạn: Autocomplete → Chat → Agentic. Chúng ta đang ở đầu giai đoạn Agentic
  • Vibe Coding nhanh nhưng nguy hiểm: code complexity +41%, security risks, "Final 20% Problem"
  • SDD giải quyết chất lượng bằng specification · ADD giải quyết tốc độ bằng agent autonomy
  • Hybrid = SDD ở tầng kiến trúc + ADD ở tầng implementation — approach tối ưu cho nhóm và team nhỏ
// TIẾP THEO
Chương 2: Từ "Người Viết Code" Sang "Kiến Trúc Sư + Nhạc Trưởng"
Mô hình tư duy mới của developer trong kỷ nguyên AI