On-screen text
BDD
Behavior-Driven
Development
sẽ nằm chỗ nào trong tài liệu này mn nhỉ
AI AI
Kỹ Sư Phần Mềm
Cần Học Gì Khi AI Đã
Biết Viết Code?
Trình bày: AI-Driven Development Flow (Bản thảo R&D)
A NotebookLM
Ngành tech đang đặt sai câu hỏi
[TERMINAL: INACTIVE]
Câu hỏi cũ:
Dùng AI coding tool
nào tốt nhất? Cursor
hay Claude? []
[TERMINAL: ACTIVE // SOURCE: HUMAN_INTENT]
Câu hỏi đúng:
<input>
Nếu AI có thể code
thì người làm phần
mềm cần học gì?
<input>
Chúng ta không thiếu người biết dùng tool. Chúng ta thiếu người hiểu bài toán, biết
kiểm soát output, và biết khi nào AI đang đi sai hướng. Tương lai không thuộc về
người viết code, mà thuộc về người orchestrate AI để build đúng thứ.
AI-Driven Development (AIDD): Một Vòng Lặp Ghép, Không Phải Thác Nước
TDD
ADD
(Viết test -> AI
generate code ->
Lặp lại).
The Engine:
TDD và ADD chạy
song song
UDD
SDD
DDD
Foundation: DDD,
SDD, và UDD cung
cấp context.
Living
Document
Lưu ý: Mỗi pha đều có thể
trigger quay ngược lại pha trước.
A NotebookLM
Tốc độ của AI là một cái bẫy nếu thiếu định hướng
AI rất giỏi làm nhanh. Nếu bạn chưa biết mình đang làm cái gì, AI sẽ chỉ giúp bạn đi sai hướng nhanh hơn mà thôi. Framework này là các trạm kiểm soát chất lượng (Quality Gates) trước khi tăng tốc.
THE BLIND AI PATH
Vague
Prompt
Wrong Problem
/ UX Fail
THE ORCHESTRATED PATH
Structured
Prompt
DDD
Domain-Driven
Design
SDD
System Design
Document
UDD
User Design
Document
TDD
Test-Driven
Development
ADD (Tăng tốc)
Success
A NotebookLM
Cộng đồng mã nguồn mở đang tụ hội về kiến trúc này
Dữ liệu từ goodallist.com cho thấy các top trending repos tuần này map 1:1 với từng pha trong framework.
DDD
UDD
@nexu-io/open-design
(34.7k)
Map với 'UDD' _
@anthropics/financial-services
(16.6k)
Map với 'DDD' >
SDD
TDD
ADD
@forrestchang/andrej-karpathy-
skills
(121k)
Map với 'ADD' _
@addyosmani/agent-skills
(36.7k)
Map với 'SDD' / 'TDD' _
A NotebookLM
Pha 1: DDD (Domain-Driven Design)
Hiểu bài toán trước khi mở máy tính
Trả lời: Actor là ai? Business rule
nào bất biến? Bounded context nằm ở
đâu?
Human Output (Artifacts)
Domain model
Glossary
Context map
EventStorming
AI Tooling & Trends
[__]
Combo: Claude Desktop + Cowork
(Extract concepts từ hợp
đồng/interview).
Trend: anthroplcs/financial-
services - Encode domain
knowledge (investment
banking, wealth management)
vào AI agent qua file
markdown & JSON.
>_ []
A NotebookLM
Pha 2: SDD (Spec-Driven Development)
Nếu bạn không viết được spec - bạn
chưa hiểu đủ để làm
Spec chính là context đưa cho AI. Phải
xác định rõ Acceptance criteria, Edge
cases, và Assumptions trước khi code.
Human Output (Artifacts)
SPEC.md
Acceptance checklist
Data model draft
AI Tooling & Trends
[__]
Trend: addyosmani/agent-skills
(Workflow: SPECIFY -> PLAN ->
TASKS -> IMPLEMENT). AI phải
list toàn bộ assumptions để
human review.
[__]
Trend: mattpocock/skills (Lệnh
`grill-me` - AI liên tục hỏi để
xóa bỏ ambiguity trước khi
code).
{} []
A NotebookLM
Pha 3: UDD (UI/UX-Driven Development)
Logic đúng mà UX sai vẫn là sản phẩm tệ
Thiết kế User flow (happy/alternative paths) và
UI states (loading, empty, error) trước khi code.
Người dùng không đọc spec, họ dùng interface.
Human Output (Artifacts)
User flow diagram
UI states spec
DESIGN.md
Clickable prototype
AI Tooling & Trends
[__]
>_
Trend: nexu-io/open-design
(Trending #7). 19 design skills +
71 design systems.
Tính năng cốt lõi: Anti-AI-slop
checklist & 5-dimensional self-
critique (AI tự review UI của
mình).
{} []
A NotebookLM
Pha 4: TDD (Test-Driven Development) ADD
Biến spec và UX thành những thứ
máy tính có thể kiểm tra
Viết test trước, để nó fail. Đây là lưới an
toàn cốt lõi khi AI sinh code. Không có
test = không thể kiểm soát AI.
Human Output (Artifacts)
Test suite
Coverage report
X Failing tests (sẵn sàng cho ADD)
AI Tooling & Trends
[__]
Trend: mattpocock/skills (/tdd
skill enforce Red-Green-Refactor).
[__]
Trend: addyosmani/agent-skills
(Beyoncé Rule: If you liked it, you
should have put a test on it -
Encode Google's test pyramid).
[__]
Model: NousResearch/hermes-agent cho
test verification tự động.
{}}
A NotebookLM
Pha 5: ADD (AI-Driven Development)
Bây giờ mới dùng AI để code - và
dùng đúng cách
ADD không phải hồi AI rồi paste code.
ADD là orchestrate AI có kiểm soát.
Bạn là người chỉ huy, AI là người thực
thi dựa trên context từ 4 pha trước.
Human Output (Artifacts)
Working code
Passing tests
Reviewed PR
AI Tooling & Trends
[__]
Trend: addyosmani/agent-skills
(Encode Google's engineering
culture: Hyrum's Law, Shift Left).
Trend: forrestchang/andrej-
karpathy-skills (Focus vào failure
môdes phổ biến của LLM khi code).
{} []
A NotebookLM
Ma trận rủi ro: Tại sao thứ này sống còn?
Bỏ qua pha nào?
Bỏ qua DDD A
Bỏ qua SDD A
Bỏ qua UDD A
Bỏ qua TDD A
! Bỏ qua architecture
gate trong ADD
Hậu quả (Risk)
Build sai bài toán
Feature mờ hồ, thiếu
edge case
Logic đúng nhưng UX sai
Code AI sinh ra không
kiểm soát được
Tốc độ cao nhưng entropy
tăng vọt
Dấu hiệu nhận biết (Symptoms)
Chúng ta đã build xong nhưng
khách hàng không dùng
AI liên tục hỏi clarifying
questions khi code
User testing fail dù code
chạy đúng
Không biết feature có dùng
không trừ khi test tay
Codebase biến thành ball of
mud sau 3 tháng
A NotebookLM
Phổ kỹ năng mới: Từ Thấu cảm đến Logic
Kỹ sư phần mềm không còn sống ở cực Logic. Giá trị của con người đang dịch
chuyển về phía thấu cảm nghiệp vụ và thiết kế trải nghiệm, trong khi AI đảm
nhận phần thực thi logic. SDD chính là lớp dịch thuật (translation layer) nằm ở giữa.
DDD
UDD
{ SDD }
TDD
ADD
Human Empathy &
Business Context
Translation
Layer
Machine Logic
& Execution
A NotebookLM
Chuyển đổi mô thức: Sự trỗi dậy của SKILL.md
Nhìn vào các GitHub trending repos, một kiến trúc xuất hiện: SKILL.md.
Công việc của developer không còn là viết code. Công việc của bạn là viết Skills.
Glossary
SPEC.md
DESIGN.md
Test
Suites
Prompting (Nghiệp dư)
Cố gắng ra lệnh cho AI viết app
trong một đoạn chat.
SKILL.md
Skill-Based Orchestration (Kỹ Sư)
Encode kinh nghiệm, judgment,
workflows và exit criteria vào dạng
Structured English mà AI agents có
thể tuân thủ quán quán.
A NotebookLM
Người mới bắt đầu nên học gì?
Học theo Năng lực, không theo Công cụ.
Năng lực (Pha)
Vai trò của Con người (Human Role)
Vai trò của AI (AI Role)
DDD (Đặt câu hỏi)
Lắng nghe, phân tích, cấu trúc thông tin.
Extract concepts, draft glossaries.
SDD (Viết rõ ràng)
Xác định assumptions, viết spec không
ambiguity.
Surface misunderstandings, verify
requirements.
UDD (Góc nhìn user)
Empathy với user, visualize experience.
Generate prototypes từ design
system.
TDD (Kiểm tra)
Xác định What is Done?, tư duy hệ thống.
Verify logic qua automation tests.
ADD (Orchestrate)
Chỉ huy, break task nhỏ, review critically.
Thực thi mã tốc độ cao.
{} []
A NotebookLM
Những khoảng trống (R&D Đang Tiếp Diễn)
Framework này là một bản thảo đang được thử nghiệm, thất bại, và tinh chỉnh.
Vẫn còn nhiều câu hỏi mở:
> Quy trình khởi đầu: Với junior hoàn toàn mới, DDD có
quá trừu tượng không?
> Tính linh hoạt: Có lightweight version nào cho startup
environment cần move fast không?
> Data Modeling: Giữa UDD và TDD, có cần một bước API
contract riêng không?
> Tooling: Làm sao port toàn bộ workflows này sang Cursor
/ Windsurf mượt mà nếu không dùng Claude Code?
(Bản thảo R&D - Mọi góp ý đều được trân trọng để cùng xây dựng)
A NotebookLM
The Ultimate Question
"Khi AI có thể viết code, giá trị của
một người làm phần mềm nằm ở đâu?"
Giá trị của bạn nằm ở: Khả năng thấu hiểu bài
toán, năng lực thiết lập các trạm kiểm soát chất
lượng, và nghệ thuật chuyển hóa Enginering Judgment
thành Skills.
(Bản thảo R&D - Mọi góp ý đều được trân trọng để cùng xây dựng)
A NotebookLM