SU02 · Phát triển Phần mềm Số 02 · ISC · FPT Telecom

Problem Bank — 12 đề Architecture Dojo

Mỗi đề gồm bối cảnh nghiệp vụ, ràng buộc định lượng, thông tin cố tình bỏ trống, trọng tâm chấm, đáp án tham chiếu cho panel và bộ câu hỏi phản biện riêng.

Tài liệu 05 / 1012 đề · 3 thángBản dành cho panelBản v1.0
← Bộ tài liệu SA · SU02

00Cách dùng Problem Bank

Quy trình một tuần

  • Thứ 2: phát đề — chỉ phần Bối cảnhRàng buộc. Không phát trọng tâm chấm và đáp án tham chiếu.
  • Trong tuần: 2–3 giờ, cá nhân hoặc cặp, vẽ tay trên A3, không AI, không internet.
  • Thứ 6: 2 người trình bày 15 phút, panel phản biện, 20 phút rút nguyên tắc chung.
  • Sau buổi: người trình bày viết 1 ADR + 1 trang đối chiếu AI review.

Panel chuẩn bị 30 phút trước buổi

  • Đọc phần Đáp án tham chiếuCâu hỏi phản biện của đề tuần đó
  • Đọc bộ Standard Probing Questions trong Facilitation Guide
  • Không cần biết đáp án đúng — cần biết câu hỏi đúng
Đáp án tham chiếu không phải đáp án đúng. Đó là hai hướng hợp lý để panel đối chiếu. Một thiết kế khác hai hướng này vẫn có thể tốt hơn — điều quyết định là chất lượng lập luận, không phải sự trùng khớp.

MAPBản đồ 12 đề

TênThángTrụ / mứcMục tiêu học tậpKỹ năng rèn
P01Bounded context cho B2B Order11 · SA1Đặt ranh giới theo nghiệp vụ và gắn mức phân rã với năng lực team.Phân rã, đặt ranh giới
P02API contract giữa 3 hệ thống13, 6 · SA1Xác định source of truth và thiết kế contract chịu được release lệch nhịp.Contract, versioning, đàm phán
P03Tách service đầu tiên khỏi monolith11, 5 · SA1Chọn thứ tự tách có kiểm soát, nhận diện rủi ro migration và không tách theo phong trào.Thứ tự tách, rủi ro
P04Vẽ C4 hệ thống thật của team mình11, 6 · SA1Chuyển hệ thống thật thành mô hình đủ rõ để team cùng hiểu và phản biện.Mô hình hoá thực tế
P05Campaign engine — đỉnh 50×22, 3 · SA2Thiết kế theo peak thay vì average và bảo vệ tính đúng khi retry hoặc gửi trùng.Napkin math, idempotency
P06Customer 360 — nhất quán 4 nguồn23, 2 · SA2Chọn mức nhất quán phù hợp và giải thích độ trễ giữa các nguồn dữ liệu.Eventual consistency, CDC
P07Dependency ngoài chết 2 giờ22, 5 · SA2Thiết kế degraded mode và giới hạn tác động khi dependency lỗi kéo dài.Resilience patterns
P08Curveball — ngân sách giảm 50%25, 6 · SA2Thay đổi quyết định khi ràng buộc đổi và nói rõ điều gì được hy sinh.Ra quyết định tại chỗ
P09B2B CRM — dữ liệu lệch nặng32, 3 · SA2Nhận diện phân phối lệch và tránh chọn partition key tạo hot partition.Hot partition, tail latency
P10Build vs Buy — CDP34, 5 · SA2So sánh tổng chi phí sở hữu, lock-in, năng lực team và khả năng đảo ngược.TCO, lock-in
P11Tích hợp LLM vào luồng nghiệp vụ34, 3 · SA2Đặt ranh giới sử dụng AI trong ràng buộc dữ liệu, chi phí, độ tin cậy và kiểm soát đầu ra.Kiến trúc AI có ràng buộc dữ liệu
P12Capstone — kiến trúc lại hệ thống thật31–6 · SA2Tổng hợp các trụ để bảo vệ một lộ trình kiến trúc trước stakeholder thật.Tổng hợp, bảo vệ trước stakeholder

P01 · Tháng 1 · Trụ 1Bounded context cho hệ thống Order B2B

Bối cảnh nghiệp vụ

