Chuyên môn · Quản trị và vận hành lâu dài

Bốn thứ giữ hệ thiết kế không loãng

Hầu hết hệ thiết kế (bộ thành phần giao diện và quy tắc dùng chung cho mọi sản phẩm số) chết không phải vì thiết kế sai, mà vì không ai được giao nuôi nó.

Chốt nhanh

Hệ thiết kế loãng dần khi bị đối xử như một dự án giao xong là hết. Thực ra nó là một sản phẩm sống, cần người sở hữu và ngân sách duy trì. Muốn không loãng, cần đủ bốn thứ đi cùng nhau: có người sở hữu, có quy trình duyệt thay đổi, có đo lường mức áp dụng, và làm cho đường chuẩn dễ đi hơn đường tự chế. Thiếu một trong bốn, hệ sẽ trôi theo từng đợt việc gấp của các đội sản phẩm.

Đối sánh nhanh
Nên chọn hướng này khi
  • coi hệ là sản phẩm sống có lộ trình và danh sách việc chờ làm
  • có người sở hữu, quy trình RFC (đề xuất thay đổi có người duyệt) và đo lường mức áp dụng
  • làm cho đường chuẩn dễ đi hơn đường tự chế
Chưa cần khi
  • coi bàn giao là kết thúc, không cấp ngân sách bảo trì
  • không ai được giao sở hữu, hệ thành của chung

Sau khi nghiệm thu, không ai được giao trách nhiệm nuôi hệ. Các đội sản phẩm bắt đầu tự chế, tài liệu ngày càng lệch với thực tế. Rồi đến một lúc, cả tổ chức thầm hiểu rằng hệ thống kia chỉ còn tồn tại trên trang trình chiếu báo cáo. Vấn đề này nằm ở cách tổ chức làm việc.

Tại sao hệ thiết kế loãng

Theo Brad Frost trong Atomic Design, hệ thiết kế là một sản phẩm sống phục vụ các sản phẩm khác. Nó cần được nuôi dưỡng liên tục thì mới thật sự sống được.

Cơ chế loãng thường diễn ra theo một trình tự quen thuộc. Một đội đang gấp tiến độ thấy dùng thành phần giao diện chuẩn (component) mất công hơn tự viết mã (code), nên tự chế một bản riêng. Lần sau, đội khác thấy bản chế đó trong kho mã nguồn và sao chép lại. Cứ thế nó nhân lên.

Bốn thứ phải đi cùng nhau

  • Người sở hữu được giao rõ ràng. Không phải kiêm nhiệm mờ nhạt, không phải của chung. Khi không ai chịu trách nhiệm, mọi người đều né quyết định và hệ thống không ai giữ.
  • Quy trình duyệt thay đổi. Mỗi khi cần thêm, sửa, hoặc bỏ component, phải qua một bước xét duyệt có ghi chép. Sinh Vũ gọi đây là RFC, tức là đề xuất thay đổi có nêu rõ lý do và phải có người duyệt. Không có bước này, hệ thống tích luỹ ngoại lệ cho đến khi không còn nhận ra hình dạng ban đầu.
  • Đo mức áp dụng thật. Định kỳ đếm xem bao nhiêu màn hình đang dùng component chuẩn và bao nhiêu chỗ đang tự chế. Không có con số này thì không ai biết hệ đang khoẻ hay đang loãng, và quyết định bảo trì chỉ dựa vào cảm giác.
  • Đường chuẩn phải dễ đi hơn đường tự chế. Đây là yếu tố bị bỏ qua nhiều nhất. Nếu dùng component chuẩn khó hơn tự viết mã, đội sản phẩm sẽ bỏ hệ thống vì đang chịu áp lực giao sản phẩm đúng hạn, dù họ vẫn muốn tuân thủ.

Nên ưu tiên việc gì trước

Nếu đã thấy nhiều bản chế riêng xuất hiện trong sản phẩm: ưu tiên đóng khoảng cách giữa bản vẽ và bản chạy, đồng thời dựng rào duyệt trước khi thêm component mới. Thêm component khi kho đang loãng chỉ làm kho phình thêm mà tỉ lệ dùng lại không tăng.

Nếu chưa có chỉ số áp dụng nào: dựng đo lường trước. Không cần phức tạp, một bảng theo dõi thủ công mỗi quý cũng đủ làm điểm xuất phát để biết mình đang ở đâu.

