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

RFC trong design system: khi nào cần quy trình duyệt

Không phải mọi thay đổi đều cần họp bàn, nhưng không phải mọi thay đổi đều có thể tự ý làm.

Chốt nhanh

RFC (Request for Comments, quy trình đề xuất và lấy ý kiến) là cách để một thay đổi được nêu, bàn và duyệt trước khi đưa vào hệ thống. Anh / Chị cần RFC khi hệ mở cho nhiều đội đóng góp, hoặc khi thay đổi lớn và có thể gây phá vỡ chuẩn hiện tại. Hệ nhỏ với một chủ sở hữu thì không cần quy trình nặng, chỉ cần ghi chú và duyệt nhanh là đủ.

Đối sánh nhanh
Nên chọn hướng này khi
  • hệ mở cho nhiều đội đóng góp từ bên ngoài đội lõi
  • thay đổi động tới token gốc hoặc gây phá vỡ (breaking change)
Chưa cần khi
  • hệ nhỏ, một chủ sở hữu, thay đổi nhỏ và an toàn
  • áp quy trình nặng cho mọi thay đổi, nghẽn cả việc nhỏ

RFC (Request for Comments, quy trình đề xuất và lấy ý kiến) không phải thủ tục hành chính. Đây là cơ chế để một thay đổi quan trọng được nêu rõ, bàn có căn cứ và duyệt có trách nhiệm, trước khi ảnh hưởng tới toàn bộ những ai đang dùng hệ thống. Câu hỏi không phải "có nên làm RFC không?" mà là "thay đổi này lớn cỡ nào và bao nhiêu bên bị ảnh hưởng?"

RFC là gì trong thực tế

Mô hình RFC phổ biến trong lập trình nguồn mở, được cộng đồng Rust và Ember áp dụng cho việc thêm tính năng lớn vào ngôn ngữ và framework. Nathan Curtis đề xuất design system học theo cách tiếp cận này: bàn sơ bộ trước, rồi đề xuất chính thức có mô tả, lý do và phạm vi, cuối cùng mới làm và duyệt bản hoàn chỉnh.

Trong bối cảnh design system, RFC thường gồm ba bước cơ bản:

  • Đề xuất: người muốn thay đổi viết mô tả, lý do và phạm vi ảnh hưởng.
  • Bàn: đội lõi và các bên liên quan cho ý kiến, đặt câu hỏi, phát hiện rủi ro.
  • Duyệt: người có thẩm quyền chốt chấp nhận, điều chỉnh hoặc từ chối, có ghi lại lý do.

Độ nặng của từng bước tùy quy mô thay đổi và số đội cùng dùng hệ thống.

Các yếu tố quyết định mức quy trình

Không có một khuôn duy nhất đúng cho mọi trường hợp. Anh / Chị cần cân theo bốn yếu tố:

  • Quy mô thay đổi: thêm một icon khác hẳn đổi cả thang màu biểu đồ hay điều chỉnh giao diện lập trình (API) của một component dùng chung. Mỗi loại cần mức kiểm soát khác nhau.
  • Ai đề xuất: người trong đội lõi quen nguyên tắc hệ thống khác với đội sản phẩm ngoài lần đầu đóng góp.
  • Độ rủi ro phá vỡ: thay đổi có gây lỗi ở các nơi đang dùng component đó không, hay an toàn hoàn toàn.
  • Độ minh bạch cần thiết: mọi người có cần thấy đề xuất, lý do và quyết định không, hay chỉ đội lõi cần biết.

Khi nào cần RFC đầy đủ, khi nào duyệt nhanh là đủ

Cần RFC đầy đủ khi: hệ mở cho nhiều đội ngoài lõi đóng góp. Thay đổi động tới token gốc, API của component, hoặc có nguy cơ gây phá vỡ (breaking change) ở các sản phẩm đang dùng. Cần minh bạch với nhiều bên về lý do và thời điểm áp dụng.

