Hai Cánh Cửa, Một Cổng: Quản trị vượt xa EDD
Các quy tắc onboarding và sự ma sát của lập trình viên thường trông có vẻ là cùng một vấn đề. Nhưng thực tế không phải vậy.
Khi bạn mở rộng quy mô lên bốn mươi lập trình viên, bạn không thể áp dụng cùng một phương pháp đào tạo cho tất cả mọi người. Một số lập trình viên là chuyên gia về các AI agent. Những người khác thì mới vào nghề. Nếu bạn viết một bộ quy tắc chung cho tất cả, bạn sẽ thất bại.
Các lập trình viên dày dạn kinh nghiệm sẽ phớt lờ các quy tắc. Các lập trình viên mới sẽ gặp khó khăn với chúng.
Bạn phải tách biệt cách tiếp cận của mình thành hai lớp riêng biệt:
Công cụ nhận thức (Awareness tools) Những công cụ này thay đổi những gì một người biết. Ví dụ bao gồm các nhận xét đánh giá từ AI hoặc cảnh báo linting. Chúng hoạt động như một nhân viên lễ tân. Chúng nhận thấy các vấn đề và đề xuất hành động. Chúng chỉ hiệu quả nếu người đó lắng nghe.
Công cụ quản trị (Governance tools) Những công cụ này thay đổi những gì một người có thể làm. Ví dụ bao gồm bảo vệ nhánh (branch protection) và cổng hợp nhất (merge gates). Chúng hoạt động như một cửa xoay (turnstile). Chúng không thương lượng. Chúng dừng quy trình nếu các yêu cầu không được đáp ứng.
Sai lầm là sử dụng một nhân viên lễ tân khi bạn cần một cửa xoay. Một gợi ý từ AI mà lập trình viên phớt lờ thì không phải là quản trị. Nó chỉ là tiếng ồn.
Để khắc phục điều này, hãy sử dụng hai lớp riêng biệt:
Lớp Quản trị (The Governance Layer) Lớp này nhỏ và mang tính phổ quát. Nó áp dụng cho tất cả mọi người bất kể kỹ năng. Nó bao gồm các quy tắc như không đẩy code trực tiếp (direct push) vào các nhánh được bảo vệ và bắt buộc phải có đánh giá (review). Đây không phải là vấn đề về sự tin tưởng. Đây là về việc bảo vệ mã nguồn khỏi rủi ro cao từ các thay đổi do agent thực hiện.
Lớp Giàn giáo (The Scaffolding Layer) Lớp này mang tính cá nhân và linh hoạt. Nó bao gồm các bước như lập kế hoạch rõ ràng và lập luận chi tiết. Các lập trình viên mới sử dụng lớp này nhiều để xây dựng khả năng phán đoán. Các lập trình viên dày dạn kinh nghiệm có thể giảm bớt lớp này khi họ phát triển hơn. Đây không phải là phần thưởng cho thâm niên. Đây là một công cụ sẽ trở nên không cần thiết khi kỹ năng tăng lên.
Bạn cũng nên xem xét rủi ro của chính thay đổi đó. Một lập trình viên senior chạm vào một tệp phức tạp, có độ phụ thuộc cao (highly coupled) sẽ tạo ra nhiều rủi ro hơn là một lập trình viên junior chạm vào một hàm tiện ích (utility function) đơn giản. Hệ thống nên phản hồi dựa trên mã nguồn, chứ không chỉ dựa trên con người.
Cuối cùng, hãy tập trung vào quyền sở hữu. Một AI agent có thể viết mã, nhưng lập trình viên mới là người sở hữu kết quả đó. Nếu một lập trình viên không thể giải thích tại sao một thay đổi được thực hiện trong quá trình đánh giá, thay đổi đó không được phép hợp nhất (merge).
Đừng phân loại con người theo các cấp bậc nữa. Thay vào đó, hãy cung cấp các công cụ cho phép họ tự quản lý rủi ro của chính mình.
Source: https://dev.to/karlheinz_reichel_7ee08d/two-doors-one-gate-navigating-governance-beyond-edd-5clj
Optional learning community: https://t.me/GyaanSetuAi
