Cho tới thời điểm hiện tại có rất nhiều người vẫn gặp khó khăn trong việc phân biệt giữa Tech Lead với Senior Software Engineer. Điều này cũng khá là dễ hiểu bởi vì ranh giới giữa hai khái niệm này vẫn còn khá mới và mơ hồ. Để giúp các bạn có cái nhìn chi tiết hơn về sự khác biệt giữa hai khái niệm, vị trí trên, ở bài viết lần này mình sẽ chia sẻ một số thông tin hữu ích.
Trước khi đi sâu vào những khác biệt điển hình của của hai vị trí này, bài viết này sẽ đề cập lại khái niệm Tech Lead và Senior Software Engineer một cách dễ hiểu nhất.
Bạn biết gì về Tech Lead và Senior Engineer?
Tech Lead
Tech Lead được biết đến như là một vị trí tương đối mới mẻ trong đội ngũ của các tổ chức phát triển phần mềm. Chúng ta có thể hiểu một cách đơn giản nhất đây là sự kết hợp giữa một Software Architect (SA) – Kiến Trúc Sư Phần Mềm và một người trưởng nhóm. Tech Lead không chỉ là một chuyên gia, người dẫn đầu trong lĩnh vực công nghệ, giỏi về chuyên môn, mà còn là người có tố chất về mặt lãnh đạo, có khả năng giao tiếp tốt, có liên kết rộng và gắn kết, cũng như bao gồm một số các kỹ năng mềm cần thiết khác…
Senior Software Engineer
Senior Software Engineer là những người có máu mặt trong đội ngũ phát triển phần mềm. Cho rằng họ có máu mặt bởi vì thứ nhất, họ thường là những người có thâm niên làm việc lâu năm, cực kỳ có kinh nghiệm, là đầu tàu, hướng dẫn các Junior khác mà như cách gọi của chúng tôi đó là những con cáo già lành nghề. Thứ hai, họ là những người có trình độ chuyên môn cao, hiểu biết, nắm và hiểu rõ những công việc mà mình cần thực hiện.
Về cơ bản giữa Tech Lead và Senior Software Engineer có những đặc điểm tương đồng, rất khó phân biệt, tuy nhiên nếu làm trong nghề, hoặc tìm hiểu kỹ những yêu cầu, công việc, tính chất của hai vị trí này thì chúng ta hoàn toàn có thể nhận thấy những điểm khác biệt. Trong phần tiếp theo của bài viết này mình sẽ chỉ ra những thuộc tính riêng đó.
Những đặc điểm phân biệt giữa Tech Lead và Senior Software Engineer
Về mặt chuyên môn
Đây tức là khả năng, năng lực của bạn, bạn biết những gì, biết tới đâu và biết như thế nào. Mình sẽ có một ví dụ cụ thể để mọi người có thể hiểu rõ hơn sự khác biệt giữa Tech Lead và Senior Software Engineer ở khía cạnh này. Đó là kiến thức về một ngôn ngữ lập trình. Đối với một Senior Software Engineer, hiểu biết về ngôn ngữ lập trình X nào đó sẽ kiểu như anh ta biết về nó, đã từng trải nghiệm qua, vì vậy nên có một số kinh nghiệm rút ra, tức là mức độ tiếp cận, giải quyết ở ngưỡng thông hiểu. Nghe điều này thì có vẻ hơi khiêm tốn đúng không? . Về mặt chuyên môn, Tech Lead yêu cầu tối thiểu ba kỹ năng, chuyên môn trong các yêu cầu dưới đây:
- Thứ nhất, giải quyết các vấn đề khó khăn một cách dễ dàng, và tìm cách khắc phục những sai lầm tương tự bằng cách tối ưu nhất. Hầu hết các Tech Lead có thể vẽ ra được chiến lược, cách khắc phục sự cố, giải quyết công việc ngay tức thì. Ví dụ, đối với các lỗi trong quá trình đánh mã, Tech lead sẽ dựa vào kinh nghiệm trình độ chuyên môn của mình, tham vấn năng lực của đồng nghiệp, các yêu cầu khác của dự án để đưa ra phương án khắc phục phù hợp, hiệu quả nhất.
- Thứ hai, người ta thường nói không biết bạn học được những gì, nhưng cách bạn gặt hái kiến thức mới là điều tạo nên giá trị nơi bạn. Thay vì chăm chăm cắm cúi học theo kiểu cày code, học như một chú vẹt chuyên nghiệp, hãy thử những cách tiếp cận kiến thức thời đại hơn, thực tế hơn như tham gia các web dạy code online, đọc sách chuyên ngành, đăng ký tham gia những hội thảo, talkshow của những người giỏi trong nghề, tìm cho mình một cố vấn phù hợp, vừa tạo mối quan hệ thuận lợi trong nghề vừa có được những chia sẻ hữu ích. Bên cạnh đó, các Tech Lead thường có một dạng tập huấn, rèn luyện năng lực như xây dựng, phát triển một dự án (project) độc lập.
- Thứ ba, vận dụng tất cả các công cụ, phương tiện, các kênh hữu ích nhất để có những kiến thức mới, cập nhập về mảng kỹ thuật phần mềm. Tính chất đặc thù của kỹ thuật phần mềm đó là sự đổi mới không ngừng, họ – những Tech lead, không thể mãi chăm chăm, hoài cổ, bảo thủ với những kiến thức cũ được, họ phải liên tục cập nhập xu hướng. Các mảnh cần tập trung và cũng thường là hay biến đổi đó là các mảng về framework, platform, concept, ngôn ngữ… Có một cách tiếp cận kiến thức hiệu quả, đơn giản, mà nghe có vẻ nhân văn nhất đó là thông qua việc trao đổi, học hỏi trên các blog kỹ thuật phần mềm.
- Thứ tư, đó là khả năng tạo một kho lưu trữ mã nguồn mở trực tuyến. Đối với mình đây là một trong nhưng năng lực tuyệt vời của một Tech Lead. Đó không phải là chỉ là khả năng tạo ra một bộ chứa mở, mà sự tuyệt vời của nó nằm ở việc tạo không gian để mọi người có thể đưa ra ý kiến, đóng góp lời khuyên, chia sẻ và học tập.
- Thứ năm, đó là ý chí, tính cầu tiến. Tech lead sẽ không ngừng hoàn thiện, phát triển năng lực, kỹ năng. Hầu hết những Tech lead mà mình gặp đều rất “trâu bò”, đối với những gì họ chưa biết, họ muốn biết thì chắc chắn sẽ tìm mọi cách để hiểu về nó. Đây là lý do vì sao năng lực, kiến thức của những Tech lead vô cùng phong phú, cập nhập.
- Điều cuối cùng mà mình nghĩ không thể không nhắc tới đó là chiến lược “biết địch biết ta trăm trận trận trăm thắng”, tuy nhiên ở đây hiểu khác một chút tức là các Tech lead sẽ tìm hiểu những cây cổ thụ trong nghề để học tập những cái hay của họ từ đó xây dựng riêng thương hiệu của bản thân.
Như vậy về cơ bản ở mặt chuyên môn, yêu cầu của một Tech lead sẽ cao hơn, đòi hỏi họ phải không ngừng trau dồi giá trị bản thân.
Về mặt ảnh hưởng
Một người lãnh đạo tốt là như thế nào? Bạn phải có uy tín và tầm ảnh hưởng? Lời bạn nói phải có người nghe và chấp nhận, phải có sự tôn trọng nhất định từ người khác mới dễ dàng cộng tác, làm việc. Tuy nhiên, nếu cả Senior Software Engineer và Tech Lead đều đòi hỏi sự tương tác tốt, tầm ảnh hưởng đối với đồng nghiệp, đàn em thì riêng Tech lead lại đòi hỏi đồng thời đối với cả sếp, tức là lãnh đạo cao cấp của tổ chức và với cả khách hàng, những người trực tiếp “tiêu thụ”, trải nghiệm sản phẩm từ tổ chức. Hoặc ngay trong sự ảnh hưởng đối với đồng nghiệp, họ tương tác với những người trong cùng team thông qua hành động rất ư là “lịch thiệp”: quan sát, lắng nghe, góp ý, hướng dẫn, chia sẻ…
Trong các công việc, Tech Lead luôn đặt mình giống như một thành viên góp phần hoàn thiện dự án thay vì là vị thế của một người lãnh đạo suông, họ lắng nghe tốt và luôn luôn khuyến khích mọi người tranh luận tích cực, bày tỏ tư duy phản biện…
Về mặt tác động
Đây có thể hiểu chính là giá trị do bạn tạo ra. Hiểu một cách nôm na, khi bạn làm việc, bạn không thể cứ để công việc đến và khiến mình rơi vào thế bị động được. Tech Lead luôn chủ động đón đầu công việc, với một vấn đề nào đó, họ sẽ tìm ra hướng giải quyết nó. Dần dần ở những Tech Lead mình thấy được sự phản xạ nhanh nhạy khi gặp những vấn đề phát sinh, họ là những lão thành thông minh và linh hoạt.
Một khía cạnh khác có thể hiểu về sự tác động đó là khả năng phát triển, sáng tạo, nghĩ ra những sáng kiến mới. Riêng mặt này có liên quan nhiều về những kiến thức chuyên ngành nên tạm thời ở bài viết này mình sẽ không đi sâu vào. Chỉ cần hiểu, những sáng kiến mới đó có thể đem lại nhiều hữu ích mà một trong số đó phải kể đến khả năng sinh lời, kinh doanh từ nó.
Như vậy, có ba khía cạnh mà chúng ta có thể đi vào phân tích để thấy được sự khác nhau giữa Tech lead và Senior Software Engineer. Tùy thuộc vào mong muốn và năng lực của mỗi người mà lựa chọn cho bản thân vị trí phù hợp. Riêng về mong muốn trở thành một Tech lead, bạn nên chú ý cân bằng, linh hoạt ba khía cạnh như trên bài viết mình đã đề cập.
Kết luận
Trên đây là một số những điểm khác biệt cơ bản và điển hình nhất về Tech Lead và Senior Software Engineer mà mình muốn đề cập tới. Mặc dù không phải là những thông tin hoản chỉnh nhất, tuy nhiên về cơ bản đây là những đặc điểm điển hình nhất để phân biệt hai khái niệm trên. Hi vọng bài viết lần này đã đem đến cho mọi người cái nhìn cụ thể, rõ hơn về hai vị trí Tech Lead và Senior Software Engineer.