Pattern library không phải mặc định của mọi design system, và xây sớm quá còn nguy hiểm hơn không xây.
Pattern library chỉ cần thiết khi đội thiết kế có từ ba người trở lên cùng ra quyết định trên một sản phẩm, và sản phẩm đó đã có đủ flow phức tạp để đúc rút thành nguyên tắc. Với team nhỏ hoặc sản phẩm còn ở giai đoạn MVP, component library đã đủ dùng, và pattern library sẽ trở thành tài liệu không ai đọc. Sinh Vũ không đưa pattern library vào phạm vi mặc định, nhưng sẵn sàng bổ sung khi Anh Chị thật sự cần.
Pattern library (thư viện tình huống giao diện, là tập hợp các cách lắp ghép component để giải quyết những vấn đề UX phức tạp như form nhiều bước, bảng dữ liệu lớn, hay luồng đăng ký mới) nghe có vẻ như thứ mọi design system đều cần. Thực tế thì không phải vậy. Với phần lớn khách của Sinh Vũ, câu trả lời là chưa cần, ít nhất là ở thời điểm bắt đầu.
Trước khi quyết định, Anh Chị cần phân biệt rõ hai khái niệm. Component là đơn vị giao diện độc lập. Button, Input, Badge đều là component. Pattern là câu trả lời cho một câu hỏi thiết kế cụ thể, được tạo ra bằng cách kết hợp nhiều component lại với nhau.
Component library trả lời câu hỏi "cái này trông như thế nào". Pattern library trả lời câu hỏi "vấn đề này giải quyết ra sao". Nếu Anh Chị chỉ đang cần sự nhất quán về hình thức, component library là đủ.
Nên xây pattern library khi:
Chưa cần pattern library khi:
Pattern nên được rút ra từ giải pháp đã được kiểm chứng trong sản phẩm, không nên xây lý thuyết trước khi có thực tế.
Quan điểm thực hành ngành, Nielsen Norman Group
Sinh Vũ không đưa pattern library vào phạm vi mặc định của gói design system. Thay vào đó, Sinh Vũ đưa vào Storybook một số usage examples (ví dụ sử dụng thực tế) cho các component phức tạp. Đây là mức tài liệu hóa đủ dùng cho phần lớn khách trong giai đoạn đầu triển khai.
Pattern library sẽ được Sinh Vũ đề xuất bổ sung khi Anh Chị có đội thiết kế từ ba người và sản phẩm đã qua ít nhất một năm vận hành thực tế, đủ để có pattern thật sự đáng đúc rút. Trước thời điểm đó, đầu tư vào component chắc chắn và usage examples rõ ràng sẽ mang lại giá trị thực tế hơn nhiều.
Nielsen Norman Group, phân loại UI Patterns. Quan điểm thực hành ngành về thứ tự xây dựng tài liệu thiết kế. Kinh nghiệm thực hành Sinh Vũ Studio.
Component là đơn vị giao diện độc lập, ví dụ một Button hay một Input. Pattern là cách kết hợp nhiều component để giải quyết một vấn đề trải nghiệm cụ thể, ví dụ cách xử lý trạng thái trống (empty state), cách dẫn dắt người dùng qua form nhiều bước, hay cách phục hồi sau lỗi. Nói ngắn: component trả lời câu hỏi 'cái này trông như thế nào', còn pattern trả lời câu hỏi 'vấn đề này giải quyết ra sao'.
Sinh Vũ thường đưa vào Storybook một số usage examples (ví dụ sử dụng thực tế) cho các component phức tạp, đây là mức tài liệu hóa đủ dùng cho phần lớn team nhỏ. Ngoài ra, việc review thiết kế thường xuyên giữa các thành viên thay thế được phần lớn vai trò của pattern library trong giai đoạn đầu.
Dấu hiệu rõ nhất là đội thiết kế bắt đầu tranh luận lặp lại về cách xử lý cùng một tình huống UX, hoặc designer mới vào team mất nhiều thời gian để hiểu cách sản phẩm đang vận hành. Ngoài ra, sản phẩm nên đã qua ít nhất một năm vận hành thực tế để có đủ pattern đã được kiểm chứng mà đúc rút, thay vì xây pattern lý thuyết từ đầu.