Hệ thống & web app doanh nghiệp

Hãy thử một bài tập 5 phút: liệt kê tất cả những ai sẽ chạm vào website sắp làm của bạn — và với mỗi người, viết một câu họ vào đó để làm gì. Hàng nào không viết nổi câu đó, dự án sẽ phình đúng ở hàng đó.

Đó là cách một hệ thống website bắt đầu đúng: không phải bằng mẫu giao diện, mà bằng bản đồ — gồm những phần nào, cho ai, dùng chung những gì. Xây dựng hệ thống website là việc dựng nhiều mặt tiền khác nhau (trang cho khách, khu vực cho đối tác, phần quản trị nội bộ) trên một nền chung duy nhất về tài khoản, dữ liệu và phân quyền, để hệ thống lớn lên bằng cách thêm phần, không bằng cách thêm một website rời nữa.

Xem thêm giải pháp
Hãy thử một bài tập 5 phút: liệt kê tất cả những ai sẽ chạm vào website sắp làm của bạn — và với mỗi người, viết một câu họ vào đó để làm gì. Hàng nào không viết nổi câu đó, dự án sẽ phình đúng ở hàng đó. — Dũng Virgo

Với một website thường, câu hỏi trung tâm là: khách vào xem gì. Với một hệ thống website, câu hỏi trung tâm là: những ai vào, mỗi người làm gì ở đây, và họ dùng chung những dữ kiện gì.

Khi câu hỏi thứ hai không được trả lời trước, dự án sẽ tự trả lời nó trong lúc làm — bằng cách đắt nhất: phần cho khách làm xong mới phát hiện cần tài khoản dùng chung với phần đối tác; phần quản trị làm theo một logic dữ liệu khác hẳn phần mặt tiền. Lúc đó “hệ thống” chỉ còn là nhiều mảnh chung một địa chỉ web.

Trang này đi theo thứ tự ngược lại: bản đồ trước, kiến trúc ba lớp ở giữa, và chi phí/giai đoạn ở cuối — vì thứ tự đó quyết định gần như toàn bộ chất lượng của dự án.

Bài tập bản đồ vai trò: 5 phút trước khi nói chuyện kỹ thuật

Làm bài tập này cho nhu cầu của bạn, theo mẫu của một doanh nghiệp dịch vụ điển hình:

Nhóm người dùngHọ vào hệ thống để làm gì (một câu)
Khách lạXem dịch vụ, kiểm tra năng lực và gửi yêu cầu liên hệ
Khách đã có tài khoảnTheo dõi trạng thái yêu cầu/đơn của mình, xem tài liệu được cấp riêng
Nhân viên kinh doanhTiếp nhận yêu cầu, cập nhật trạng thái, xem dữ liệu khách thuộc phạm vi mình phụ trách
Quản lýXem tổng hợp theo đội, duyệt các việc vượt thẩm quyền của nhân viên
Đối tác/đại lýTruy cập tài liệu và chính sách dành riêng cho đối tác, gửi yêu cầu theo mẫu riêng
Quản trị hệ thốngQuản lý tài khoản, phân quyền, cấu hình và nhật ký

Ba điều bài tập này làm lộ ra ngay:

  • Nhóm nào chưa có câu trả lời rõ — thường là nhóm “làm sẵn để sau này dùng” tốn kém nhất.
  • Việc nào hai nhóm cùng làm trên cùng một dữ kiện — đó là nơi nền dùng chung phải thiết kế kỹ.
  • Việc nào hoàn toàn tách biệt — đó là ứng viên để xây sau cùng hoặc tách riêng.
Bài tập bản đồ vai trò: 5 phút trước khi nói chuyện kỹ thuật

Kiến trúc ba lớp: một nền, nhiều mặt tiền

Lớp 1 — Phần khách thấy (mặt tiền)

