Bài viết được sự cho phép của tác giả Lê Chí Dũng
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 / 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 từ nội bộ, 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 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ế
- 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.
- Hỗ trợ team phản hồi với các bên khác liên quan về techical, system.
- 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.
Năng lực của Lead Engineer
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ầuncần thiết cho business.
- 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 sắc 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 hiệu quả 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ả.
Con người / 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 3 developer trở lên. Như dựng cấu trúc lớn và chia thành từng phần nhỏ.
- 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.
- 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.
Cải tiến team
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 / department 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…
- Họ có sự hiểu biết ngày càng sâu sắc 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 sắc 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àn thành các mục tiêu của nhóm.
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 project của họ.
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: 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.
Tuy nhiên, khi tôi nghĩ về những năng lực cốt lõi mà tôi mong đợi Lead Engineer sẽ được thể hiện. Đây là những điều mà tôi thường xuyên nghĩ đến để giúp các senior engineer tiềm năng thành công và phát triển lên Lead Engineer tại một công ty phần mềm chuyên nghiệp.
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
- Tech Lead là gì? Nhiệm vụ, vai trò của Tech Lead trong team
- DRY không hiệu quả, hãy dùng WET
- Software engineer phát triển bản thân như thế nào?
Xem thêm Việc làm Developer hấp dẫn trên TopDev