Một hệ thống quản lý đơn hàng doanh nghiệp hiện là một ứng dụng duy nhất, xử lý toàn bộ: báo giá, hợp đồng, đơn hàng, giao hàng, đối soát công nợ, và hồ sơ khách hàng. Đội phát triển 12 người, mỗi lần release phải deploy toàn bộ và mất 4 giờ regression.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết chu kỳ thay đổi của từng bộ phận, không cho biết bộ phận nào đang chặn tiến độ nhiều nhất, không cho biết dữ liệu nào đang được chia sẻ giữa các phần. Người giải phải hỏi.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Hướng A — modular monolithGiữ một deployable, tách module theo context với ranh giới rõ trong code, mỗi module có schema riêng, giao tiếp qua interface nội bộ. Rẻ, phù hợp 12 người, giải quyết được vấn đề nhịp release nếu bổ sung test theo module. Đánh đổi: vẫn deploy chung.
Hướng B — tách 2 serviceTách phần Tài chính/Công nợ ra riêng vì nhịp thay đổi và yêu cầu tuân thủ khác hẳn. Giữ phần còn lại. Đánh đổi: cần integration contract, cần xử lý nhất quán giữa đơn hàng và công nợ, tăng chi phí vận hành.
Cảnh báoThiết kế tách 6–7 service cho một team 12 người là dấu hiệu chưa gắn kiến trúc với năng lực tổ chức — Conway's Law ngược.

Câu hỏi phản biện dành riêng cho đề này

  1. "Khách hàng" trong module kinh doanh và trong module kế toán có phải cùng một thứ không?
  2. Nếu chỉ được tách đúng một phần, anh tách phần nào? Vì sao phần đó?
  3. 12 người vận hành bao nhiêu service là hợp lý? Con số của anh dựa trên gì?

P02 · Tháng 1 · Trụ 3, 6API contract giữa ba hệ thống khác chủ sở hữu

Bối cảnh nghiệp vụ

Ba hệ thống thuộc ba team khác nhau cần trao đổi thông tin trạng thái thuê bao: hệ thống bán hàng, hệ thống kỹ thuật, và hệ thống chăm sóc khách hàng. Hiện mỗi cặp tự gọi API trực tiếp của nhau, tổng cộng 6 điểm tích hợp, mỗi lần một bên đổi field là hai bên kia hỏng.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết bên nào là nguồn sự thật của trạng thái thuê bao, không cho biết độ trễ chấp nhận được, không cho biết có yêu cầu lịch sử thay đổi không.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Hướng A — contract-first, point-to-pointGiữ gọi trực tiếp nhưng chuẩn hoá: mỗi API có schema versioned, quy tắc chỉ thêm field không xoá, consumer-driven contract test trong CI. Rẻ, không thêm hạ tầng. Đánh đổi: số điểm tích hợp vẫn tăng theo bình phương số hệ thống.
Hướng B — event-driven qua brokerHệ thống nguồn phát event thay đổi trạng thái, hai bên còn lại subscribe. Giảm coupling thời gian, có sẵn lịch sử. Đánh đổi: phải xử lý ordering và idempotency, cần vận hành broker, debug khó hơn.
Điểm chốtCả hai hướng đều sai nếu chưa xác định được nguồn sự thật. Không có owner rõ ràng thì không có contract nào cứu được.

Câu hỏi phản biện dành riêng cho đề này

  1. Ai là nguồn sự thật của trạng thái thuê bao? Nếu hai hệ thống nói khác nhau thì tin ai?
  2. Bên A đổi schema hôm nay, bên B deploy sau 3 tuần — điều gì xảy ra trong 3 tuần đó?
  3. Thêm hệ thống thứ tư thì thiết kế của anh phải sửa bao nhiêu chỗ?

P03 · Tháng 1 · Trụ 1, 5Tách service đầu tiên khỏi monolith

Bối cảnh nghiệp vụ

