Chia sẻ kinh nghiệm làm việc ở vị trí Technical Lead | EXPERT TALKS

Technical Lead là một trong những vị trí cao trên con đường sự nghiệp IT (có thể nói là vị trí cao nhất của developer nếu không muốn chuyển hoàn toàn sang quản lý), điều đó đồng nghĩa với trách nhiệm và thử thách rất lớn. Họ có vai trò quan trọng và dẫn đầu trong một team phát triển dự án phần mềm. Bài viết phỏng vấn sau đây của GrowUpWork với anh Nguyễn Huy Phúc một Technical Leader lão làng, với chủ đề "Chia sẻ kinh nghiệm làm việc thực tế ở vị trí Technical Lead"

Nguyễn Huy Phúc
Chia sẻ kinh nghiệm làm việc ở vị trí Technical Lead
Chia sẻ kinh nghiệm làm việc ở vị trí Technical Lead của anh Nguyễn Huy Phúc.​​​​

Nguyễn Huy Phúc Avatar

Nguyễn Huy Phúc

Technical Leader

Dentsu Global

Giới thiệu

Anh Nguyễn Huy Phúc sau khi tốt nghiệp kỹ sư phần mềm tại trường Đại học Khoa học Tự nhiên tại TPHCM, anh đã bắt đầu sự nghiệp trong ngành IT, tính đến nay đã được hơn 14 năm trong nghề. Anh Phúc đã từng đảm nhận qua các vị trí như Senior Software Engineer, Team Leader và hiện tại là Technical Lead tại các công ty như Vigilant Solutions (giờ là Motorola Solutions), FPT Software, Dentsu Việt Nam và Dentsu Global. GrowUpWork rất hân hạnh khi nhận được một số chia sẻ của anh về kinh nghiệm làm việc với vai trò Teanical Lead, xin gửi đến các đọc giả qua bài viết dưới đây:

Chủ đề EXPERTS TALK:

"Chia sẻ kinh nghiệm làm việc thực tế ở vị trí Technical Lead​​".

 Để trở thành Technical Lead thì cần trải qua các giai đoạn nào?

Để trở thành Technical Lead thì thông thường sẽ trải qua các giai đoạn:

  1. Intern: từ một sinh viên IT bạn sẽ cần trải qua giai đoạn Intern (thực tập sinh) khoảng 2-3 tháng làm việc thực tế tại một công ty phần mềm nào đó. Giai đoạn này bạn chủ yếu làm quen môi trường làm việc của công ty IT, được hướng dẫn các quy trình làm việc và có thể được giao một số công việc hỗ trợ đơn giản như nhập dữ liệu, viết báo cáo, tìm hiểu công nghệ, ngôn ngữ lập trình, Framework, API, viết một số chức năng đơn giản.
  2. Fresher: Sau khi tốt nghiệp bạn ứng tuyển thành công sẽ trở thành một Fresher developer và cần tích lũy kinh nghiệm làm việc khoảng 6 tháng. Giai đoạn này bạn vẫn chủ yếu được hướng dẫn quy trình làm việc, học hỏi framework, API và có thể được tham gia vào hỗ trợ một số dự án nhỏ.
  3. Junior developer: Bây giờ bạn đã là một developer thực thụ, có thể tham gia vào các dự án với vai trò cụ thể. Thời gian này thường kéo dài 2 năm.
  4. Senior developer: Sau 2 năm làm Junior developer, bạn đã có lượng kiến thức và kinh nghiệm kha khá để có thể làm tốt vai trò core developer trong một số dự án. Thậm chí tự mình nhận các dự án phát triển độc lập và làm việc như một Fullstack developer. Senior developer không có thời gian cụ thể, bạn có thể "mãi mãi" làm Senior developer nếu quá yêu code và không phát triển lên các vị trí khác.
  5. Technical Lead: Từ Senior developer sau vài năm nếu bạn có năng lực tốt sẽ được cân nhắc lên làm Technical Lead, vị trí này bạn sẽ phụ trách lãnh đạo 1 nhóm developer ( fresher, junior, senior) tham gia thực thi các dự án tầm trung hoặc lớn.

 Để trở thành Technical Lead chỉ cần lập trình giỏi hoặc có nhiều năm kinh nghiệm?

