Lead Engineer trông như thế nào?

Gần đây, anh PM cũ đã hỏi tôi về cách tôi nhìn nhận một người nào đó đủ tiêu chuẩn trở thành Lead Engineer (LE)/ Tech Lead tương lai. Đây là điều mà tôi chia sẻ và với phản hồi tích cực và quan điểm của riêng cá nhân tôi, tôi nghĩ nó có thể hữu ích cho các Manager, CTO, Tech Lead, Team lead hay engineer, v.v…

Mặc dù cách đặt title, level và expectations ở mỗi công ty có thể hơi khác một chút, nhưng tôi hy vọng rằng điều này sẽ giúp các engineer phát triển hơn nữa hiểu rõ việc mà tôi đã may mắn được trãi nghiệm.

Tôi nhìn vào năng lực của Lead Engineer được thể hiện trên một số khía cạnh. Lead Engineer có khả năng và kỹ năng của một Senior Engineer. Nhưng hơn thế nửa vì họ có thêm một số yếu tố sau:

  • Hỗ trợ cố vấn, cung cấp hướng dẫn memo, workflow, architect, … để đưa công việc vào guồn trong giai đoạn đầu của quá trình phát triển product / services.
  • Hỗ trợ trong kế hoạch phát triển sản phẩm và quy trình trong team.
    Ex: LE sẽ có plan cụ thể cho member mới vào team trong 2 tuần để nắm technical và bắt kịp task như các member khác.
  • Hỗ trợ team phản hồi với các bên khác liên quan về techical, system.
    Ex: LE sẽ suggest bổ sung các giải pháp để nâng cao security cho architect.
  • Thảo luận và hỗ trợ các PM, team lead để đảm bảo rằng dev team và technical được lựa chọn phù hợp với target của dự án.
    Ex: Trao đổi về thế mạnh của member và đề xuất key member cho service và trao quyền cho các member đó để support LE.

Năng lực của Lead Engineer

Về Technical

Scope

  • Họ hiểu rõ về các source code, architect, design pattern, các domain liên quan, cách chúng hoạt động, v.v… của một product hoặc 2–5 services (thay đổi tùy theo size S – M – L -XL hé).
  • Họ có khả năng build architect một product / services để đạt được yêu cầu cần thiết cho business.
    Ex: Build architect Spring Boot cho API có thể adapt dc 100,000 req/s và đảm bảo security chẳng hạn.
  • Họ tham gia vào các cuộc trao đổi phát triển sản phẩm để đưa ra các quyết định kỹ thuật tốt với mức độ hiểu biết sâu về tác động của các quyết định đó. Về cơ bản, họ có thể đảm nhận vai trò ra quyết định với khả năng phán đoán hiệu quả dựa trên sự hiểu biết sâu về một product / services và cách chúng sẽ hoạt động. 

Hoạt động kỹ thuật

  • Họ có hiểu biết sâu và ngày càng cải tiến performance cho source code theo quy mô. 
  • Mặc dù có thể thay đổi tùy theo bối cảnh của product / services, nhóm hoặc tổ chức, nhưng họ hiểu và áp dụng các quy trình, nguyên tắc để kiểm tra, theo dõi, ghi nhật ký, giám sát và đánh giá tình trạng liên tục develop của product / services một cách hiệu quả.
    Ex: LE sẽ có hoạt động review source mỗi buổi sáng. Ghi nhận và đánh giá tình trạng self check source code của dev team có cải thiện các basic cases trong coding policy hay không. Và có loại bỏ hoặc bổ sung thêm không.

Về con người và quản lý dự án

Scope

  • Liên quan đến phạm vi giám sát kỹ thuật ở trên, Lead Engineer cũng có khả năng phân chia task hiệu quả thành các phần khả thi cho từ 3 developer trở lên. Từ task lớn chia thành từng phần nhỏ và đánh point cho task dựa trên độ phức tạp của task.
  • Xác định phạm vi và trình tự develop một cách hiệu quả bao gồm việc tạo các estimate task thành các phần nhỏ đủ nhỏ để ước tính có hiệu quả, cân nhắc xem ai có thể hoàn thành công việc và thời gian thực hiện công việc đó theo các ràng buộc khác của nhóm.
    Ex: Task A linked với task B, task C. Thì sẽ ưu tiên task A trước cho member có thể hoàn thành nhanh. Sau khi task A done thì chia Task B, C cho 2 member phù hợp.
  • Việc xác định phạm vi này có thể sẽ được phối hợp với các developer khác và team lead. Tuy nhiên, Lead Engineer có kinh nghiệm và khả năng thể hiện trong việc chia task nhỏ, rủi ro từ thành phần khác, xác định các trở ngại tiềm ẩn, v.v… để đảm bảo rằng nó được chia nhỏ một cách hiệu quả và dự án tổng thể là được hiểu một cách rõ ràng.

