Skip to content

[TÊN FEATURE] - User Story Specification ​

FieldValue
Doc IDFS-XXX
Last UpdatedYYYY-MM-DD
Author[Tên BA]
Reviewers[Dev Lead / Designer / PM / QA]
StatusDRAFT / IN REVIEW / APPROVED / BLOCKED
Figma Project[Link Figma project tổng]
Related API Spec[Link tài liệu API nếu có]
Related BRD[Link BRD nếu có]
Related Impact Matrix[Link Impact Matrix nếu có]

1. Tổng quan dự án ​

Mô tả ngắn 2-3 câu: tính năng làm gì, giải quyết vấn đề gì, nhóm người dùng nào bị ảnh hưởng.

1.1 Bối cảnh ​

[Pain point hiện tại, trigger từ nghiệp vụ/khách hàng/đối thủ, vấn đề vận hành hoặc giới hạn hệ thống hiện tại.]

1.2 Mục tiêu ​

[Mục tiêu dự án, KPI, kết quả kỳ vọng, ràng buộc thời gian/ngân sách nếu có.]

1.3 In Scope ​

  • [Những chức năng/quy trình SẼ làm trong phase này.]
  • [Những màn hình, dữ liệu, API, report, notification nằm trong scope nếu có.]

1.4 Out Of Scope ​

  • [Những chức năng/quy trình KHÔNG làm trong phase này.]
  • [Những phần sẽ xử lý ở phase sau nếu có.]

1.5 Roles And Permissions ​

Role IDRole NameDescriptionPermission Summary
R1[End user][Mô tả role][Quyền chính]
R2[Admin][Mô tả role][Quyền chính]

2. Luồng tổng quan của dự án ​

[Mô tả flow tổng: user/role đi qua các tính năng nào theo thứ tự nào.]

text
[Entry point]
  ↓
[Tính năng A: US-01]
  ↓
[Tính năng B: US-02] ──→ [Tính năng C: US-03]
  ↓
[Exit / End state]

Link flow nếu có:

  • Mermaid / Excalidraw / Figma flow: [Link]

3. Các tính năng liên quan ​

Xét 2 loại liên quan:

  • Affects: tính năng khác ảnh hưởng đến tính năng hiện tại.
  • Be Affected: tính năng hiện tại ảnh hưởng đến tính năng khác.
MãTính năng liên quanLink tài liệuLoại liên quanMục bị ảnh hưởng ở feature kiaMục ảnh hưởng ở feature hiện tạiMô tả ảnh hưởng
REL-01[Tên feature/module A][Link FS]Affects-US-01.M1 - field X[Feature A truyền state/data Y để hiển thị ở field X]
REL-02[Tên feature/module B][Link FS]Be AffectedUS-XX.M2 - list viewUS-01.M3 - action Submit[Khi US-01 submit thành công, list ở feature B phải refresh]

Mã REL-XX sẽ được tham chiếu ở phần Cross-feature AC bằng trường Maps to.

4. Detailed Requirement ​

Danh sách User Story:

  • US-01: [Tên user story]
  • US-02: [Tên user story]
  • US-03: [Tên user story]

US-01: [Tên User Story] ​

FieldValue
Role thực hiện[R1 - End user]
PhaseMVP / Phase 2
PriorityP0 / P1 / P2
StatusDraft / Ready / Approved

4.1.1 US Statement ​

text
As a [role]
I want [hành động]
So that [lợi ích]

4.1.2 Dependencies & Definition Of Ready ​

US này chỉ sẵn sàng để build khi các dependency dưới đây đã rõ.

#Cần sẵn sàngAi cung cấpTrạng thái
D1Figma frame M1, M2 final@Designer☐
D2API /xxx ready hoặc đã có contract@Backend☐
D3US-XX merged hoặc behavior đã được confirm@Frontend☐

4.1.3 Business Rules ​

Đặt business rules trước phần design để field/action/validation có rule tham chiếu rõ ràng.

Mỗi BR phải có ít nhất 1 AC (hoặc field/action/NFR cụ thể) cover — điền cột "Đã cover bởi". BR chưa có AC cover → bổ sung AC hoặc tạo Open Question, không để trống.

IDRuleÁp dụng ởĐã cover bởi (AC)
BR-01[Rule nghiệp vụ]US-01.M1 - action [Tên action]AC-M1.x
BR-02[Rule nghiệp vụ]US-01.M2 - field [Tên field]AC-M2.x
BR-03[Rule nghiệp vụ][Màn/action/field liên quan]AC-Mx.x / EC-Mx.x

4.1.4 Design ​

a. Mối liên hệ giữa các màn & User Flow ​

text
[Entry]
  ↓ user click X
[M1: Search]
  ↓ chọn item
[M2: Confirm]
  ├─ submit OK ──→ [M3: Success]
  ├─ lỗi A ──────→ ở lại M2, hiện inline error
  └─ lỗi B ──────→ [M4: Modal error]