Lập trình giỏi thì chắc chắn rồi, Technical Lead là một vị trí đòi hỏi bạn không chỉ biết làm mà phải làm giỏi hơn những người khác, có vậy nói họ mới nghe và thực hiện theo. Technical Lead khác với các vị trí quản lý như PM hoặc Technical Architect họ thiên về quản lý hoặc đưa ra giải pháp hơn là tự mình thực hiện. Nói như vậy, không có nghĩa giỏi là đủ, Technical lead vẫn phải đảm bảo một số kỹ năng quản lý, kỹ năng giao tiếp và kỹ năng mềm khác để củng cố vị trí của mình.

Về kiến thức học vấn, không quan trọng phải tốt nghiệp ĐH danh tiếng hay phải đạt những chứng chỉ thông dụng (tất nhiên có thì rất tốt), cái quan trọng nhất là mình phải có nền tảng cơ bản vững chắc, và hầu hết kiến thức cơ bản đều được dạy ở các trường ĐH, CĐ.    

Tôi có biết những người có nhiều hơn 10 năm làm developer, nhưng vẫn chỉ là senior developer, họ có thể rất giỏi trong việc dev nhưng không muốn hoặc không có kỹ năng teamwork đặc biệt trong việc lãnh đạo một nhóm làm việc hiệu quả.

Về kinh nghiệm, đi làm lâu năm chưa chắc đã có kinh nghiệm nhiều bởi vì có thể có một số trường hợp trong chừng đó năm đi làm mà chỉ làm một ứng dụng duy nhất trên một ngôn ngữ duy nhất lặp đi lặp lại, nghĩa là nhiều năm làm chưa chắc đã có nhiều kinh nghiệm!

Kinh nghiệm cũng không hẳn phải đi làm mới có, ngay từ thời sinh viên, mình có thể tích lũy kinh nghiệm bằng cách tham gia các dự án open source hoặc đi làm freelance, hoặc tự viết dự án của riêng mình giống như một dạng startup đó!

Như vậy, để trở thành Technical Lead thì quan trọng là sự tích lũy thực tế của bản thân developer bao gồm cả kiến thức và kinh nghiệm làm việc. Điều này không hoàn toàn có thể đo lường được bằng số năm kinh nghiệm, số dự án hay số lượng kiến thức, kỹ thuật mà bạn được học, bởi vậy mới cần đến phỏng vấn thực tế nhỉ chứ không chỉ điền các thông tin trong CV là được tuyển nhỉ?

 Những yêu cầu chuyên môn của Technical Lead là gì?

Nói về chuyên môn thì khi là một Technical Lead, bạn sẽ phải chịu trách nhiệm cho mọi quyết định kỹ thuật mà bạn và nhóm của bạn thực hiện. Chính vì vậy kiến thức kỹ thuật vững chắc là rất quan trọng! Mà kiến thức chuyên môn cũng sẽ chia thành nhiều nhóm lĩnh vực khác nhau như Web, System, Android, iOS... tương ứng cho các vị trí Technical Lead.

Dù cho Technical Lead có thể không phải là người thực hiện và chịu trách nhiệm toàn bộ tính năng chi tiết (do các developer khác trong nhóm thực hiện) nhưng bạn vẫn phải chịu trách nhiệm tổng thể về giải pháp và thực thi kỹ thuật mang tính cốt lõi của dự án.

Hơn nữa, để làm tốt chuyên môn của một người dẫn đầu thì Technical lead phải thực sự am hiểu về Technical Stack (bao gồm nhưng không giới hạn ở ngôn ngữ lập trình, khuôn khổ, kho dữ liệu, thư viện mà còn là giải pháp giám sát, quản lý).

Như vậy, về cơ bản một Technical Lead phải thỏa hai điều kiện là giỏi về technical và có khả năng lãnh đạo, điều hành nhóm các developer dưới quyền.

 Ngoài ra còn có yêu cầu nào cần lưu ý không?

