Chuyên môn · Chọn phạm vi làm gì trước

Trọn gói hay chia đợt: quyết định đúng thứ tự

Cách chia đợt không phải là rút gọn phạm vi mà là thiết kế lại thứ tự triển khai, và thứ tự đó có luật riêng.

Chốt nhanh

Chia đợt thường an toàn hơn với hệ thiết kế số vì nhu cầu thực tế của đội kỹ thuật thường chỉ lộ ra khi họ bắt đầu dùng. Tuy nhiên, điều kiện bắt buộc là kiến trúc token (nền tảng định nghĩa màu sắc, khoảng cách, kiểu chữ dưới dạng biến số) phải được khóa lại hoàn toàn trước đợt 1, không để ngỏ bất kỳ phần nào. Nếu Anh Chị có deadline cứng hoặc đang làm lại toàn bộ giao diện cùng lúc, trọn gói sẽ đảm bảo tính đồng nhất tốt hơn.

Khi Anh Chị bắt đầu nghĩ đến hệ thiết kế số (design system), câu hỏi về phạm vi thường dẫn đến câu hỏi về thứ tự: làm hết một lần cho xong, hay chia ra từng đợt nhỏ để dễ kiểm soát? Cả hai hướng đều hợp lý, nhưng mỗi hướng đòi hỏi điều kiện riêng. Chọn sai điều kiện thì hướng nào cũng dễ thất bại.

Tại sao chia đợt thường an toàn hơn

Lý do thực tế: đội kỹ thuật hầu như không biết họ cần gì cho đến khi bắt đầu dùng hệ thống. Nhu cầu về component (thành phần giao diện tái sử dụng), về cách đặt tên, về mức độ linh hoạt của từng biến số, tất cả đều lộ ra dần trong quá trình tích hợp. Làm trọn gói 200 component ngay từ đầu có nghĩa là một phần đáng kể trong số đó sẽ không bao giờ được dùng, hoặc phải sửa lại vì không khớp với cách đội làm việc thực tế.

Nguyên tắc incremental delivery (giao tăng dần) từ khung Agile nói rõ: mỗi đợt phải tự đứng vững và tạo ra giá trị ngay, không cần chờ đợt sau. Nếu đợt 1 xong mà đội kỹ thuật chưa dùng được gì, đó không phải là chia đợt đúng nghĩa, đó là trọn gói bị cắt vụn.

Điều kiện bắt buộc khi chia đợt

Chia đợt không có nghĩa là để ngỏ kiến trúc. Token system (hệ thống biến số định nghĩa màu sắc, khoảng cách, kiểu chữ) phải được thiết kế toàn cục và khóa lại hoàn toàn trước khi bắt đầu đợt 1. Đây là điều kiện không thương lượng.

Theo đặc tả của DTCG (Design Token Community Group, tổ chức chuẩn hóa token cho ngành), token là nền tảng bất biến mà mọi component phụ thuộc vào. Nếu token thay đổi ở đợt 2 hay đợt 3, toàn bộ component đã làm từ đợt 1 phải sửa lại. Chi phí refactor (làm lại từ nền) lúc đó thường cao hơn làm trọn gói ngay từ đầu.

Điều kiện thứ hai: mỗi đợt nên cắt theo nhóm chức năng hoàn chỉnh, ví dụ toàn bộ form components (các thành phần nhập liệu) trước, rồi mới đến navigation (điều hướng). Cắt ngang nhiều nhóm cùng lúc khiến không nhóm nào hoàn chỉnh đủ để đội tích hợp thực tế.

Khi nào chọn trọn gói, khi nào chia đợt

Chọn chia đợt khi:

  • Sản phẩm đang tìm product-market fit (điểm phù hợp giữa sản phẩm và thị trường), scope giao diện chưa ổn định.
  • Đội kỹ thuật dưới 3 người hoặc chưa từng làm việc với hệ thiết kế số, cần thời gian học và tích hợp từng phần.
  • Ngân sách cần trải đều theo quý, không thể giải ngân một lần.