Estimate

  • Họ thường đạt 70–80% (trong vòng 150% so với ước tính ban đầu) trong việc estimate chính xác Stories/Tasks của họ và hỗ trợ những người khác trong nhóm của họ hoàn thành điều đó. 
  • Họ hiểu ticket xác định đúng trông như thế nào, họ viết chúng ra sao để dễ maintain, dễ hiểu khi ticket do một thành viên khác trong nhóm viết cần clear hơn.
  • Các ước tính của họ được hoàn thành một cách nhất quán, đáp ứng các tiêu chí đã xác định DOD (Define Of Done) của team. Điều này bao gồm việc xem xét tất cả các phần của quy trình để đạt được “Hoàn thành”, không chỉ đơn thuần là viết code.
    Dí dụ: Research, Collaboration, Develop, Viết test code, Self check, Deploy, v.v.

Về cải tiến team

Giao tiếp

  • Họ giao tiếp hiệu quả với những người trong và ngoài nhóm. Đây không phải là năng lực cốt lõi duy nhất, nhưng nó cho phép họ cải thiện hiệu quả team, project, product,…
  • Giao tiếp tốt và rõ ràng, phát triển mối quan hệ với những người trong toàn công ty, cập nhật rõ ràng về các project khác để so sánh và cải thiện project của họ.

Cải tiến liên tục

  • Họ luôn đưa ra các ý tưởng để nâng cao hiệu quả công việc của team của họ. Về cơ bản, họ đang xem xét mọi thứ một cách tổng thể và xác định các hạn chế, chẳng hạn như họ đang đưa ra các đề xuất về quy trình review, cải thiện các test cases, v.v…
    Ex:
    Giai đoạn đầu thì việc review sẽ áp dụng chặc chẽ sẽ có LE, Senior review.
    Sau thời gian pilot, các member đã clear các rule thì việc review sẽ thay đổi các member sẽ review chéo và Senior sẽ review chính, LE sẽ review các task phức tạp hoặc solution.
  • Họ có sự hiểu biết ngày càng sâu về product / services, users và business mà nó hoạt động.

Dẫn dắt

  • Họ thể hiện khả năng để những người khác đến với họ một cách tự tin vì họ được biết đến là những người mà những người khác có thể đến để có được cái nhìn sâu hơn, rõ ràng hơn, v.v… về vấn đề nào đó.
  • Họ dẫn dắt những người khác một cách hiệu quả thông qua các cuộc họp, sharing và bất kỳ quy trình nào cần thiết hoặc cần loại bỏ để hoàn thành các mục tiêu của nhóm.

Chắc chắn có những năng lực khác cũng quan trọng mà ai đó ở cấp độ này cần như Tư duy về product, Interview, Design Focus, Business Orientation, v.v… và những điều này có thể cực kỳ mạnh mẽ đối với phát triển của các cá nhân.

Khi nghĩ về những năng lực cốt lõi sẽ được thể hiện Lead Engineer? Thì những điều trên là những điều mà tôi thường xuyên nghĩ đến, với những suy nghĩ đó, nó để giúp các senior engineer tiềm năng thành công và phát triển lên vị trí Lead Engineer / Tech Lead tại một công ty phần mềm chuyên nghiệp.

Sliding Sidebar

About Me

About Me

Hello, my name is Dũng (Johnny). Welcome to my blog.

As I’m a developer, I write about topics related to the field of programming, mainly from a technical point of view. On this blog you’ll find posts which encourage discussion, information about development trends, case studies, reviews, tutorials, tips on how to improve your effectiveness, and anything else that might be fascinating to people from the IT industry.
I love PHP, NodeJS, Java,... and Fullstack.