Bạn cũng cần am hiểu rộng hơn về lĩnh vực liên quan như về phần cứng, kết nối mạng, kiến trúc hệ thống, kiến trúc DB, FrontEnd... để khi có phát sinh yêu cầu mới bạn có thể đưa ra quyết định thực thi một cách nhanh chóng và chính xác! Thậm chí đôi khi bạn cũng phải thực hiện các yêu cầu thiết kế giao diện cho phần mềm và hãy vui vẻ với tất cả những điều đó.

 Kỹ năng mềm quan trọng của Technical Lead là gì?

Bên cạnh kỹ năng chuyên môn là kỹ thuật bạn cần phải trang bị cho mình những kỹ năng đặc trưng và quan trọng khi ở vị trí Technical Lead.

Thứ nhất là kỹ năng giao tiếp. Là một Technical Lead bạn sẽ thấy mình có vài trò quan trọng trong giao tiếp và kết nối với mọi người ở nhiều nhóm khác nhau: Nhóm quản lý, nhóm kiểm tra chất lượng, nhóm phân tích chức năng, cùng các trưởng nhóm kỹ thuật khác, business solution, marketing, v.v.

Thứ hai là kỹ năng hướng dẫn, cố vấn cho người khác. Vai trò của kỹ năng này là giữ cho nhóm phát triển có động lực để cải thiện kỹ năng của họ và tạo ra một sản phẩm chất lượng tuyệt vời. Là leader, bạn sẽ cần hiểu rõ năng lực của từng thành viên trong nhóm để phân chia nhiệm vụ cũng như hướng dẫn bổ sung thêm cho họ về kỹ năng chuyên môn còn yếu.

Kỹ năng thứ ba là khả năng giải quyết xung đột. Điểm này là một trong những điểm quan trọng và phức tạp nhất bởi vì Technical lead luôn sẽ phải đối mặt và cần giải quyết xung đột giữa các thành viên trong nhóm. Đặc biệt khi có các thành viên lâu năm, họ thường có nhiều quan điểm và giải pháp khác nhau, bạn cần đưa ra một quyết định phù hợp và công bằng để duy trì sự kết nối và làm việc hiệu quả trong nhóm.

Kỹ năng mềm quan trọng của Technical Lead
Kỹ năng mềm quan trọng của Technical Lead

 Full Stack Developer có thể đảm đương vị trí Technical Lead không?

Nói một cách tổng quát thì về kỹ thuật Full Stack Developer có thể đảm bảo được công việc của Technical Lead, nhưng về khả năng quản lý thì cần xem xét thêm vì các Full Stack Developer thường có xu hướng làm việc độc lập một mình hơn là làm việc cùng một nhóm.

Một điểm khác là Full Stack Developer thường dùng để nói về lĩnh vực Web, trong khi Technical Lead lại phổ biến hơn trong các lĩnh vực phần mềm khác như App, System...

 Một ngày làm việc của Technical sẽ như thế nào?

Đương nhiên là không thể nào thiếu code rồi, dù bạn đang ở vị trí dẫn dắt thì việc lập trình vẫn luôn là một phần trong công việc thường ngày. Sau đó, Technical Lead cần dành thời gian để review code, đây là một khâu thường bị một số công ty nhỏ không chú trọng nhưng thực ra lại rất quan trọng về lâu dài!

Ngoài ra Technical Lead sẽ phải thường xuyên research cập nhật kiến thức mới cũng như giải đáp thắc mắc và hướng dẫn cho các member.

 Đôi khi Technical Lead cũng là Solution Architecture và PM phải không và có nên không?

Đúng là điều này khá phổ biến ở một số công ty IT, Technical Lead cũng kiêm nhiệm thêm các chức danh lãnh đạo khác như Project manager, Solution Architect, thậm chí là Technical director... điều này sẽ tùy thuộc vào mức độ và quy mô của các công ty IT đó.

