Đánh giá mức sẵn sàng làm Business Analyst
Chấm từng chiều kỹ năng và cho ra hồ sơ — biết mình đứng ở đâu trước.
Làm bài này
Product Management
Nơi luật nghiệp vụ sống: gọi đúng tên service sở hữu feature và nhận ra khi một request chạm nhiều service.
Đăng nhập để đánh dấu kỹ năng và theo dõi tiến độ.
Làm bài Đánh giá Nền tảng Kỹ thuật cho PM/BA — 3 người đã làm. Một lần làm chấm điểm cho tất cả kỹ năng trong nhóm Technical Basics, không chỉ kỹ năng này.
Làm bài đánh giáMonolith = một backend xử lý tất cả trong một codebase, dễ build sớm, khó scale sau. Microservices = tách thành nhiều service nhỏ, mỗi service một trách nhiệm, nói chuyện qua API.
Nhìn một feature và gọi tên component backend sở hữu nó (auth, ví, nhà cung cấp, thông báo); nhận ra request chạm nhiều service và flag là cross-service flow trong spec.
Backend là phần chạy trên máy chủ, nơi chứa toàn bộ luật nghiệp vụ: ai được làm gì, tính tiền ra sao, khi nào đơn hàng chuyển trạng thái. Người dùng không bao giờ nhìn thấy backend — họ chỉ thấy kết quả của nó.
Điều BA hay bỏ sót: backend không phải một khối duy nhất. Nó gồm nhiều phần, mỗi phần lo một chuyện — đăng nhập, thanh toán, ví điểm thưởng, thông báo. Có hai cách các phần đó được sắp xếp:
Monolith: tất cả nằm trong một codebase, deploy một lần. Đi nhanh khi sản phẩm còn sớm; càng đông người sửa càng vướng nhau.
Microservices: mỗi phần là một service riêng, deploy riêng, nói chuyện với nhau qua API. Mỗi đội tự chủ hơn, nhưng mỗi lần gọi nhau là một chỗ có thể chậm hoặc lỗi.
Hệ quả quan trọng nhất với BA/PO: khi bạn gọi đúng tên phần sở hữu feature, ticket đến đúng đội ngay từ đầu. Và khi một yêu cầu chạm nhiều service, bạn biết rằng rủi ro lớn nhất không nằm trong từng service — mà nằm ở chỗ chúng phối hợp với nhau.
| Khái niệm | Nghĩa là gì | Dấu hiệu bạn đã hiểu |
|---|---|---|
| Service | Một phần backend lo một trách nhiệm rõ ràng. | Bạn nói được feature này thuộc service nào trước khi tạo ticket. |
| Nguồn sự thật | Service nào giữ dữ liệu gốc của một thứ. | Bạn biết số dư điểm thưởng lấy từ service điểm, không phải từ màn hình đơn hàng. |
| Cross-service flow | Một hành động của người dùng chạm từ hai service trở lên. | Bạn ghi chú điều này trong spec và mời đủ các bên vào refinement. |
| Queue (hàng đợi) | Việc được xếp hàng để xử lý sau thay vì gọi ngay. | Bạn hiểu vì sao thông báo đến sau vài giây là bình thường. |
| Retry | Thử lại tự động khi một bước thất bại. | Bạn hỏi "bước này có tự thử lại không, mấy lần?" |
| Đối soát | Rà lại định kỳ để tìm những ca bị lệch giữa các service. | Bạn yêu cầu có báo cáo cho đội vận hành, không chỉ có log kỹ thuật. |
Tình huống: chăm sóc khách hàng chuyển sang một phản ánh: "đăng nhập mất gần 8 giây". Bạn chuẩn bị tạo ticket.
Backend làm những gì khi một người bấm Đăng nhập:
Một câu hỏi tách được vấn đề: "8 giây đó nằm ở bước kiểm tra mật khẩu, hay ở bước chờ nhà mạng gửi SMS?" Nếu là bước 4 thì đây không phải lỗi code của mình mà là độ trễ của nhà cung cấp SMS — và cách xử lý hoàn toàn khác: đổi nhà cung cấp, hoặc đổi trải nghiệm để người dùng không phải ngồi chờ màn hình trắng.
Học được: backend là nhiều bước nối nhau. Báo bug kèm bước nghi ngờ giúp tiết kiệm hàng ngày điều tra so với báo "đăng nhập chậm".
Tình huống: yêu cầu từ marketing: "Khách thanh toán xong thì cộng ngay 1% giá trị đơn vào ví điểm thưởng."
Nó chạm hai service: service thanh toán (biết đơn đã trả tiền hay chưa) và service điểm thưởng (giữ số dư điểm). Không service nào tự làm được cả hai việc.
Dòng cần viết trong ticket:
da_thanh_toan, service điểm thưởng cộng 1% giá trị đơn (làm tròn xuống) vào ví điểm của người dùng."Học được: gọi tên service trong ticket làm lộ ra ngay rằng có hai đội liên quan. Cái giá của việc không gọi tên là một sprint bị lệch vì mỗi đội tưởng bên kia làm.
Tình huống: yêu cầu đầy đủ hoá ra là ba bước nối tiếp: (1) thanh toán thành công, (2) cộng điểm vào ví, (3) gửi thông báo "Bạn vừa nhận 4.500 điểm".
Cái bẫy: nhiều BA viết ba bước này như thể chúng luôn cùng thành công hoặc cùng thất bại. Thực tế chúng là ba service khác nhau, và ba kết cục lệch nhau đều xảy ra hằng ngày:
Những dòng phải có trong spec:
Học được: với luồng chạm nhiều service, rủi ro chính không phải code của từng service mà là điều phối giữa chúng. Việc của BA là viết ra trạng thái "thành công một phần" — nếu spec không có nó, sản phẩm vẫn sẽ rơi vào nó, chỉ là không ai đã quyết định trước sẽ xử lý ra sao.
Với mỗi feature có xử lý phía máy chủ, ticket của bạn phải trả lời được bốn câu:
Chấm từng chiều kỹ năng và cho ra hồ sơ — biết mình đứng ở đâu trước.
Làm bài nàyHọc kỹ năng này ở đâu?
Có 2 khóa dạy đúng phần này, miễn phí và bằng tiếng Việt.
Thảo luận & tài liệu thêm 0
Chia sẻ kinh nghiệm, đặt câu hỏi, hoặc đính kèm tài liệu/YouTube giúp người khác học kỹ năng này.