Trang giới thiệu, trang dịch vụ/sản phẩm, khu vực tài khoản của khách và đối tác. Đây là lớp thay đổi thường xuyên nhất theo marketing và thị trường, nên được thiết kế để thay đổi không đụng vào lõi.

Lớp 2 — Phần vận hành nội bộ

Nơi nhân viên tiếp nhận, xử lý, cập nhật trạng thái các yêu cầu sinh ra từ lớp 1. Lớp này quyết định hệ thống có thật sự giảm việc tay hay chỉ thêm một nơi nhập liệu nữa.

Lớp 3 — Phần quản trị và nền chung

Tài khoản và phân quyền cho toàn hệ thống, dữ liệu gốc (khách hàng, sản phẩm/dịch vụ, tài liệu), cấu hình và nhật ký thao tác. Lớp này ít thay đổi nhất và phải được chốt đầu tiên — vì cả hai lớp trên đều đứng trên nó.

Nguyên tắc vàng: một dữ kiện chỉ có một nơi gốc. Khách hàng là một bản ghi duy nhất được cả ba lớp dùng chung, không phải ba bản sao ở ba phần khác nhau — đó là ranh giới giữa “hệ thống” và “ba website chung địa chỉ”.

Kiến trúc ba lớp: một nền, nhiều mặt tiền

Thứ tự xây: chốt nền trước, mặt tiền theo nhu cầu

Thứ tự xây đúng của một hệ thống website thường là:

1. Chốt bản đồ vai trò và nền dùng chung (tài khoản, dữ liệu gốc, phân quyền) — phần này sai thì mọi phần sau đều sai theo.

2. Xây cặp lớp 1–lớp 2 cho một luồng chính: ví dụ khách gửi yêu cầu ở mặt tiền, nhân viên xử lý trọn vòng ở phần vận hành. Một luồng chạy trọn còn giá trị hơn năm luồng làm nửa.

3. Mở các mặt tiền tiếp theo (khu vực đối tác, thêm nhóm trang) trên nền đã có.

4. Lớp tổng hợp cho quản lý (báo cáo, phê duyệt) làm sau khi dữ liệu vận hành đã có thật để tổng hợp.

Cắt theo thứ tự này, mỗi giai đoạn đều cho ra một phần dùng được và ngân sách luôn nằm trong tầm nhìn.

Thứ tự xây: chốt nền trước, mặt tiền theo nhu cầu

Các lỗi kiến trúc hay gặp khi xây hệ thống lần đầu

Bốn lỗi này đều là lỗi của giai đoạn vẽ bản đồ, và đều phòng được bằng đúng một buổi làm việc nghiêm túc ở đầu dự án.

  • Mỗi phần một tài khoản riêng: khách phải nhớ hai mật khẩu cho hai khu vực của cùng một doanh nghiệp — dấu hiệu nền dùng chung không tồn tại.
  • Phân quyền làm sau cùng: quyền được “gắn thêm” vào cuối dự án thường rò rỉ: người dùng thấy dữ liệu ngoài phạm vi của mình ở đâu đó trong hệ thống.
  • Dữ liệu gốc bị nhân bản: giá/nội dung sản phẩm sửa ở một nơi, nơi khác hiển thị giá trị cũ — hệ thống mất uy tín với chính nhân viên của mình.
  • Quản trị hệ thống không có chủ: mỗi module một người giữ tài khoản cao nhất riêng, không có bức tranh tổng — rủi ro lặp lại của mọi hệ thống chắp vá.
Các lỗi kiến trúc hay gặp khi xây hệ thống lần đầu

Quy trình triển khai

1

Vẽ bản đồ cùng nhau

Từ danh sách nhóm người dùng và việc của họ, chốt bản đồ vai trò và các luồng chính của hệ thống.

2

Nhận đề xuất trong 24–48 giờ làm việc

Đề xuất gồm kiến trúc ba lớp áp cho trường hợp của bạn, phần nền dùng chung, thứ tự giai đoạn và thời gian/chi phí theo giai đoạn.

