- Trong ngành phần mềm tồn tại một huyền thoại về "kỹ sư 10x", tức người có năng suất cao hơn đồng nghiệp gấp 10 lần
- Tuy nhiên, khái niệm này có cơ sở khá yếu và tiềm ẩn rủi ro củng cố định kiến hoặc đặt ra những tiêu chuẩn phi thực tế
Đo lường năng suất là việc phức tạp và không hoàn hảo
- Đo năng suất bằng cách nào?
- Lĩnh vực mà kỹ sư xử lý rất đa dạng: vi xử lý, IoT, cơ sở dữ liệu, dịch vụ web, UX, v.v.
- Ngôn ngữ và framework sử dụng cũng rất khác nhau: Golang, Python, COBOL, Lisp, v.v.
- Cần có kiến thức chuyên môn về các công nghệ, thị trường và sản phẩm liên quan: bảo mật, trực quan hóa dữ liệu, marketing, tài chính, v.v.
- Giai đoạn phát triển và quy mô sản phẩm cũng khác nhau: tùy đó là rover thám hiểm sao Hỏa hay chỉ là phần mềm đơn giản
- Công nghệ luôn thay đổi
- Ngay cả những kỹ sư từng rất xuất sắc trong quá khứ cũng có thể dần tụt lại ở một công nghệ cụ thể theo thời gian
- Dù từng là "kỹ sư 10x" trong một lĩnh vực nhất định, họ vẫn có thể chỉ ở mức trung bình trong lĩnh vực khác
Phần mềm thuộc về đội ngũ, không phải về một kỹ sư
- Chất lượng phần mềm được quyết định bởi thành quả của cả đội, không phải thành tích cá nhân
- Dù một cá nhân có viết code nhanh đến đâu thì nếu quy trình của cả đội chậm, tốc độ cuối cùng vẫn như nhau
- Thời gian dành cho kiểm thử, review, triển khai và bảo trì thường nhiều hơn thời gian viết code
- Nếu một kỹ sư cụ thể nắm quyền sở hữu phần mềm, sẽ phát sinh rủi ro lớn khi người đó rời đi
- Cấu trúc phát triển phần mềm lấy đội ngũ làm trung tâm sẽ ổn định hơn về lâu dài
Tổ chức kỹ thuật tốt nhất là nơi kỹ sư "bình thường" có thể tạo ra thành quả nổi bật
- Tổ chức kỹ thuật tốt nhất không nhất thiết là nơi chỉ gồm những kỹ sư xuất chúng
- Điều quan trọng là một môi trường nơi kỹ sư bình thường có thể thường xuyên tạo ra kết quả tốt và liên tục cải thiện sản phẩm lẫn doanh nghiệp
- Cả đội cần hiểu hệ thống, có thể triển khai code, phản hồi người dùng và xử lý sự cố như những hoạt động thường nhật
- Tổ chức kỹ thuật tốt nhất là môi trường nơi kỹ sư bình thường có thể phát triển và tạo ra thành quả
Tầm quan trọng của kỹ sư "bình thường"
- Ngành phần mềm có xu hướng rất coi trọng "người thông minh"
- Netflix cho biết họ ưu tiên nhân tài "top 10%", còn Coinbase nói họ thích nhân tài thuộc "top 0,1%"
- Nhưng đa số mọi người đều bình thường → cần có một hệ thống giúp người bình thường vẫn tạo ra thành quả
- Kỹ sư phần mềm không phải bẩm sinh mà có, mà trưởng thành nhờ đào tạo và kinh nghiệm
Xây dựng hệ thống socio-technical cho "người bình thường"
- Hệ thống cần được thiết kế để "người bình thường" có thể sử dụng dễ dàng
- Cần tính đến những đặc điểm phổ biến của con người:
- Tồn tại các thiên kiến nhận thức như thiên kiến xác nhận, thiên kiến gần đây, hiệu ứng hào quang
- Sự mệt mỏi và trạng thái cảm xúc ảnh hưởng đến hiệu suất
- Nếu cảnh báo reo lúc 3 giờ sáng thì khả năng xảy ra lỗi sẽ cao hơn so với 3 giờ chiều
- Khi hệ thống trực quan và dễ dùng, năng lượng của kỹ sư có thể tập trung vào việc cải thiện sản phẩm
Tổ chức kỹ thuật xuất sắc sẽ đào tạo ra các kỹ sư đẳng cấp thế giới
- Một tổ chức kỹ thuật xuất sắc không phải là nơi sở hữu toàn nhân tài ưu tú, mà là nơi kỹ sư bình thường có thể phát triển
- Trong một tổ chức tốt, ngay cả kỹ sư ở mức trung bình cũng có thể liên tục tạo ra thành quả và trưởng thành
- Những kỹ sư giỏi nhất sẽ tự nhiên xuất hiện từ môi trường như vậy
Nên tuyển "người phù hợp" hơn là "người giỏi nhất"
- Điều quan trọng là tìm người phù hợp với đội ngũ của chúng ta hơn là chỉ tìm "nhân tài xuất sắc nhất"
- Hệ thống cần thúc đẩy thành quả của cả đội thay vì thành tích cá nhân
- Cần một môi trường nơi tinh thần đồng đội và hợp tác quan trọng hơn thành tích riêng lẻ
- Một văn hóa hòa nhập và công bằng sẽ nâng cao thành quả, đồng thời tạo cơ hội để kỹ sư từ nhiều xuất thân khác nhau phát triển
Kết luận
- "Kỹ sư 10x" có thể tồn tại trong thực tế, nhưng việc gắn điều đó với thành quả của cả đội là khó khăn và tiềm ẩn rủi ro
- Một tổ chức kỹ thuật xuất sắc không dựa vào số ít thiên tài, mà dựa vào cấu trúc giúp kỹ sư bình thường có thể tạo ra thành quả
- Hệ thống cần củng cố thành quả của cả đội hơn là thành tích cá nhân
- Mấu chốt là tạo ra môi trường nơi kỹ sư bình thường có thể phát triển và tạo ra thành quả thông qua một văn hóa và hệ thống mang tính hòa nhập
3 bình luận
Trong một công ty toàn những kỹ sư gấp 100 lần, thì các kỹ sư gấp 100 lần lại là mức bình thường. Điều bình thường mới quan trọng. Nâng chuẩn của cái bình thường lên còn quan trọng hơn…
Tôi nghĩ kỹ sư SW gấp 10 lần, 100 lần như những người như Steve Jobs từng nói có ý nghĩa như sau.
Với các công việc như lao động xây dựng, giao hàng hay lái xe, ngay cả người lành nghề giỏi nhất cũng khó đạt hiệu suất cao hơn người bình thường trên 2 lần. Nhưng trong các lĩnh vực như SW hay tài chính, người giỏi đôi khi có thể tạo ra thành quả mà 100 người bình thường cộng lại cũng tuyệt đối không làm ra được.
Đào tạo để phát triển nhân tài là quan trọng, nhưng việc tuyển chọn nhân tài cũng quan trọng. Có vẻ như có sự khác biệt rất lớn giữa đào tạo và tuyển chọn. Không nên trộn lẫn hai việc này rồi nhầm lẫn với nhau.
Ý kiến Hacker News
Ý nghĩ rằng kỹ nghệ phần mềm là điều gì đó đặc biệt thường có xu hướng độc hại
Không có kỹ sư nào là “bình thường”; tồn tại các lập trình viên ở nhiều mức độ khác nhau
Phần mềm được phát triển bởi cá nhân chứ không phải bởi đội ngũ
Phản đối việc phi nhân hóa và phân loại giai cấp lao động
Thất vọng khi IEEE đăng tải nội dung kiểu clickbait
Kỹ sư 10x có tính sáng tạo và quan tâm đến trải nghiệm người dùng cũng như khả năng bảo trì mã nguồn
Khái niệm kỹ sư 10x là cường điệu, nhưng vẫn có một số người làm được rất nhiều việc
Công việc kỹ thuật có những đặc tính khác với các nghề khác
Đôi khi cảm thấy bất lực khi so sánh với người khác
Nhiều kỹ sư làm việc vì tiền, và nếu không có đam mê thì khó trở thành một kỹ sư xuất sắc