Một hệ thống nội bộ chạy 6 năm, khoảng 400.000 dòng code, một database duy nhất 180 bảng. Hệ thống đang chạy 24/7, không được phép downtime quá 15 phút. Ban lãnh đạo đồng ý đầu tư tách dần, nhưng yêu cầu thấy kết quả trong 3 tháng đầu.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết phần nào thay đổi nhiều nhất, phần nào ít phụ thuộc nhất, phần nào đang gây sự cố nhiều nhất. Người giải phải hỏi để chọn được ứng viên tách đầu tiên.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Hướng A — tách phần rìa, ít phụ thuộcChọn module đọc nhiều ghi ít, ít liên quan dữ liệu lõi (ví dụ báo cáo, thông báo). Rủi ro thấp, chứng minh được quy trình tách. Đánh đổi: giá trị nghiệp vụ thấp, dễ bị đánh giá là không đáng đầu tư tiếp.
Hướng B — tách phần đau nhấtChọn module thay đổi nhiều nhất và gây sự cố nhiều nhất. Giá trị cao, thuyết phục được lãnh đạo đầu tư tiếp. Đánh đổi: rủi ro cao ở lần đầu, nếu hỏng thì cả chương trình bị dừng.
Chi tiết panel nên hỏi kỹDữ liệu: tách service nhưng vẫn dùng chung database là nửa vời — phải hỏi kế hoạch tách schema, cơ chế đồng bộ trong giai đoạn chuyển tiếp, và cách xử lý transaction xuyên ranh giới.

Câu hỏi phản biện dành riêng cho đề này

  1. Nếu tách xong mà vẫn dùng chung database thì anh đã đạt được gì?
  2. Trong 3 tháng, giữa "chứng minh quy trình an toàn" và "giải quyết điểm đau lớn nhất", anh chọn gì và vì sao?
  3. Lần chuyển đổi thất bại lúc 2 giờ sáng — kế hoạch quay lui của anh là gì?

P04 · Tháng 1 · Trụ 1, 6Vẽ C4 cho hệ thống thật mà team mình đang làm

Bối cảnh nghiệp vụ

Không phải bài giả lập. Mỗi người vẽ C4 Level 1 và Level 2 cho chính hệ thống mình đang phát triển, kèm một trang mô tả ba điểm yếu kiến trúc mà mình nhìn thấy.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không có — đây là bài kiểm tra hiểu biết về hệ thống của chính mình. Kết quả thường gây bất ngờ: nhiều người không vẽ được hệ thống mình làm hàng ngày.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Không có đáp án tham chiếuPanel so sánh bản vẽ của các thành viên cùng team với nhau. Nếu hai người cùng team vẽ ra hai hệ thống khác nhau — đó là phát hiện quan trọng nhất của buổi này, và là dữ liệu thật về mức độ chia sẻ hiểu biết kiến trúc trong team.
Kết quả phụ có giá trịBộ bản vẽ này trở thành tài sản của phòng: đầu vào cho Knowledge Base và cho onboarding người mới.

Câu hỏi phản biện dành riêng cho đề này

  1. Ai là người dùng thật của hệ thống này? Anh đã nói chuyện với họ lần gần nhất khi nào?
  2. Thành phần nào trong hình sẽ phải sửa nếu yêu cầu nghiệp vụ lớn nhất năm sau xảy ra?
  3. Ba điểm yếu anh nêu, cái nào sẽ gây sự cố production trước?

P05 · Tháng 2 · Trụ 2, 3Campaign engine — 5 triệu thông báo/ngày, đỉnh dồn 30 phút

Bối cảnh nghiệp vụ

Bộ phận marketing cần hệ thống gửi thông báo cá nhân hoá tới khách hàng qua nhiều kênh (SMS, push, email, Zalo OA). Marketing tự cấu hình chiến dịch, chọn tệp khách hàng và thời điểm gửi. Hệ thống phải tracking mở/click và tuyệt đối không gửi trùng.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết mức chấp nhận được của việc gửi thiếu, không cho biết có yêu cầu gửi đúng giờ tuyệt đối hay được phép trễ, không cho biết ngân sách hạ tầng.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Napkin math đúngTrung bình ≈ 58/s. Đỉnh: 3 triệu / 1.800 s ≈ 1.700/s — gấp 34× trung bình. Nhà cung cấp SMS chỉ nhận 500/s → nút thắt cứng nằm ngoài hệ thống. Nhận ra điều này là chìa khoá của cả bài.
Hướng A — hàng đợi + rate limiterSinh danh sách gửi trước, đẩy vào queue, worker gửi theo tốc độ nhà cung cấp cho phép. Đỉnh được hấp thụ bằng hàng đợi, chấp nhận thời gian gửi kéo dài. Cần idempotency key = hash(campaign_id + customer_id + kênh). Đánh đổi: không gửi đúng giờ tuyệt đối.
Hướng B — tiền xử lý theo lôChuẩn bị sẵn toàn bộ nội dung trước giờ gửi, lưu dạng đã cá nhân hoá, giờ G chỉ việc bắn. Giảm tải tính toán lúc đỉnh. Đánh đổi: dữ liệu có thể cũ tại thời điểm gửi, tốn dung lượng lưu tạm.
TrackingSự kiện mở/click là luồng ghi lớn hơn luồng gửi (mỗi thông báo có thể sinh nhiều sự kiện). Người giải bỏ qua điều này là thiếu sót quan trọng — cần tách luồng ghi sự kiện và tổng hợp theo lô.