Link flow chi tiết nếu có:

  • Mermaid / Excalidraw / Figma flow: [Link]

b. Chi tiết từng màn ​

Quy ước:

  • Mỗi màn dùng mã US-01.M1, US-01.M2, ...
  • Mỗi màn tương ứng một Figma frame riêng nếu có UI.
  • Nếu thiếu frame/state, ghi rõ TODO: Designer bổ sung.

Màn US-01.M1 - [Tên màn] ​

FieldValue
Figma frame[Link frame cụ thể]
Trigger vào màn[User làm gì để vào màn này]
Mô tả ngắn[1-2 câu mô tả mục đích màn]

UI States ​

StateKhi nàoHiển thịFigma frame
DefaultVừa vào màn[Mô tả UI][Link]
LoadingĐang load dataSkeleton/spinner[Link]
Has dataCó data[Mô tả UI][Link]
EmptyKhông có dataEmpty state + CTA nếu có[Link]
ErrorAPI lỗiToast/inline error + retry nếu có[Link]
DisabledĐiều kiện chưa đủ[Mô tả UI disabled][Link]

Frame thiếu: ghi TODO: Designer bổ sung [tên state].

Fields ​

FieldRequiredTypeDefaultFormatValidationError MessageVisibilityDepends On
[Tên field]Yes/NoText/Number/Date/Dropdown/...[Default][dd/MM/yyyy, regex, max length][Rule + ref BR-XX][Text khi sai]Always/Hidden/Readonly[Field X = Y thì field này...]

Actions ​

A1 - [Tên action] ​
ItemDescription
Trigger[User làm gì]
Behavior[Hệ thống xử lý gì, ref BR-XX nếu có]
Success Result[Kết quả mong đợi]

Error cases:

CaseExpected Handling
[Lỗi 1][Hiển thị gì / xử lý gì]
[Lỗi 2][Hiển thị gì / xử lý gì]
A2 - [Tên action] ​

[Lặp lại cấu trúc của A1 nếu có.]

Acceptance Criteria của màn US-01.M1 ​

Format chuẩn: Given - When - Then.

AC-M1.1 - [Tên ngắn] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]

Maps to:

  • Business Rule: [BR-XX]
  • Field/Action: [Tên field/action nếu có]
AC-M1.2 - [Tên ngắn] ​
gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]

Maps to:

  • Business Rule: [BR-XX]

Negative AC / Edge Cases của màn US-01.M1 ​

IDTình huốngHành vi mong đợi
EC-M1.1Mất mạng giữa flow[Expected behavior]
EC-M1.2Mở 2 tab cùng thao tác[Expected behavior]
EC-M1.3Input có ký tự đặc biệt/emoji[Expected behavior]
EC-M1.4Refresh trang giữa modal[Expected behavior]

Màn US-01.M2 - [Tên màn] ​

[Lặp toàn bộ cấu trúc màn US-01.M1: Figma frame, trigger, UI States, Fields, Actions, Acceptance Criteria, Negative AC / Edge Cases.]

4.1.5 Cross-feature AC ​

AC riêng cho các trường hợp US này ảnh hưởng đến hoặc bị ảnh hưởng bởi tính năng khác ngoài tính năng hiện tại.

Nếu không có cross-feature AC, ghi: Không có.

Trường Maps to phải dùng mã REL-XX đã khai báo ở mục 3. Các tính năng liên quan.

AC-X-01.1 - [Tên cross-feature AC] ​

gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]

Maps to:

  • REL-XX ([Affects / Be Affected] - [Tên feature/module liên quan])

AC-X-01.2 - [Tên cross-feature AC] ​

gherkin
Given [điều kiện]
When [hành động]
Then [kết quả]

Maps to:

  • REL-XX ([Affects / Be Affected] - [Tên feature/module liên quan])

US-02: [Tên User Story] ​

FieldValue
Role thực hiện[R2 - Admin]
PhaseMVP / Phase 2
PriorityP0 / P1 / P2
StatusDraft / Ready / Approved

[Lặp toàn bộ cấu trúc từ 4.1.1 đến 4.1.5 cho US-02.]

5. Non-functional Requirements ​

IDRequirementApplies ToAcceptance Criteria
NFR-01[Phân quyền/bảo mật][US/màn/API][Cách kiểm chứng]
NFR-02[Performance/SLA][US/màn/API][Cách kiểm chứng]
NFR-03[Logging/Audit/Monitoring][US/màn/API][Cách kiểm chứng]

6. Open Questions ​

IDQuestionOwnerDue DateStatus
OQ-001[Câu hỏi cần xác nhận][Owner][Date]Open

7. References ​

  • BRD: [Link]
  • Impact Matrix: [Link]
  • Solution Decision: [Link]
  • Figma: [Link]
  • API Spec: [Link]
  • Meeting Notes / Q&A: [Link]