3

Xây nền và luồng chính đầu tiên

Nền dùng chung và cặp mặt tiền – vận hành cho luồng chính được dựng và duyệt bằng tình huống thật.

4

Mở rộng theo bản đồ và bàn giao quản trị tổng

Các phần tiếp theo xây theo bản đồ đã chốt; bàn giao gồm tài khoản quản trị tổng, tài liệu kiến trúc cập nhật và hướng dẫn theo vai trò.

Câu hỏi thường gặp

Xây hệ thống website khác gì làm vài website riêng cho từng bộ phận?

Khác ở nền dùng chung: một tài khoản, một dữ liệu gốc, một cơ chế phân quyền cho toàn bộ. Nhiều website rời sẽ rẻ ở ngày đầu và đắt mãi về sau mỗi lần cần dữ liệu đi xuyên giữa các phần.

Chi nhánh hoặc đại lý có dùng chung hệ thống được không?

Được, và đây là trường hợp điển hình của phân quyền theo phạm vi: mỗi chi nhánh/đại lý thấy và xử lý dữ liệu thuộc phạm vi của mình, trong khi quản lý tổng thấy bức tranh toàn hệ. Điều kiện là bản đồ vai trò phải liệt kê rõ các nhóm này ngay từ đầu.

Sau này thêm một module hoàn toàn mới có phải làm lại nền không?

Không, nếu nền dùng chung được thiết kế đúng phạm vi của nó: module mới đăng ký thêm vai trò, quyền và dữ liệu của mình lên nền có sẵn. Đây chính là lý do phần nền được đầu tư nghiêm túc ở giai đoạn đầu.

Hệ thống nên xây một lần cho xong hay theo giai đoạn?

Theo giai đoạn, với bản đồ toàn cảnh chốt ngay từ đầu. Xây theo giai đoạn giúp mỗi phần được dùng và kiểm chứng thật trước khi phần tiếp theo bắt đầu, và ngân sách được giải ngân theo tiến độ giá trị.

Ai là người quản trị hệ thống tổng ở phía doanh nghiệp?

Nên có một đầu mối được chỉ định rõ — thường là quản lý vận hành hoặc IT nội bộ — giữ tài khoản quản trị tổng và là người phối hợp khi cần thay đổi phân quyền/cấu trúc. Vai trò này được bàn trong buổi vẽ bản đồ, không để mặc định.

Tôi mới có danh sách nhu cầu rời rạc từ các phòng ban — bắt đầu thế nào?

Mang chính danh sách đó đến. Bước vẽ bản đồ sẽ gom các nhu cầu rời rạc thành nhóm người dùng và luồng, loại bỏ trùng lặp giữa các phòng ban và xếp thứ tự. Đề xuất được phản hồi trong 24–48 giờ làm việc sau buổi làm việc đó.

Một hệ thống tốt được quyết định trong buổi vẽ bản đồ — những tháng code sau đó chỉ là thực thi bản đồ ấy

Bạn không cần mang đến một bản mô tả kỹ thuật hoàn chỉnh. Chỉ cần mang danh sách những ai sẽ dùng hệ thống và mỗi người cần làm gì trên đó — kể cả khi danh sách đó còn đang là các ý rời rạc từ nhiều phòng ban. Đầu ra của buổi tư vấn là một bản đồ hệ thống đọc hiểu được bởi cả người quản lý lẫn người kỹ thuật, cùng thứ tự xây dựng theo giai đoạn để bạn kiểm soát ngân sách. Đề xuất phạm vi được phản hồi trong 24–48 giờ làm việc. Văn phòng Hà Nội: 144 Trần Vỹ · Văn phòng Phú Thọ: Số 2 Chùa Cấm, Phúc Yên. Liên hệ nhanh qua các nút Điện thoại/Zalo trên trang.