“Không phải Developer nào cũng nên trở thành Technical Lead. Anh từng thấy một số bạn, mặc dù rất giỏi nhưng họ không muốn làm Technical Lead bởi vì họ biết là mình không có khả năng dẫn dắt con người.”
Đọc bài phỏng vấn của ITviec với anh Nguyễn Vũ Kỳ, người có hơn 4 năm trong nghề Technical Lead, để nghe anh chia sẻ về:
- Con đường anh đã trải qua để trở thành Technical Lead
- Kiến thức và thái độ cần có của một Technical Lead
- Lời khuyên và tips dành cho các bạn muốn trở thành Technical Lead
Xem thêm việc làm Technical Lead trên ITviec
Anh có thể cho biết công việc và trách nhiệm thường ngày của một Technical Lead là gì?
Theo anh, nó bao gồm:
- Theo dõi tiến trình của những dự án mà mình đang làm Lead. Nếu thấy có nguy cơ về deadline hoặc kinh phí thì cần thảo luận với Project Manager ngay để giải quyết
- Xem xét code của các bạn khác và nhanh chóng tìm ra chỗ sai nếu có
- Theo dõi sự phát triển về chất lượng công việc và kỹ năng của các developer
- Chú ý đến nguyện vọng của developer
Nguyện vọng này không phải là nguyện vọng về lương hay các hoạt động ngoại khóa, mà là nguyện vọng về technical.
Tức là những developer đó muốn nghiên cứu thêm các lĩnh vực nào trong công việc của họ, nghiên cứu thêm những công nghệ mới nào, hoặc là họ muốn chuyển career path (thay vì đi theo back-end thì giờ họ chuyển sang front-end chẳng hạn).
Anh có thể kể lại những con đường anh từng trải qua để trở thành một Technical Lead?
Lúc khởi nghiệp thì anh cũng là một developer bình thường, rồi lên dần thành trưởng nhóm project, sau đó thì là Technical Lead.
Trong 3-4 năm khởi nghiệp, anh hoàn toàn không có khái niệm Technical Lead. Một phần bởi vì những công ty đầu tiên anh làm không có chức danh đó. Nhưng cái dẫn anh đến với Technical Lead là khi sang công ty lớn, chia cấp độ nhân viên rõ ràng, có vị trí Technical Lead.
Anh thấy mình phù hợp vào vị trí đó vì anh đã trang bị đủ những kiến thức cần có, và anh có thái độ đối với công việc phù hợp với một Technical Lead.
Vậy kiến thức và thái độ cần có của một Technical Lead là gì?
Theo anh, kiến thức cần có chính là những công nghệ, nền tảng, ngôn ngữ mới bổ trợ cho công việc của bản thân.
Thái độ cần có chính là luôn muốn tìm hiểu cái hay, mới hơn, phù hợp với sự phát triển của công ty đang theo đuổi.
Ví dụ như công ty cuối cùng anh đang làm là làm về Magento, thì tất cả các công nghệ xung quanh Magento thì anh đều phải nắm.
Anh có thể không cần biết sâu, nhưng anh phải nắm là có những công nghệ nào, nó dùng để làm gì, và sau đó anh có thể nghiên cứu hoặc là chia việc ra cho mọi người nghiên cứu cùng.
Xem thêm việc làm Magento tại ITviec
Có điều gì về nghề Technical Lead mà mãi đến gần đây anh mới nhận ra?
Vị trí này cần nhiều kỹ năng hơn là chỉ kỹ thuật giỏi và số năm kinh nghiệm. Khả năng dẫn dắt con người là rất quan trọng
Với vị trí Technical Lead, anh có cách làm việc nào để luôn đem lại hiệu quả tốt nhất cho dự án?
Cách làm việc của anh là không bao giờ bắt ép mọi người đi theo hướng của mình ngay lập tức.
Bắt đầu một project, anh chia công việc để mọi người tự nghiên cứu và nói lại cho anh nghe hướng đi của họ. Nếu nó đúng như cái anh nghĩ thì không có gì để nói. Nếu nó khác với ý anh thì anh sẽ lắng nghe.
Nếu các bạn bảo vệ được ý kiến của họ và anh thấy có thể đúng, thì anh để cho họ thử, thử đến lúc nào mà họ chứng minh được rằng họ đúng thì anh rất vui. Vui vì thứ nhất là anh trang bị lại kiến thức cho mình, thứ hai là team anh nâng cao được tính độc lập và khả năng làm việc.
Trong quá trình thực hiện project, anh cũng thường xuyên theo dõi code của các bạn. Nếu phát hiện ra điều gì, anh chỉnh ngay, để họ đi đúng hướng lại.
Không bao giờ anh để cho mọi người làm hết cả project rồi mới bắt đầu ngồi xem xét, lúc đó mới chỉnh thì đã quá muộn.
Anh có lời khuyên nào dành cho các bạn developer hiện tại muốn trở thành Technical Lead?
Anh khuyên các bạn nên mở rộng tầm quan sát của mình ra nhiều hướng. Mở rộng nhưng vẫn phải tập trung vào một công nghệ nhất định.
Ví dụ như PHP thì nên nghiên cứu những công nghệ xung quanh PHP, để làm cho những dự án PHP của mình tốt hơn.
Một khi mình đã trang bị tương đối đủ kiến thức xung quanh công nghệ của mình thì tiếp tục nâng cao kỹ năng lãnh đạo và kỹ năng quản lý.
Anh cải thiện kỹ năng lãnh đạo bằng cách: từ những project đầu tiên, anh luôn đứng lên để đưa ra ý kiến và giúp cả team cùng thực hiện project. Anh luôn nghĩ rằng phải mạnh dạn đưa suy nghĩ, dám làm và dám chịu trách nhiệm nếu mình sai.
Tất nhiên luôn phải suy nghĩ kỹ trước khi nói, chứ không phải nghĩ gì nói đó. Vì không phải lúc nào ý kiến của mình cũng đúng và giúp project hoàn thành tốt.
Có những ý tưởng cứ nghĩ là tốt nhưng khi áp dụng một thời gian thì mình thấy mình đi sai, thì lúc đó mình phải sửa. Bắt buộc là mình phải có can đảm nhận sai.
Về kỹ năng quản lý, anh thấy quan trọng nhất là phải hiểu con người. Tức là hiểu thế mạnh và sở thích của từng developer để đưa họ vào đúng vị trí mà họ mong muốn trong từng project.
Được như vậy, thứ nhất là developer hài lòng, thứ hai là đặt họ vào đúng sở trường thì chất lượng công việc của họ lúc nào cũng tốt hơn.
Và để hiểu được con người, anh nói chuyện nhiều với developer và quan sát code của họ.
Giả sử như một bạn làm cả front-end lẫn back-end, nhưng trong một thời gian dài thấy rằng công việc của bạn ấy ở back-end lúc nào cũng sinh ra nhiều bug hơn so với khi làm front-end thì anh hỏi rằng liệu em có thể khắc phục cái này không hay em muốn chuyển sang front-end hẳn luôn hay như thế nào?
Anh có thể kể về một thử thách mà ai cũng phải trải qua nếu như bước chân vào con đường Technical Lead?
Thử thách chính là “hài lòng với chính mình.” Anh khuyên các bạn không bao giờ nên hài lòng với bản thân.
Anh thấy rất nhiều người khi đã ở một vị trí nhất định thì tự nghĩ mình giỏi rồi bắt đầu dừng lại và chỉ làm những công việc mà họ thấy là họ tốt, không tìm thêm cái mới hoặc học hỏi công nghệ mới để làm cho công việc mình tốt hơn.
Ví dụ như Enterprise Edition của Magento có cung cấp chức năng cache và full page cache, tức là cache nguyên trang lại bằng một cache engine. Đó là cái thông thường mà khi chuyển sang Enterprise Edition, các bạn rất thích và hài lòng với nó vì thấy performance của website trở nên nhanh hơn trước.
Nhưng các bạn nên tìm hiểu sâu hơn, ví dụ như những cache engine đó hoạt động như thế nào, cái dở, cái hay của nó là gì và liệu có cái nào thay thế được không?
Thay vì chỉ sử dụng file cache hay memcached, các bạn có thể nghiên cứu thêm về Varnish, Redis, hoặc thậm chí sử dụng proxy cache, etc… Có rất nhiều công nghệ liên quan đến web nói chung và Magento nói riêng sẽ luôn tạo niềm hứng thú trong làm việc.
Có phải developer nào cũng nên trở thành một Technical Lead?
Anh từng thấy một số bạn, mặc dù rất giỏi nhưng họ không muốn làm Technical Lead bởi vì họ biết là mình không có khả năng dẫn dắt con người.
Anh nghĩ họ chỉ nên nghiên cứu sâu về một lĩnh vực để trở thành chuyên gia. Đó là sự lựa chọn về nghề nghiệp sáng suốt hơn. Không phải ai cũng nên trở thành một Technical Lead.
Ở cương vị Managing Director thì anh tuyển dụng Technical Lead dựa trên những tiêu chí nào?
- Biết rộng: nhiều hơn những gì mình chỉ tiếp xúc hàng ngày
- Biết sâu về công nghệ mình cần làm việc hàng ngày
- Ứng biến nhanh khi gặp sự cố
- Khả năng nhìn thấy trước những rủi ro của dự án liên quan đến nhân sự và kỹ thuật
- Khả năng làm việc với khách hàng trực tiếp
- Khả năng quản lý, dẫn dắt con người (Leadership)
Mức lương cho vị trí Technical Lead ở công ty anh nói riêng và thị trường nói chung?
Từ 30 triệu NET trở lên, còn tùy thuộc vào các yếu tố để tạo nên người Leader đó.
Có nguồn tài liệu nào anh cho là hữu ích dành cho 1 bạn đang định hướng mình trở thành Technical Lead?
Có một số website sau, anh thường xuyên đọc trong suốt sự nghiệp của mình. Nhưng công việc của anh xoay quanh Magento, nên đa số là tài liệu cho Magento Developer.
– //alanstorm.com/: Blog về Magento
–//inchoo.net/magento/: Blog về Magento
– https://github.com/colinmollenhour/modman: Công cụ để quản lý Magento source code và modules
– https://github.com/netz98/n98-magerun: Công cụ dành cho developer để tương tác với Magento thông qua command line
Một số link cung cấp kiến thức về System Admin và Development Improvement:
– Docker
– Kiến thức về TDD (test driven development) và BDD (behaviour driven development)
Tiểu sử:
Anh Nguyễn Vũ Kỳ học ở Việt Nam đến 23 tuổi thì sang Úc học Bachelor of Software Engineering trong 2 năm, rồi quay về Việt Nam làm 1 năm. Sau đó anh quay lại Úc làm việc khoảng 6 năm, đến thời gian gần đây mới về lại Việt Nam.
Trong cả sự nghiệp của mình, anh đã đổi khoảng 4-5 công ty phần mềm và web agency. Anh có hơn 4 năm giữ chức vụ Technical Lead tại White Labelled và hiện tại, anh đang giữ chức vụ Managing Director cho Secomm BWD.
Nếu bạn nghĩ rằng những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp thì đừng ngại nhấn nút Share bên dưới nhé!
Xem thêm việc làm Technical Lead trên ITviec.