Nếu không thể phân bổ người sở hữu nội bộ: hệ sẽ loãng theo thời gian, vấn đề chỉ là nhanh hay chậm. Lúc này gói đồng hành bên ngoài là lựa chọn thực tế hơn so với tự nuôi mà không có người.

Lỗi thường gặp sau khi dựng xong

  • Nghiệm thu xong coi là hết việc, không cấp ngân sách bảo trì cho giai đoạn tiếp theo.
  • Chỉ giữ bản thiết kế đẹp trên Figma (phần mềm thiết kế giao diện), còn code trôi dần theo mỗi sản phẩm. Khi Figma và code lệch nhau, các đội theo code thật, không theo Figma.
  • Thêm component ồ ạt sau mỗi yêu cầu nhưng không dọn cái cũ, kho phình mà tỉ lệ dùng lại thấp dần.
  • Không ai được giao sở hữu, hệ thành của chung nên không ai thật sự giữ.

Khi thư viện component không còn phản ánh đúng sản phẩm thật, nó thành đồ bỏ đi. Việc bảo trì khi ấy chỉ còn là vá tạm, phá hết công dựng ban đầu.

Brad Frost, Atomic Design, ch.5

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

Sinh Vũ dựng sẵn cơ chế chống loãng ngay trong dự án, không để đến sau mới xử lý. Cụ thể gồm ba phần. Một là nối từng thành phần trong Figma với thành phần tương ứng trong code qua Figma Code Connect. Hai là quy trình RFC cho mọi thay đổi hệ thống. Ba là bộ chỉ số áp dụng theo từng đội. Nhờ vậy có thể thấy chỗ nào đang loãng trước khi nó lan rộng.

Giai đoạn bảo trì trong cách làm việc của Sinh Vũ có mục đích nuôi hệ theo định kỳ, để các đội không âm thầm quay lại tự chế riêng. Nhưng Sinh Vũ không hứa hệ tự sống. Phần sống hay chết nằm ở người sở hữu và nhịp rà soát mà đội khách duy trì, không nằm ở chất lượng của bản dựng ban đầu.

Nếu Anh / Chị đang cân nhắc có nên đầu tư vào hệ thiết kế hay không, trước khi hỏi hệ thiết kế có đẹp không, nên hỏi đội mình có người và ngân sách để nuôi nó không. Trả lời được câu sau rồi hãy bước tiếp.

Công cụ mang về

Bảng kiểm quyết định

Chủ đề: Làm sao để hệ thiết kế không loãng dần theo thời gian. Cẩm nang Sinh Vũ, sinhvu.com

0 trên 4 mục

Bấm chọn từng mục Anh / Chị thấy đúng hoặc đã trả lời được, rồi bấm Tải bản gửi nhanh để gửi đi, hoặc bấm In nếu cần bản giấy.

Dấu hiệu cho thấy Anh / Chị nên làm
Câu hỏi cần trả lời trước khi quyết định

Nếu Anh / Chị đánh dấu phần lớn ở nhóm dấu hiệu trên, đây là lúc nên trao đổi kỹ hơn. Sinh Vũ có thể cùng Anh / Chị soi lại và đề xuất hướng đi.

Nguồn tham khảo

Brad Frost, Maintaining Design Systems (Atomic Design, ch.5); Brad Frost, The Design System Ecosystem.

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

Cần bao nhiêu người để duy trì một hệ thiết kế?

Không có con số cố định phù hợp mọi tổ chức, nhưng nguyên tắc là phải có ít nhất một người được giao rõ ràng, không phải kiêm nhiệm mờ nhạt. Nếu không thể bố trí người nội bộ, gói đồng hành bên ngoài là lựa chọn thực tế hơn là để hệ thống không có chủ.

Figma đã đẹp và đồng nhất, như vậy có coi là hệ thống ổn không?

Chưa đủ. Figma là bản vẽ, còn sản phẩm chạy trên code. Khi hai bên lệch nhau, các đội sẽ tự chế theo code thật chứ không theo Figma đẹp. Dấu hiệu ổn là Figma và code cùng phản ánh một hiện trạng.

Làm sao biết hệ đang bị loãng?

Dấu hiệu rõ nhất là số component tự chế xuất hiện ngoài hệ thống ngày càng nhiều sau mỗi đợt ra hàng gấp. Nếu chưa đo được, hãy bắt đầu bằng việc rà thủ công: đếm xem bao nhiêu màn hình đang dùng component chuẩn và bao nhiêu màn hình đang dùng bản chế riêng.

← Về Thư viện giao diện dùng chung