Câu hỏi phản biện dành riêng cho đề này

  1. Đỉnh gấp bao nhiêu lần trung bình? Con số đó lấy từ đâu?
  2. Nhà cung cấp chỉ nhận 500/s trong khi anh cần 1.700/s — hệ thống của anh phản ứng thế nào?
  3. Worker chết giữa chừng sau khi đã gửi nhưng chưa kịp ghi nhận — khách hàng có bị gửi lại không?
  4. Luồng ghi sự kiện tracking lớn hơn hay nhỏ hơn luồng gửi?

P06 · Tháng 2 · Trụ 3, 2Customer 360 — hợp nhất hồ sơ từ bốn nguồn

Bối cảnh nghiệp vụ

Cần xây hồ sơ khách hàng hợp nhất từ bốn hệ thống nguồn: hệ thống thuê bao, hệ thống thanh toán, hệ thống chăm sóc khách hàng, và dữ liệu tương tác marketing. Bộ phận marketing cần truy vấn phân khúc (ví dụ: khách hàng dùng gói X, có khiếu nại trong 30 ngày, chưa mở email 3 chiến dịch gần nhất) và nhận kết quả trong vài giây.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết tỉ lệ dữ liệu khớp được giữa các nguồn, không cho biết nguồn nào ưu tiên khi mâu thuẫn, không cho biết có yêu cầu xoá dữ liệu theo quy định không.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Hướng A — CDC + kho hợp nhấtBắt thay đổi từ bốn nguồn qua CDC, đẩy vào luồng sự kiện, xây hồ sơ hợp nhất trong kho dữ liệu tối ưu cho đọc. Truy vấn phân khúc chạy trên kho này. Đánh đổi: trễ vài phút, cần vận hành pipeline, cần xử lý sự kiện đến sai thứ tự.
Hướng B — truy vấn liên nguồnKhông sao chép dữ liệu, truy vấn trực tiếp bốn nguồn khi cần. Luôn mới nhất. Đánh đổi: không đạt được yêu cầu 5 giây trên 8 triệu bản ghi với join xuyên hệ thống — hướng này thực tế không khả thi, nhưng cần cho người giải tự nhận ra thay vì được nói trước.
Điểm phân loại SA1 vs SA2SA1 sẽ vẽ ngay kho dữ liệu. SA2 sẽ dừng lại ở bài toán khớp định danh trước: nếu 30% khách hàng không khớp được giữa các nguồn thì hồ sơ hợp nhất sai, và không kiến trúc nào cứu được.

Câu hỏi phản biện dành riêng cho đề này

  1. Bốn nguồn nói khác nhau về địa chỉ khách hàng — anh tin nguồn nào? Quy tắc đó ai đặt?
  2. Tỉ lệ khớp định danh giữa các nguồn là bao nhiêu? Nếu chỉ 70% thì sao?
  3. Một sự kiện từ nguồn A đến sau sự kiện cũ hơn từ nguồn B — hồ sơ hợp nhất ra kết quả gì?
  4. Marketing chạy một truy vấn phân khúc nặng lúc 9 giờ sáng — nó ảnh hưởng gì tới hệ thống nguồn?

P07 · Tháng 2 · Trụ 2, 5Dependency bên ngoài chết hai giờ

Bối cảnh nghiệp vụ