Duyệt nhanh là đủ khi: hệ nhỏ, một chủ sở hữu, thay đổi nhỏ và không có rủi ro ảnh hưởng dây chuyền. Ghi chú lý do, ai duyệt và ngày áp dụng là đủ kiểm soát mà không sinh thủ tục thừa.

Brad Frost nhấn mạnh rằng cần một quy trình quản trị công khai để cân bằng giữa mở cho đóng góp và giữ chuẩn chung. Công khai ở đây không có nghĩa là phức tạp, mà nghĩa là ai cũng biết đề xuất đang ở đâu, ai quyết định và vì sao.

Lỗi thường gặp khi thiết kế quy trình

  • Áp một quy trình nặng cho mọi thay đổi: việc nhỏ bị nghẽn, đội mất động lực đóng góp.
  • Không có quy trình gì cả: ai muốn đổi thì đổi, hệ mất chuẩn theo thời gian mà không ai nhận ra cho đến khi hỏng nặng.
  • Mở đóng góp mà không có người duyệt: đề xuất chất đống, không ai chốt, người đề xuất nản và ngừng tham gia.
  • Duyệt bằng cảm tính: không có tiêu chí rõ thay đổi này có thực sự thuộc hệ thống không, dẫn tới mỗi lần duyệt là một lần tranh luận từ đầu.

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

Trong gói thiết kế và vận hành có quản trị, Sinh Vũ bàn giao sẵn quy trình RFC phù hợp quy mô đội khách: mọi thay đổi có người đề xuất và người duyệt, hệ tiến hóa có kiểm soát thay vì trôi dần. Trọng tâm là để đội khách tự đề xuất, tự thêm component mà vẫn giữ chuẩn, không phụ thuộc một người duy nhất biết toàn bộ hệ thống.

Mức nặng nhẹ của quy trình được cân theo quy mô đội và số bên cùng dùng. Sinh Vũ không bê nguyên khuôn của tập đoàn lớn vào một đội năm người. Nguyên tắc chính: nhiều mức song song, đường nhanh cho việc nhỏ, đường đầy đủ cho việc lớn và có rủi ro.

Đóng góp là bất kỳ đề xuất, thiết kế, mã nguồn, tài liệu hay tài sản của một tính năng mới do người ngoài đội lõi làm và phát hành lại cho người khác dùng. Nên cần khung tiếp nhận rõ ràng.

Nathan Curtis, Defining Design System Contributions, EightShapes
Công cụ mang về

Checklist quyết định

Chủ đề: Quy trình đề xuất và duyệt thay đổi RFC trong design system. Cẩm nang Sinh Vũ, sinhvu.com

0 trên 6 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

Nathan Curtis, Defining Design System Contributions (EightShapes). Brad Frost, A Design System Governance Process.

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

Hệ của tôi chỉ có một đội, có cần RFC không?

Nếu chỉ một đội lõi dùng và sở hữu, Anh / Chị chưa cần RFC theo nghĩa đầy đủ. Ghi chú lý do thay đổi, ai duyệt và khi nào áp dụng là đủ. RFC nặng chỉ sinh giá trị khi có nhiều bên cùng đóng góp hoặc phụ thuộc vào hệ.

RFC cần có những phần gì?

Tối thiểu gồm: mô tả thay đổi, lý do đề xuất, phạm vi ảnh hưởng và ai duyệt. Với thay đổi lớn nên thêm bản nháp để bàn trước khi đề xuất chính thức. Không cần bê nguyên khuôn của tập đoàn lớn vào đội nhỏ.

Ai có quyền duyệt RFC?

Đội lõi (core team) của design system là người duyệt cuối. Tiêu chí quan trọng nhất là: thay đổi này có thực sự thuộc phạm vi hệ thống không, hay chỉ là nhu cầu riêng của một sản phẩm. Nếu không có đội lõi đủ sức duyệt, đừng mở đóng góp rộng, vì đề xuất sẽ chất đống mà không ai chốt.

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