Context Diagram
Sơ đồ một trang đặt hệ thống ở giữa và các bên trao đổi dữ liệu với nó xung quanh. Vẽ trong mười lăm phút, dùng để chốt ranh giới phạm vi và liệt kê danh sách tích hợp.
Định nghĩa
Một trang giấy, vẽ trong mười lăm phút, và thường là thứ duy nhất sếp thật sự nhìn. Ở giữa là hệ thống bạn đang làm, xung quanh là những ai và cái gì trao đổi dữ liệu với nó. Hết.
Context diagram vẽ ranh giới: cái gì nằm trong hệ thống, ai đứng ngoài, dữ liệu nào đi qua ranh giới đó.
Vẽ thế nào cho đúng
Một hình duy nhất ở giữa, đại diện toàn bộ hệ thống. Xung quanh là các external entity: người dùng theo vai trò, hệ thống khác, tổ chức bên ngoài. Nối bằng các mũi tên có nhãn là tên dữ liệu (danh từ), ví dụ "danh sách đơn hàng đã xác nhận", chứ không phải "gửi đơn hàng".
Ba thứ tuyệt đối không có ở sơ đồ này: xử lý bên trong, kho dữ liệu, và thứ tự các bước. Có mấy thứ đó là bạn đang vẽ level 1 rồi.
Vì sao nên vẽ nó đầu tiên
- Chốt phạm vi bằng hình, khách nhìn cái là hiểu, không cần đọc mười trang BRD.
- Lộ ra những hệ thống bên ngoài chưa ai tính vào effort. Đây là phần đắt nhất của mọi dự án tích hợp.
- Là đầu vào trực tiếp cho danh sách interface, từ đó ra danh sách API cần bàn với đội bên kia.
- Là bằng chứng khi có tranh luận về scope sau này: cái gì không có trên sơ đồ đã duyệt thì không nằm trong hợp đồng.
Ví dụ thực tế
Bản đề xuất ghi ba interface. Ước lượng, báo giá, ký hợp đồng, tất cả dựa trên con số ba đó.
Buổi kick-off, ngồi vẽ context diagram cho hệ thống quản lý đơn hàng mới của một công ty phân phối hàng tiêu dùng, ra bảy thực thể ngoài: nhân viên sale dùng app, kế toán, ERP tài chính, cổng vận chuyển, tổng đài, hệ thống kho của đối tác 3PL, và cổng gửi OTP. Bảy chứ không phải ba. Riêng phần kho của đối tác 3PL sau này chiếm gần một phần tư effort tích hợp, vì họ chỉ trao đổi bằng file đặt lịch chứ không có API.
Phát hiện điều đó ở tuần đầu thì còn thương lượng được. Phát hiện ở tháng thứ ba thì chỉ còn cách xin gia hạn.
Lỗi hay gặp
- Vẽ luôn cả xử lý bên trong cho "đầy đủ". Vậy là mất tác dụng của một sơ đồ ranh giới.
- Nhãn luồng chung chung kiểu "dữ liệu", "thông tin". Không nói lên gì cả.
- Quên các bên chỉ nhận đầu ra: bộ phận báo cáo, cơ quan quản lý, đối tác nhận file định kỳ.
- Vẽ cả tổ chức làm một khối trong khi thực tế có ba vai trò dùng hệ thống theo ba cách khác nhau.
Dùng lại nó suốt dự án
Đừng vẽ một lần rồi cất. Mỗi lần có CR thêm tích hợp, cập nhật context diagram trước, rồi mới nói chuyện thời gian và tiền. Một mũi tên mới trên sơ đồ luôn kèm theo một cuộc họp với bên thứ ba, một tài khoản test, và một đợt kiểm thử riêng. Chỉ vào sơ đồ nói chuyện đó dễ hơn nhiều so với giải thích bằng lời.