Chọn trọn gói khi:

  • Sản phẩm đã có thiết kế ổn định, ít có khả năng thay đổi lớn trong 12 tháng tới.
  • Có deadline ra mắt cụ thể và cần đảm bảo toàn bộ giao diện đồng nhất trước ngày đó.
  • Dự án là redesign (thiết kế lại) toàn bộ sản phẩm: chia đợt sẽ tạo ra giao diện không đồng nhất trong thời gian chuyển tiếp, gây khó chịu cho người dùng cuối.

Lỗi thường gặp khi chia đợt sai cách

  • Để token ngỏ: bắt đầu làm component trước khi token được khóa, dẫn đến đợt 2 phải refactor toàn bộ đợt 1.
  • Đợt 1 quá nhỏ: chỉ 5 đến 10 component nên đội kỹ thuật không cảm nhận được giá trị, dự án bị treo giữa chừng vì thiếu động lực tiếp tục.
  • Nhiều người thiết kế luân phiên giữa các đợt: naming convention (quy ước đặt tên) bị lệch, hệ thống mất tính nhất quán mà không ai nhận ra cho đến khi scope đã lớn.
  • Nhầm chia đợt với làm rẻ hơn: overhead (chi phí vận hành) kết nối và re-sync giữa các đợt thường khiến tổng chi phí cao hơn làm trọn gói.

Góc nhìn của Sinh Vũ

Với hầu hết dự án ở quy mô vừa, Sinh Vũ đề xuất chia thành hai phase. Phase 1 là toàn bộ token system và khoảng 30 đến 40 core component, đủ để đội kỹ thuật tích hợp vào luồng làm việc thực tế trong vòng 6 đến 8 tuần. Phase 2 là các pattern nâng cao và component đặc thù, chỉ làm khi nhu cầu thực tế đã xác nhận.

Điều kiện tiên quyết Sinh Vũ giữ cứng: token architecture phải được khóa hoàn toàn trước khi viết dòng component đầu tiên. Không có ngoại lệ cho điều này, dù deadline có ép đến đâu.

Chia đợt tốt là chia theo giá trị, không phải chia theo ngân sách. Mỗi đợt kết thúc, đội kỹ thuật phải có thứ gì đó chạy được trong sản phẩm thật, không phải chỉ trong file thiết kế.

Kinh nghiệm thực hành, Sinh Vũ Studio

Nguồn tham khảo

DTCG (Design Token Community Group) specification; Agile Manifesto và Scrum Guide; Tài liệu dịch vụ A3 của Sinh Vũ Studio.

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

Chia đợt có rẻ hơn làm trọn gói không?

Không hẳn. Mỗi đợt phát sinh chi phí kết nối và re-sync (đồng bộ lại) giữa các bên, nên tổng chi phí thực tế thường cao hơn làm trọn gói. Lợi thế của chia đợt là trải đều dòng tiền và giảm rủi ro làm dư thứ Anh Chị chưa cần, không phải là tiết kiệm tuyệt đối.

Nếu chia đợt thì đợt 1 nên bao gồm những gì?

Đợt 1 nên bao gồm toàn bộ token system và khoảng 30 đến 40 component cốt lõi mà đội kỹ thuật dùng ngay trong vòng 4 đến 6 tuần tới. Đủ để đội cảm nhận giá trị và tích hợp thực tế, nhưng không ôm quá nhiều thứ chưa cần đến.

Có thể bắt đầu làm component trước rồi quay lại làm token sau không?

Đây là lỗi phổ biến nhất và tốn kém nhất. Component phụ thuộc vào token để hoạt động đúng, nếu làm ngược lại thì khi token thay đổi, mọi component đã làm phải sửa lại từ đầu. Sinh Vũ không nhận triển khai theo thứ tự đó vì kết quả gần như chắc chắn phải refactor (làm lại từ nền) trong vòng 6 tháng.

← Về Hệ thiết kế số
{INJ}