Khi adoption (tỉ lệ áp dụng) design system tụt dần mà không ai báo cáo, thường đã có chuyện xảy ra từ lâu.
Đội quay lại làm thủ công không phải vì lười hay thiếu kỷ luật. Nguyên nhân gốc rễ gần như luôn là: component quá cứng không xử lý được edge case (trường hợp ngoại biên), tài liệu thiếu ví dụ thực tế, hoặc quy trình phê duyệt component mới chậm tới mức đội tự làm còn nhanh hơn. Cách chặn không phải kiểm soát cứng hơn mà là làm cho đúng chuẩn trở thành con đường ít ma sát nhất.
Adoption (tỉ lệ áp dụng) design system tụt dần thường không đi kèm thông báo. Không ai gửi email nói "chúng tôi đang bỏ thư viện". Họ chỉ tự code một button hơi khác, rồi một card, rồi cả một flow. Đến khi Anh / Chị nhận ra thì khoảng cách đã lớn. Hiểu đúng nguyên nhân là bước đầu tiên trước khi can thiệp.
Phản ứng đầu tiên của nhiều team lead là quy cho kỷ luật kém hoặc đội không chịu học. Sinh Vũ chưa gặp trường hợp nào đúng như vậy. Nguyên nhân thực tế thường rơi vào một trong ba nhóm:
Ba nguyên nhân này có điểm chung: đúng chuẩn khó hơn làm thủ công. Khi đó, đội không cần lý do gì thêm để lựa chọn.
Netflix Engineering từng đúc kết một nguyên tắc gọi là Paved Road (con đường trải nhựa): làm cho con đường đúng chuẩn trở thành con đường dễ đi nhất, không phải con đường bắt buộc. Nếu chuẩn mà gồ ghề hơn đường tắt thì đội sẽ đi đường tắt, dù họ biết đó không phải lựa chọn tốt.
Người dùng, bao gồm cả developer, luôn chọn con đường ít ma sát nhất. Design system thành công không phải vì được bắt buộc dùng mà vì nó thực sự nhanh hơn làm thủ công.
Least Resistance Path, Behavioral Economics ứng dụng trong thiết kế hệ thống
Khi nhìn qua lăng kính này, mỗi lần đội tự làm thủ công là một tín hiệu hệ thống đang có điểm gồ ghề cụ thể cần vá, không phải tín hiệu đội cần kỷ luật thêm.
Vấn đề thường âm thầm đủ lâu trước khi lộ ra trong báo cáo adoption. Sinh Vũ theo dõi hai tín hiệu chính trong giai đoạn bảo trì:
Ngoài số liệu, phỏng vấn trực tiếp trong buổi pairing (làm việc cùng nhau có quan sát) thường cho biết rào cản thực tế mà dashboard không thể ghi lại.
Hướng kiểm soát cứng: cấm merge nếu dùng component ngoài thư viện, yêu cầu sign-off bắt buộc mọi ngoại lệ.
Kết quả thường thấy: đội tìm cách lách thông minh hơn, tạo thêm ma sát cho cả hai phía, không giải quyết nguyên nhân gốc.
Hướng giảm ma sát: sửa component không đủ linh hoạt, rút ngắn quy trình phê duyệt xuống 3 đến 5 ngày, thêm ví dụ thực tế vào tài liệu, mở kênh hỏi đáp nhanh.
Kết quả thường thấy: đúng chuẩn trở nên dễ hơn, đội tự chọn dùng thư viện vì lợi ích thực tế.
Một biện pháp quan trọng thường bị bỏ qua là thiết lập escape hatch (lối thoát có kiểm soát) rõ ràng. Cho phép đội làm khác chuẩn trong những trường hợp thực sự cần, nhưng yêu cầu ghi chú lý do và để lại dấu vết để audit. Điều này tốt hơn nhiều so với cấm tuyệt đối vì nó ngăn việc làm thủ công ngầm và tạo dữ liệu thực tế để cải thiện thư viện sau.
Khái niệm Inner Source (nguồn mở nội bộ) từ InnerSource Commons cũng phù hợp ở đây: cho phép đội sản phẩm đề xuất và đóng góp component mới qua quy trình RFC (Request for Comments, đề xuất có phản hồi) rõ ràng. Khi đội cảm thấy mình là người xây thư viện chứ không phải người bị thư viện quản lý, ownership (tinh thần làm chủ) thay đổi rõ rệt.
Netflix Engineering Culture, Paved Road concept; InnerSource Commons, innersourcecommons.org; Behavioral economics, Least Resistance Path; Kinh nghiệm thực hành Sinh Vũ Studio.
Tín hiệu sớm nhất là detach rate (tỉ lệ tách component khỏi thư viện) tăng trong Figma hoặc codebase xuất hiện nhiều custom component không có trong thư viện. Sinh Vũ thường phát hiện qua audit định kỳ và phỏng vấn đội trong buổi pairing, không phải chờ adoption report cuối quý.
Không nên làm thế nếu chưa hiểu nguyên nhân. Cấm cứng chỉ chặn triệu chứng, đội sẽ tìm cách lách thông minh hơn hoặc mất thời gian chờ phê duyệt không cần thiết. Nên ưu tiên sửa component trước, sau đó mới xem xét quy trình kiểm soát nếu vẫn còn vi phạm có chủ đích.
Escape hatch (lối thoát có kiểm soát) là cơ chế cho phép đội làm khác chuẩn nhưng phải ghi chú rõ lý do và để lại dấu vết để audit. Cho phép escape hatch có tài liệu tốt hơn nhiều so với cấm hoàn toàn vì nó ngăn việc làm thủ công ngầm, đồng thời tạo dữ liệu để cải thiện thư viện sau.