Hệ thống đăng ký dịch vụ của bạn phụ thuộc vào một API xác thực thông tin khách hàng do đơn vị bên ngoài cung cấp. API này nằm ngoài tầm kiểm soát, SLA cam kết 99% (tức khoảng 7 giờ downtime/tháng). Hôm qua nó chết 2 giờ và toàn bộ luồng đăng ký của bạn dừng, đồng thời hệ thống chăm sóc khách hàng cũng chậm theo dù không liên quan.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết xác thực bắt buộc phải xong trước khi tạo đơn hay có thể xác thực sau, không cho biết chi phí của một đơn sai, không cho biết hệ thống chăm sóc khách hàng dùng chung tài nguyên gì.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Chẩn đoán đúngNguyên nhân hệ thống chăm sóc khách hàng chậm theo là cascading failure qua tài nguyên dùng chung — connection pool hoặc thread pool chung bị luồng đăng ký giữ hết. Người giải không nhận ra điều này thì chưa đạt SA2 ở trụ 2.
Hướng A — resilience thuần kỹ thuậtTimeout 1 s, circuit breaker mở sau N lỗi liên tiếp, bulkhead tách pool riêng cho lời gọi ra ngoài, retry có jitter và giới hạn. Khi circuit mở thì trả lỗi rõ ràng cho người dùng. Đánh đổi: vẫn không đăng ký được, chỉ là hỏng có kiểm soát.
Hướng B — đổi mô hình nghiệp vụNhận đăng ký trước ở trạng thái chờ xác thực, xác thực bất đồng bộ khi API sống lại, thông báo kết quả sau. Giữ được doanh thu trong lúc dependency chết. Đánh đổi: cần quy trình xử lý đơn không xác thực được, cần đàm phán với nghiệp vụ.
Ghi chúHướng B thường tốt hơn nhưng cần SA dám đặt lại câu hỏi nghiệp vụ thay vì chỉ giải bài toán kỹ thuật được giao. Đây là dấu hiệu SA2–SA3.

Câu hỏi phản biện dành riêng cho đề này

  1. Vì sao hệ thống chăm sóc khách hàng chậm theo dù không gọi API đó?
  2. Timeout của anh là bao nhiêu? Con số đó dựa trên gì?
  3. Nếu retry, anh retry mấy lần? 20.000 request cùng retry một lúc thì điều gì xảy ra với API đang hấp hối?
  4. Xác thực có bắt buộc phải đồng bộ không? Ai là người có quyền trả lời câu hỏi đó?

P08 · Tháng 2 · Trụ 5, 6Curveball — ràng buộc thay đổi giữa buổi

Bối cảnh nghiệp vụ

Đề được phát như một bài thiết kế bình thường (panel chọn một đề từ P05–P07). Điểm khác biệt: giữa buổi trình bày, panel công bố một ràng buộc mới và người trình bày phải phản ứng ngay tại chỗ trong 10 phút, vẽ lại phần bị ảnh hưởng.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Toàn bộ ràng buộc mới là thông tin bị giấu có chủ đích. Bài này kiểm tra phản ứng, không kiểm tra chuẩn bị.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Điều panel tìm kiếmKhông phải phương án mới hoàn hảo. Mà là: người trình bày có phân biệt được quyết định nào đảo ngược được và quyết định nào không, và có ưu tiên giữ những thứ khó đảo ngược không.
Dấu hiệu SA2Trả lời theo cấu trúc: "Ràng buộc này ảnh hưởng tới X và Y. X tôi giữ nguyên vì... Y tôi phải bỏ, hệ quả là... Đổi lại tôi cần nghiệp vụ chấp nhận điều Z."
Dấu hiệu chưa đạtHoặc bảo vệ cứng thiết kế cũ, hoặc vứt bỏ toàn bộ vẽ lại từ đầu. Cả hai đều cho thấy chưa hiểu phần nào của thiết kế mang giá trị cốt lõi.

Câu hỏi phản biện dành riêng cho đề này

  1. Phần nào trong thiết kế của anh vẫn đúng với ràng buộc mới?
  2. Anh phải bỏ cái gì? Ai là người chịu hậu quả của việc bỏ đó?
  3. Nếu 3 tháng nữa ràng buộc này được gỡ bỏ, anh có quay lại thiết kế cũ được không? Chi phí bao nhiêu?

P09 · Tháng 3 · Trụ 2, 3B2B CRM — dữ liệu lệch nặng

Bối cảnh nghiệp vụ

