Chuyên môn · Tự làm, thuê hay bàn giao cho đội

Vì sao đội âm thầm bỏ hệ để làm thủ công

Lý do không phải ý thức kém, mà là ma sát: đường đúng khó hơn đường tắt.

Chốt nhanh

Nguyên nhân gốc gần như luôn là ma sát: khi làm theo hệ tốn công hơn tự chế một component riêng, đội sẽ chọn tự chế, không phải vì bướng mà vì hợp lý. Cách chặn không phải ra lệnh bắt tuân thủ, mà là làm cho đường đúng dễ đi hơn đường tắt, cộng thêm một cửa đóng góp rõ ràng để thứ còn thiếu được bổ sung nhanh thay vì bị âm thầm đè.

Đối sánh nhanh
Nên chọn hướng này khi
  • ưu tiên giảm ma sát khi đội né hệ vì dùng khó hoặc chậm
  • mở cửa đóng góp khi đội đang tự đè component
  • thêm giờ trực và kèm cặp khi hệ mới ra hoặc đội mới
Chưa cần khi
  • ra lệnh bắt dùng theo hạn mà không hỏi đội làm trước

Mỗi lần Sinh Vũ vào audit một hệ thiết kế đã chạy được vài tháng, điều thường thấy không phải là hệ bị phá, mà là hệ bị vòng vèo qua: Figma có một bộ component, code có một bộ khác, và một số đội đang dùng cả hai lẫn một bộ tự chế thứ ba. Không ai nổi loạn, mọi người chỉ chọn con đường ít cản trở hơn.

Nguyên nhân gốc là ma sát, không phải ý thức

Khi làm đúng theo hệ (dùng component chuẩn, theo token thiết kế) tốn nhiều bước hơn tự kéo một khung mới và chỉnh tay, người ta sẽ chọn chỉnh tay. Đây là hành vi hợp lý, không phải bất tuân. Đội không bỏ hệ vì lười hay không tôn trọng công sức xây dựng, mà vì họ có deadline và hệ đang đứng chắn giữa đường.

Theo tổng hợp thực hành của Design Systems Collective, tỉ lệ dùng thấp gần như luôn bắt nguồn từ ma sát chứ không phải thiếu nhận thức. Ra lệnh bắt tuân thủ mà không giảm ma sát chỉ làm chống đối chuyển từ công khai sang ngầm.

Bốn nguồn ma sát thường gặp

  • Component thiếu trạng thái thật. Hệ chỉ có trạng thái mặc định, không có trạng thái lỗi, trạng thái tải, trạng thái rỗng. Đội gặp tình huống thật thì không dùng được, phải tự làm thêm, rồi lần sau không buồn tra nữa.
  • Tài liệu khó tra. Đội không biết component đã có hay chưa, nên tự làm cho chắc. Một trang tìm kiếm tốt tiết kiệm công hơn mười buổi training.
  • Không có cửa đóng góp. Đội thiếu gì mà không có chỗ báo về, họ sẽ tự đè (override) tại chỗ. Sau vài tháng, codebase và Figma tích lũy hàng chục bản đè không được ghi nhận, hệ loãng dần mà không ai biết từ lúc nào.
  • Cách ra mắt ép từ trên xuống. Hệ được công bố bằng một lệnh chuyển đổi có hạn mà không có giai đoạn hỗ trợ. Đội chuyển trên danh nghĩa nhưng giữ bản làm tay như bản dự phòng, rồi bản dự phòng trở thành bản thật.

Khi nào ưu tiên hướng nào

Giảm ma sát trước: khi đội né hệ vì dùng chậm hoặc component không phủ đủ tình huống. Việc cần làm là bổ sung trạng thái còn thiếu, cải thiện tài liệu tìm kiếm, và rút ngắn số bước để dùng một component từ đầu. Chưa làm xong việc này thì chưa nên đặt kỳ vọng về tỉ lệ dùng.

Mở cửa đóng góp song song: khi đội đang tự đè nhiều mà không gửi yêu cầu về. Quy trình RFC (Request for Comments, tức là quy trình đề xuất thay đổi có kiểm soát) không cần nhiều bước, chỉ cần rõ: gửi về đâu, ai xem, bao lâu có phản hồi. Thiếu một trong ba thì đội không gửi.

