Thư viện không có chủ sẽ thành bãi chứa
Một design system không có quy trình quản trị sẽ đi theo một trong hai hướng. Hướng thứ nhất: không ai được thêm gì, thư viện đứng yên, các squad bỏ đi làm riêng. Hướng thứ hai: ai cũng thêm được, thư viện phình ra với ba kiểu nút "chính" mới, và nó trở thành đúng thứ mà nó sinh ra để thay thế. Quản trị là cách đi giữa hai hướng đó: thư viện thay đổi được, nhưng thay đổi có lý do và có người chịu trách nhiệm.
Ai làm gì
Giỏ Xanh dựng một đội nền tảng giao diện nhỏ và một nhóm đại diện:
| Vai trò | Ai | Trách nhiệm |
|---|---|---|
| Đội nền tảng giao diện | 1 designer và 2 kỹ sư, toàn thời gian | Giữ chất lượng thư viện, duyệt đề xuất, phát hành phiên bản, viết tài liệu |
| Đại diện squad | 1 designer hoặc kỹ sư mỗi squad, luân phiên mỗi quý | Mang nhu cầu của squad lên, mang thay đổi của thư viện về |
| PM của đội nền tảng | Một trong 3 PM, dành khoảng 20% thời gian | Ưu tiên backlog của thư viện, đo mức sử dụng, báo cáo |
| Squad sản phẩm | Mọi người | Dùng thư viện, đề xuất khi thiếu, báo lỗi |
Mô hình đóng góp
Có ba cách tổ chức phổ biến, mỗi cách hợp với một giai đoạn:
| Mô hình | Cách chạy | Hợp khi | Rủi ro |
|---|---|---|---|
| Tập trung | Chỉ đội nền tảng làm component | Mới bắt đầu, cần đặt nền nhất quán | Thành nút thắt cổ chai, squad phải chờ |
| Liên bang | Các squad cùng đóng góp, đội nền tảng duyệt | Thư viện đã ổn, nhiều squad dùng | Chất lượng đóng góp không đều |
| Tự do | Ai cũng thêm, không duyệt | Hầu như không bao giờ | Quay lại bài 1 |
Một đề xuất đi qua những bước nào
flowchart TD
A[Squad gặp nhu cầu thư viện chưa có] --> B{Có thứ gần giống không?}
B -->|Có| C[Dùng thứ có sẵn hoặc đề xuất biến thể]
B -->|Không| D[Viết đề xuất component mới]
C --> E[Đội nền tảng duyệt trong 5 ngày làm việc]
D --> E
E -->|Duyệt| F[Thiết kế, code, kiểm tiếp cận, tài liệu]
E -->|Chưa| G[Làm riêng, gắn nhãn, hẹn xem lại]
F --> H[Phát hành trong phiên bản kế tiếp]Hai chi tiết làm quy trình này chạy được ở Giỏ Xanh. Thứ nhất, cam kết thời gian duyệt: 5 ngày làm việc. Không có cam kết, squad sẽ không chờ. Thứ hai, lối thoát có kiểm soát: khi chưa duyệt, squad vẫn được làm riêng, nhưng phải gắn nhãn trong code và có ngày xem lại. Những thứ làm riêng được đếm, và khi một thứ làm riêng xuất hiện ở ba squad, đó là tín hiệu nó nên vào thư viện.
Một đề xuất tốt trả lời năm câu: cần gì, dùng ở đâu, vì sao thứ có sẵn không đủ, ít nhất hai màn hình sẽ dùng, và nó thuộc tầng nào.
Phiên bản
Thư viện thay đổi thì các squad cần biết thay đổi có làm vỡ màn hình của họ không. Giỏ Xanh dùng cách đánh số phiên bản ngữ nghĩa ba phần: chính, phụ, vá.
| Loại thay đổi | Ví dụ | Số phiên bản | Squad cần làm gì |
|---|---|---|---|
| Vá | Sửa lỗi bo góc sai ở trạng thái vô hiệu | 3.4.1 lên 3.4.2 | Nâng lên, không phải sửa gì |
| Phụ | Thêm biến thể ngang cho ProductCard | 3.4.2 lên 3.5.0 | Nâng lên, dùng nếu cần |
| Chính | Đổi tên thuộc tính của Button, bỏ biến thể cũ | 3.5.0 lên 4.0.0 | Đọc ghi chú phát hành, sửa chỗ dùng |
Khai tử
Thứ khó nhất trong quản trị là bỏ đi. Một component cũ còn được dùng ở 12 chỗ không thể xoá một sớm một chiều. Giỏ Xanh có quy trình khai tử bốn bước:
- Đánh dấu ngưng dùng: component vẫn chạy nhưng hiện cảnh báo cho kỹ sư khi dùng, tài liệu chỉ sang thứ thay thế.
- Thông báo và đếm: ghi chú phát hành nói rõ ngày bỏ; đội nền tảng đếm số chỗ còn dùng mỗi tuần.
- Hỗ trợ chuyển: ít nhất 60 ngày hoặc hai phiên bản phụ, đội nền tảng giúp các squad chuyển những chỗ khó.
- Xoá trong phiên bản chính kế tiếp, khi số chỗ dùng về 0.
PM sản phẩm liên quan thế nào
Bạn ở một squad sản phẩm và không thuộc đội nền tảng? Ba việc vẫn là của bạn: chừa thời gian trong sprint để nâng phiên bản và chuyển khỏi component bị khai tử; ủng hộ việc đề xuất thay vì làm riêng; và khi chọn làm riêng, chấp nhận gắn nhãn và hẹn xem lại.
Làm ngay
Viết một trang quy trình quản trị cho thư viện giao diện của đội bạn (hoặc cho thứ gần nhất với nó). Trả lời: ai duyệt thay đổi, trong bao lâu, đề xuất cần những thông tin gì, đánh số phiên bản thế nào, và một component cũ được bỏ đi qua những bước nào. Nếu câu trả lời cho câu đầu là "không ai", đó là việc cần làm trước tiên.