Bỏ qua tới nội dung
Phạm Thủy
Quay lại

Scope, Assumptions và Constraints cho BA

Note này giúp BA làm rõ boundary và uncertainty trong discovery. Scope nói phần thay đổi đang xét; assumption nói điều đang tin nhưng chưa chắc; constraint nói giới hạn có nguồn mà solution phải tôn trọng.

Note này dùng để làm gì

Mở note khi project “cứ phình ra”, các bên gọi preference là constraint, hoặc decision đang dựa trên giả định không ai sở hữu.

1. Đừng trộn sáu loại uncertainty

LoạiĐịnh nghĩa làm việcVí dụ
In scopecapability/process/segment sẽ được phân tích hoặc thay đổigửi, duyệt và theo dõi yêu cầu mua thiết bị
Out of scopechủ động không xử lý trong boundary hiện tạiquản lý vòng đời tài sản sau khi nhận
Assumptionđiều tạm tin để tiếp tục, cần kiểm chứngManager luôn duyệt trước Finance
Constraintgiới hạn có nguồn/authoritychỉ tài khoản công ty được truy cập
Dependencyoutcome phụ thuộc bên/activity khácFinance cung cấp API ngân sách
Risk/issuesự kiện chưa xảy ra / vấn đề đã xảy ravendor trễ API / API test đang unavailable

Preference “team muốn dùng tool X” chưa chắc là constraint. Hỏi nguồn: policy, contract, regulation, budget, architecture decision hay chỉ thói quen?

2. Scope theo nhiều chiều

Đừng chỉ liệt kê feature. Mô tả boundary theo:

Ví dụ: release đầu cho phép tạo, duyệt và xem trạng thái; tích hợp mua hàng với vendor portal là out of scope, nhưng chuẩn bị data contract có thể vẫn in scope.

3. Assumption register

Mỗi assumption cần:

FieldVí dụ
StatementFinance có thể phản hồi kiểm tra ngân sách trong 4 giờ làm việc
Evidence hiện cómột cuộc trao đổi với Finance Ops
Impact nếu saiSLA end-to-end và notification rule phải đổi
Validation methodphân tích timestamp 100 request gần nhất
Owner / due dateFinance Ops Lead / 25-06
StatusOpen, Validated, Rejected, Expired

Assumption hết hạn nếu context thay đổi. “Validated” phải kèm evidence, không chỉ đổi status.

4. Dependency và constraint phải có direction

Ghi “phụ thuộc Finance” là vô dụng. Ghi rõ cái gì cần cái gì, trước thời điểm nào, ai sở hữu và failure response. Với constraint, ghi source/authority, phạm vi, ngày hiệu lực và cách xin exception nếu có.

5. Running case: ShopFlow

Scope của ShopFlow SF-1 theo sáu chiều (§2):

ChiềuIn scopeOut of scope
Outcome/capability8 luồng: browse catalog, create order, payment mock, delivery status, manage stock, receive stock, return, low stock alerttích hợp payment gateway thật, tích hợp đơn vị vận chuyển, loyalty program, multi-shop
Processtừ lúc khách browse catalog đến lúc nhận hàng hoặc returnsourcing supplier, kế toán, báo cáo thuế
Stakeholder/segment1 chủ shop, 2 nhân viên kho, khách hàng của shop (B2C)supplier, bên vận chuyển thứ ba
DataProduct, Customer, Order, OrderItem, Payment, InventoryItem, StockMovement, ReturnRequest (SF-10)customer analytics, recommendation engine data
System/interfaceSpring Boot backend + Vue 3 frontend; in-memory DB cho MVPERP, accounting system, SMS/email gateway
Time/releaseMVP Sprint 1–2: SF-2 catalog + SF-3 order + SF-6 stockSprint 3+: SF-8 return, SF-9 alert

Assumption register cho ShopFlow (§3):

StatementEvidenceImpact nếu saiValidation methodOwnerStatus
Stock database luôn đồng bộ với stock thực tếquan sát 1 buổi: shop nhỏ, ít biến độngnếu sai: SF-11 atomic check không đủ, cần thêm cycle count SF-15kiểm tra 3 lần/ngày trong 1 tuần: DB vs đếm thực tếNhân viên khoOpen
Khách hàng sẵn sàng dùng web thay vì gọi điện/chatinterview 3 khách quen: 2/3 nói “tiện hơn”nếu sai: adoption thấp, vẫn phải duy trì kênh chatsurvey 10 khách sau 2 tuần dùng thửChủ shopOpen
Mock payment đủ cho MVP, không cần integration thậtconstraint từ Epic SF-1nếu sai: không test được flow payment thật → rủi ro khi integrate thật sau nàyN/A (là constraint, không cần validate)Chủ shopAccepted

Constraint có source/authority:

ConstraintSourceAuthority
Không tích hợp payment gateway thật (SF-4 mock)Epic SF-1Chủ shop (quyết định MVP scope)
Không tích hợp đơn vị vận chuyển (SF-5 manual update)Epic SF-1Chủ shop
Authentication đơn giản, chưa có RBACTeam decision (MVP)Tech lead + Chủ shop
Java 21 + Spring Boot 3.3.x + Vue 3Tech stack decisionDeveloper team

Dependency có direction:

ConsumerProviderCần gìTrước thời điểmOwner
SF-4 Payment mockBackend teamAPI endpoint POST /orders/{id}/paymentsSprint 1 planningBackend lead
SF-5 Delivery statusNhân viên khocập nhật trạng thái thủ công sau mỗi lần giaomỗi ngày trong Sprint 2Nhân viên kho
SF-7 Receive stockSupplierphiếu giao hàng (paper) để đối chiếu khi nhậpmỗi lần giao hàngNhân viên kho

Risk/issue:

RiskImpactMitigation
Nhân viên kho không quen dùng web trên điện thoạiSF-5 delivery update + SF-7 receiving bị chậm adoptionprototype mobile-first sớm + training 1 buổi + hỗ trợ tuần đầu
Mock payment không phát hiện được edge case của payment thậtlúc integrate thật phát sinh reworkghi rõ assumption trong SF-4 AC; team aware

6. Anti-patterns

Anti-patternCách sửa
out of scope = “mọi thứ khác”ghi boundary theo process/data/system
assumption không owner/deadlineđưa vào register và ưu tiên theo impact
preference được gọi là constraintyêu cầu source và authority
dependency không directionghi provider, consumer, deliverable, date
scope freeze quá sớm trong discoverydùng scope hypothesis và change rationale

7. Checklist nhanh

References


Chia sẻ bài viết:

Bài trước
Requirements Workshop cho BA
Bài sau
Solution Options và Business Case cho BA