Hệ thống CRM cho khách hàng doanh nghiệp. Phân tích dữ liệu cho thấy 8% khách hàng lớn tạo ra 76% tổng số giao dịch, và khách hàng lớn nhất một mình chiếm 12%. Hệ thống hiện chạy chậm bất thường với đúng nhóm khách hàng lớn — cũng chính là nhóm quan trọng nhất về doanh thu.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết truy vấn phổ biến nhất là gì, không cho biết dữ liệu cũ bao lâu thì ít được truy cập, không cho biết có yêu cầu truy vấn xuyên khách hàng không.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Chẩn đoánPartition theo customer_id là lựa chọn tự nhiên nhưng tạo hot partition nghiêm trọng: một shard chứa 12% dữ liệu. Đây là ví dụ kinh điển và là lý do đề này nằm ở tháng 3.
Hướng A — composite partition keyPartition theo (customer_id, khoảng thời gian). Khách hàng lớn được trải đều trên nhiều partition theo tháng/quý. Truy vấn lịch sử gần vẫn nhanh. Đánh đổi: truy vấn toàn bộ lịch sử một khách hàng phải quét nhiều partition.
Hướng B — tách tầng theo quy mô khách hàngNhóm khách hàng lớn có kho riêng, tài nguyên riêng, thậm chí mô hình dữ liệu riêng. Cách ly hoàn toàn ảnh hưởng. Đánh đổi: hai đường code, phải xử lý việc khách hàng chuyển nhóm.
Bài toán báo cáoBáo cáo đêm 6 giờ nên tách hẳn khỏi hệ thống giao dịch — đây là bài toán phân tích, không phải bài toán vận hành. Người giải gộp hai bài toán vào một thiết kế là dấu hiệu chưa phân biệt được OLTP và OLAP.

Câu hỏi phản biện dành riêng cho đề này

  1. Mười khách hàng lớn nhất chiếm bao nhiêu phần trăm dữ liệu? Anh đã hỏi con số đó chưa?
  2. Partition key anh chọn — khách hàng lớn nhất rơi vào bao nhiêu partition?
  3. Báo cáo đêm và truy vấn 2 giây có nên chạy trên cùng một kho dữ liệu không?
  4. Năm sau tăng 40%, thiết kế của anh còn đứng được không? Chỗ nào gãy trước?

P10 · Tháng 3 · Trụ 4, 5Build vs Buy — nền tảng dữ liệu khách hàng

Bối cảnh nghiệp vụ

Ban lãnh đạo đang cân nhắc: tự xây nền tảng dữ liệu khách hàng (CDP) hay mua giải pháp thương mại. Bạn được yêu cầu đưa ra khuyến nghị kèm phân tích chi phí ba năm và trình bày trước ban lãnh đạo trong 10 phút.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết chi phí thuê bao cụ thể, không cho biết mức lương trung bình, không cho biết yêu cầu tính năng nào là bắt buộc. Người giải phải tự đặt giả định và nói rõ đó là giả định.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Khung phân tích tối thiểuBa năm, bốn khoản: chi phí xây dựng ban đầu · chi phí vận hành hàng năm · chi phí cơ hội (5–6 người này không làm việc khác) · chi phí thoát ra. Thiếu khoản thứ ba và thứ tư là dấu hiệu SA1.
Hướng A — muaNhanh có giá trị, rủi ro triển khai thấp, chi phí dự đoán được. Đánh đổi: lock-in, chi phí tăng theo quy mô dữ liệu, có thể vướng ràng buộc lưu trữ trong nước, và không xây được năng lực nội bộ.
Hướng B — xâyKiểm soát hoàn toàn, phù hợp ràng buộc dữ liệu, xây được năng lực. Đánh đổi: 12 tháng chưa có giá trị, rủi ro nhân sự nghỉ việc, và chi phí thật thường gấp 1,5–2 lần ước tính ban đầu.
Hướng C — thường bị bỏ quaMua phần lõi, tự xây phần đặc thù. Hoặc: xây tối giản trước để học bài toán, quyết định mua sau 6 tháng khi đã hiểu rõ nhu cầu. Người giải nêu được hướng thứ ba là dấu hiệu SA2–SA3.

Câu hỏi phản biện dành riêng cho đề này

  1. Con số nào trong phân tích của anh là dữ kiện, con số nào là giả định của anh?
  2. Nếu sau 2 năm muốn đổi nhà cung cấp, chi phí chuyển đổi là bao nhiêu?
  3. 5 người xây CDP trong 12 tháng — nếu không làm việc này thì họ tạo ra giá trị gì khác?
  4. Anh trình bày 10 phút trước ban lãnh đạo: câu đầu tiên anh nói là gì?

P11 · Tháng 3 · Trụ 4, 3Tích hợp LLM vào một luồng nghiệp vụ có ràng buộc dữ liệu

