Nghiên cứu cho thấy các chỉ số đánh giá cá nhân nhà phát triển có tính gây hiểu lầm do độ biến thiên cao

Nhóm Cộng đồng BigGo
Nghiên cứu cho thấy các chỉ số đánh giá cá nhân nhà phát triển có tính gây hiểu lầm do độ biến thiên cao

Một nghiên cứu toàn diện phân tích gần 12.000 nhà đóng góp trên hơn 200 tổ chức đã tiết lộ rằng việc đo lường hiệu suất cá nhân của nhà phát triển thông qua các chỉ số thời gian chu kỳ là có lỗ hổng cơ bản. Nghiên cứu này thách thức thực tiễn phổ biến của việc sử dụng các chỉ số năng suất cá nhân để đánh giá các kỹ sư phần mềm, cho thấy rằng độ biến thiên vốn có trong phát triển phần mềm khiến những phép đo như vậy phần lớn trở nên vô nghĩa.

Phạm vi nghiên cứu: Gần 12.000 người đóng góp từ hơn 200 tổ chức được phân tích về các yếu tố thời gian chu kỳ và mô hình biến động

Huyền thoại về hiệu suất nhà phát triển nhất quán

Nghiên cứu đã xem xét thời gian chu kỳ - khoảng thời gian giữa khi một ticket được mở và đóng - mà nhiều lãnh đạo kỹ thuật coi là chỉ số năng suất hữu ích nhất. Tuy nhiên, nghiên cứu phát hiện rằng sự biến thiên trong một nhà phát triển từ tháng này sang tháng khác là quá lớn đến mức việc so sánh các nhà phát triển trở nên gần như vô nghĩa. Phát hiện này thách thức trực tiếp khái niệm nhà phát triển 10x phổ biến, vốn giả định rằng có những sự khác biệt ổn định, có thể đo lường được giữa các nhà phát triển.

Dữ liệu tiết lộ rằng trong khi các yếu tố như nhiều pull request được merge hơn, tăng số ngày coding mỗi tuần, và hợp tác nhiều hơn có ảnh hưởng đến thời gian chu kỳ theo những cách dự kiến, những tác động này rất nhỏ so với độ biến thiên khổng lồ trong dữ liệu. Tính không thể dự đoán vốn có của phát triển phần mềm - từ thay đổi yêu cầu đến các lỗi bất ngờ - tạo ra nhiễu áp đảo bất kỳ tín hiệu có ý nghĩa nào từ các chỉ số cá nhân.

Các Yếu Tố Chính Ảnh Hưởng Đến Thời Gian Chu Kỳ:

  • Nhiều PR được merge hơn: giảm thời gian chu kỳ (mức độ ảnh hưởng: -0.0083)
  • Nhiều ngày coding trong tuần hơn: giảm thời gian chu kỳ
  • Hợp tác nhiều hơn: giảm thời gian chu kỳ
  • Nhiều comment trên mỗi PR hơn: tăng thời gian chu kỳ
  • Nhiều lỗi hơn: tăng thời gian chu kỳ

Vấn đề với việc coi phần mềm như sản xuất

Các cuộc thảo luận cộng đồng làm nổi bật sự hiểu lầm cơ bản trong cách phát triển phần mềm được đo lường. Không giống như sản xuất hoặc bán hàng, kỹ thuật phần mềm liên quan đến việc xây dựng và điều chỉnh các hệ thống kết nối với nhau không thể được rút gọn thành các đơn vị công việc đồng nhất. Các nhiệm vụ vốn khác nhau về độ phức tạp và phạm vi, và việc cố gắng tiêu chuẩn hóa chúng thường tạo ra nhiều ma sát hơn là cải thiện hiệu quả.

Phần mềm rất phức tạp vì một kỹ sư phần mềm thực sự là một kiến trúc sư, một kỹ sư và một người xây dựng cùng một lúc.

Sự phức tạp này được tăng cường bởi thực tế là các nhà phát triển làm việc trên nền tảng liên tục thay đổi - thư viện, framework và hệ thống phát triển độc lập. Các ràng buộc không cố định như chúng sẽ có trong các dự án kỹ thuật truyền thống nơi vật liệu và công cụ vẫn nhất quán trong suốt vòng đời dự án.

Yếu tố kiến trúc

Một hiểu biết quan trọng từ cuộc thảo luận cộng đồng tập trung vào vai trò của kiến trúc phần mềm trong năng suất. Những cải thiện hiệu suất đáng kể nhất - có khả năng cải thiện 10x hoặc thậm chí 100x - đến từ các quyết định kiến trúc chứ không phải tốc độ coding cá nhân. Một nhà phát triển có kỹ năng làm việc trên một hệ thống có kiến trúc kém thực sự có thể xuất hiện kém hiệu quả hơn vì họ bị ràng buộc bởi các vấn đề thiết kế cơ bản.

Nhiều công ty đã loại bỏ các vai trò kiến trúc sư phần mềm chuyên dụng, dẫn đến các hệ thống ngày càng phức tạp đòi hỏi nhiều người giải quyết vấn đề có kỹ năng hơn để duy trì. Điều này tạo ra một chu kỳ nơi độ phức tạp xây dựng trên độ phức tạp, khiến các hệ thống khó sửa đổi và debug hơn theo thời gian.

Phương pháp tiếp cận cấp hệ thống

Nghiên cứu gợi ý rằng việc cải thiện tốc độ phân phối phần mềm đòi hỏi tư duy cấp hệ thống thay vì các can thiệp tập trung vào cá nhân. Thay vì cố gắng đo lường và tối ưu hóa hiệu suất cá nhân, các tổ chức nên tập trung vào xu hướng cấp nhóm trong nhiều tháng, chấp nhận rằng sự biến thiên là bình thường, và đầu tư vào các cải thiện hệ thống có lợi cho mọi người.

Phương pháp này coi năng suất nhà phát triển giống như thời tiết - có tính biến thiên cao, bị ảnh hưởng bởi vô số yếu tố, và chỉ có thể dự đoán được tổng hợp trong thời gian dài. Trung bình hàng tháng của thời gian chu kỳ cá nhân cung cấp ít hiểu biết về hiệu suất tương lai, nhưng các mẫu cấp nhóm trong thời gian kéo dài có thể tiết lộ xu hướng có ý nghĩa.

Các phát hiện gợi ý rằng các tổ chức nên kết hợp các chỉ số định lượng với tín hiệu định tính và tập trung vào việc tạo ra môi trường hỗ trợ hợp tác hiệu quả và quyết định kiến trúc tốt. Thay vì tìm cách loại bỏ sự biến thiên, các nhóm thành công học cách làm việc trong đó trong khi xây dựng các hệ thống có thể thích ứng với yêu cầu thay đổi và thách thức bất ngờ.

Tham khảo: Measuring Engineering