Lỗi hay gặp khi xử lý tình trạng này

  • Đặt deadline bắt chuyển khi hệ chưa sẵn sàng. Kết quả là đội chuyển hình thức, tự đè vẫn tiếp tục, và giờ có thêm nợ kỹ thuật từ việc chuyển nửa vời.
  • Không theo dõi bản đè sau khi ra mắt. Nếu không đo được đội đang tự làm ở đâu, không biết component nào cần bổ sung gấp nhất.
  • Component quá cứng, không có điểm tùy biến có kiểm soát. Đội cần linh hoạt, nếu hệ không cho, họ tách ra trong Figma và làm lại bằng tay từ đầu. Brad Frost nhấn trong Atomic Design rằng duy trì hệ đòi hỏi vừa đủ cứng để nhất quán, vừa đủ mềm để phủ nhu cầu thật.

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

Khi Sinh Vũ xây component, yêu cầu tối thiểu là đủ trạng thái thật: mặc định, hover, focus, lỗi, tải, rỗng. Không phải để đẹp, mà để đội không có cớ tự làm lại. Vỏ đẹp mà thiếu trạng thái thì chỉ là template, không phải hệ.

Quy trình RFC là cửa để đội đề xuất thay đổi có kiểm soát, thay vì âm thầm đè. Sinh Vũ áp dụng nó không vì thủ tục, mà vì không có cửa đó thì mọi thứ thiếu sẽ được vá ngoài hệ, và hệ mất dần tính thẩm quyền.

Một điều Sinh Vũ nói thẳng với khách: nếu đội kỹ thuật quá nhỏ hoặc sản phẩm chưa có người dùng thật, hệ sẽ bị bỏ xó vì không đủ người bảo trì và không đủ nhu cầu tái sử dụng để hệ tự chứng minh giá trị. Lúc đó không phải vấn đề ma sát mà là vấn đề thời điểm.

Một quy trình quản trị rõ ràng là điều kiện để hệ tồn tại lâu dài. Thiếu nó, mỗi đội tinh chỉnh theo cách riêng, các bản đè chồng lên nhau và hệ vỡ dần mà không có điểm chịu trách nhiệm.

Brad Frost, A Design System Governance Process
Công cụ mang về

Checklist quyết định

Chủ đề: Vì sao đội âm thầm quay lại làm thủ công và cách chặn. Cẩm nang Sinh Vũ, sinhvu.com

0 trên 7 mục

Bấm chọn từng mục Anh / Chị thấy đúng, rồi bấm in hoặc lưu thành PDF để mang theo.

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, A Design System Governance Process; Brad Frost, Atomic Design (chương Maintaining Design Systems); Design Systems Collective, Why Your Design System Fails; kinh nghiệm thực hành Sinh Vũ.

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

Làm sao biết đội đang âm thầm làm thủ công chứ không phải dùng hệ?

Dấu hiệu rõ nhất là Figma hoặc codebase có nhiều component trùng tên nhưng khác hình thức, hoặc đội hay hỏi 'cái này có trong hệ chưa' mà câu trả lời luôn là 'chưa'. Khi số lượng bản đè (override) tăng mà không có yêu cầu đóng góp nào được gửi về, đó là dấu hiệu hệ đang bị vượt qua thay vì được dùng.

Có nên đặt deadline bắt đội chuyển sang dùng design system không?

Không nên nếu chưa giải quyết xong ma sát. Ép theo hạn mà component vẫn thiếu trạng thái, tài liệu vẫn khó tra, thì đội sẽ chuyển trên danh nghĩa nhưng tiếp tục tự đè bên dưới, tức là vừa tốn công chuyển vừa sinh nợ kỹ thuật mới. Ưu tiên làm đường đúng dễ trước, rồi mới đặt kỳ vọng thời hạn.

Quy trình đóng góp (RFC) cần phức tạp đến đâu?

Không cần phức tạp, cần rõ hơn là cần nhiều bước. Tối thiểu là: đội biết gửi đề xuất về đâu, ai xem xét, và trong bao lâu có phản hồi. Thiếu một trong ba điều đó thì đội sẽ không gửi mà tự làm.

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