Ví dụ công ty nhỏ với số lượng nhân viên ít và dự án ít thì thường không có nhiều vị trí cấp cao, Technical Lead sẽ kiêm luôn vị trí PM (Project Manager) nhưng nếu quy mô lớn thì điều này sẽ không còn phù hợp và sẽ làm giảm hiệu suất của Technical Lead, do phải đảm nhận thêm những công việc của PM mà công việc của PM hầu hết ít liên quan sâu đến kỹ thuật!

 Lời khuyên và tips cho các bạn muốn trở thành Technical Lead

Để trở thành Teachnical  Lead, đâu tiên bạn phải giỏi trong stack mình đang làm đã (giỏi ở đây không có nghĩa là phải làm được tất cả mọi thứ, mà phải biết tìm kiếm và đưa ra cách giải quyết vấn đề một cách nhanh chóng!

Tiếp theo, phải luôn mở rộng nghiên cứu những stack khác bởi vì nhiều dự án có thể liên quan, đòi hỏi kiến thức rất nhiều stack khác nhau.

Hãy tự tin và chủ động "gánh team" cáng sớm càng tốt. Ngay từ khi còn ngồi trong ghế nhà trường, bạn đã có thể rèn luyện kỹ năng leader thông qua việc xung phong đẩy mình vào vị trí gánh team. Áp lực và trách nhiệm sẽ giúp bạn phát triển kỹ năng nhanh chóng hơn bạn tưởng nhiều đấy. Tuy nhiên hãy đảm bảo đã nhận phải hoàn thành, không có kiểu "lời nói gió bay", nhận việc xong để đó nhé.

Cuối cùng là phải trau dồi những kỹ năng mềm đặc biệt là các kỹ năng về giao tiếp lãnh đạo!

 Chia sẻ vài nguồn tham khảo hữu ích cho Technical Lead?

  • Github.com: có rất nhiều opensource để tham khảo và có thể sử dụng luôn
  • Stackoverflow.com: hầu hết mọi thứ mình cần tìm đều có dưới dạng Q&A
  • Dev.to: chứa rất nhiều bài viết chia sẻ kinh nghiệm chuyên sâu về technical

-END- 


Ban biên tập chân thành cảm ơn anh đã dành thời gian chia sẻ kinh nghiệm quý báu đến các đọc giả của blog GrowUpWork, chúc anh sức khỏe và thành công!


Tin tức liên quan

Chia sẻ kinh nghiệm làm việc ở vị trí Technical Lead | EXPERT TALKS

Experts/Seniors Talk| 2021-12-10
Technical Lead là một trong những vị trí công việc cao, đồng nghĩa với trách nhiệm và thử thách rất lớn, xem nội dung phỏng vấn của anh Phúc để hiểu rõ hơn nhé.

Làm sao để người hướng nội Leadership hiệu quả | EXPERT TALKS

Experts/Seniors Talk| 2021-12-10
Nhận biết được người hướng nội, các điêm mạnh của người hướng nội & giúp các bạn tận dụng điểm mạnh trong công việc, đặc biệt trong vai trò quản lý hoặc lãnh đạo.

Làm sao để thăng tiến trong công ty IT | EXPERT TALKS

Experts/Seniors Talk| 2021-12-10
Với khoảng thời gian làm việc và tiếp xúc với nhân viên IT nhiều năm, chị Thảo sẽ cùng chia sẻ với chúng ta về chủ đề “Làm sao để thăng tiến trong công ty IT”.

Khám phá về công việc thú vị của Product Architect | EXPERT TALKS

Experts/Seniors Talk| 2021-12-10
Product Architect ngày nay tại Việt Nam còn khá mới lạ. Vai trò, nhiệm vụ của Product Architect là gì, cần biết và cần làm thế nào để trở thành một Product Architect.


Việc tạo CV đúng chuẩn giúp gia tăng cơ hội trúng tuyển của bạn ít nhất 20%. Hãy nhanh tay tạo CV Rirekisho chuẩn Nhật hoặc CV chuẩn tiếng Anh theo các mẫu chuyên nghiệp nhất của GrowUpWork chúng tôi dưới đây nhé!