Bối cảnh nghiệp vụ

Bộ phận chăm sóc khách hàng muốn dùng LLM để tự động tóm tắt lịch sử tương tác và gợi ý câu trả lời cho nhân viên tổng đài. Dữ liệu đầu vào chứa thông tin cá nhân khách hàng. Kỳ vọng: giảm thời gian xử lý mỗi cuộc gọi.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Không cho biết tỉ lệ gợi ý sai chấp nhận được, không cho biết ai chịu trách nhiệm khi gợi ý sai gây thiệt hại, không cho biết có yêu cầu ghi vết (audit trail) không.

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Ràng buộc quyết định kiến trúcDữ liệu cá nhân không ra khỏi lãnh thổ → hoặc mô hình chạy trong nước, hoặc phải khử định danh trước khi gửi. Đây là quyết định đầu tiên, mọi thứ khác phụ thuộc vào nó. Người giải bàn kiến trúc RAG trước khi giải quyết ràng buộc này là đi sai thứ tự.
Hướng A — RAG với mô hình trong nướcLịch sử tương tác được index, truy xuất ngữ cảnh liên quan, mô hình sinh tóm tắt. Đáp ứng ràng buộc dữ liệu. Đánh đổi: chất lượng mô hình trong nước thấp hơn, cần vận hành hạ tầng.
Hướng B — khử định danh + mô hình bên ngoàiThay thông tin cá nhân bằng mã trước khi gửi, ghép lại sau. Chất lượng tốt hơn. Đánh đổi: rủi ro rò rỉ nếu khử định danh không kín, độ trễ tăng, phụ thuộc bên ngoài.
Điểm ít người nghĩ tớiKhông phải cuộc gọi nào cũng cần LLM. Tóm tắt theo mẫu cho các trường hợp phổ biến rẻ hơn nhiều lần và nhanh hơn. Dùng LLM cho phần đuôi phức tạp. Nhận ra điều này là dấu hiệu trụ 4 ở mức SA2–SA3.

Câu hỏi phản biện dành riêng cho đề này

  1. Ràng buộc dữ liệu cá nhân ảnh hưởng thế nào tới lựa chọn mô hình? Anh giải quyết nó ở tầng nào?
  2. 15.000 cuộc/ngày × chi phí token — một tháng hết bao nhiêu? Con số đó có chấp nhận được không?
  3. Khi LLM gợi ý sai và nhân viên làm theo, ai chịu trách nhiệm? Thiết kế của anh có ghi vết không?
  4. Bao nhiêu phần trăm cuộc gọi thật sự cần LLM?

P12 · Tháng 3 · Trụ Toàn bộCapstone — kiến trúc lại một hệ thống thật của SU02

Bối cảnh nghiệp vụ

Bài cuối khoá. Panel chọn một hệ thống thật trong portfolio của phòng, kèm PM chủ dự án tham gia buổi với vai trò stakeholder phản biện. Nhóm 2–3 người có 2 tuần để đưa ra kiến trúc mục tiêu và lộ trình chuyển đổi.

Ràng buộc định lượng (phát cho người giải)

Thông tin cố tình bỏ trống test chủ động hỏi

Nhóm phải tự làm việc với PM chủ dự án để lấy thông tin — đây là một phần của bài kiểm tra (trụ 6).

Trọng tâm chấm

Đáp án tham chiếu cho panel

HướngNội dung & đánh đổi
Vai trò của PM trong buổi nàyPM phản biện từ góc nghiệp vụ và nguồn lực: "cái này khách hàng có cần không", "team tôi làm được trong bao lâu". Đây là loại phản biện panel kỹ thuật không tạo ra được, và là phần giá trị nhất của Capstone.
Kết quả có thể dùng thậtNếu đề xuất tốt, đưa vào kế hoạch quý sau của dự án. Điều này biến Dojo từ bài tập thành đầu vào thật cho portfolio — và là lý do mạnh nhất để duy trì chương trình sang chu kỳ tiếp theo.

Câu hỏi phản biện dành riêng cho đề này

  1. Nếu chỉ được làm một phần trong lộ trình của anh trong quý tới, phần nào?
  2. Con số ước tính nguồn lực của anh dựa trên gì?
  3. PM nói không có người — kiến trúc của anh thay đổi thế nào?
  4. Điều gì trong đề xuất này anh chắc chắn nhất, và điều gì anh ít chắc nhất?