13 Jan, 2021
Lãnh đạo kĩ thuật
Lãnh đạo kĩ thuật là một kĩ năng KHÔNG được dạy trong đại học. Nó là một trong những kĩ năng bạn phát triển chỉ theo thời gian và kinh nghiệm.
Thứ nhất, bạn cần có nhiều kinh nghiệm trong phát triển phần mềm, từ thu lấy yêu cầu tới đưa ra sản phẩm cuối cùng cho khách hàng để cho bạn biết tất cả những khó khăn và chướng ngại của dự án phần mềm. Thứ hai, bạn cần có khả năng loại bỏ những chướng ngại đó cho tổ của mình và cho phép họ thành công. Là người lãnh đạo tổ của họ, mục đích của bạn nên là tạo ra môi trường làm việc tốt cho tổ của mình và cho phép họ làm điều bạn muốn họ làm và thành công. Điều này không dễ vì nhiều người lẫn lộn giữa là người lãnh đạo tổ và là người công bố thành công. Nguyên tắc của người lãnh đạo tổ là bạn đặt ra chiều hướng kĩ thuật đúng, cung cấp đào tạo hay chỉ dẫn cho tổ để họ có thể làm nó thành công bởi vì thành công của họ là thành công của bạn.
Là người lãnh đạo tổ nghĩa là dành vài giờ một ngày, hàng ngày như vậy, sau giờ làm việc, giữ cho mình bắt kịp với thay đổi công nghệ, đọc những bài blog mới nhất, học những công nghệ mới nhất, thử những công cụ mới nhất, nghiên cứu các trường hợp điển hình mới nhất để cho bạn có thể cải tiến kĩ năng kĩ thuật của mình và là người lãnh đạo tổ tốt hơn. Là người lãnh đạo tổ, bạn phải tự hỏi mình công nghệ này đem tới giá trị nào cho doanh nghiệp? Bao nhiêu người sẽ muốn dùng nó? Đây là công nghệ mới hay chỉ là khái niệm? Nó tăng qui mô thế nào? Nó vận hành ra sao? Nó có thể được thực hiện tốt hơn không? Còn nhiều vấn đề hơn chỉ phát triển phần mềm nhưng bạn cần thu nhận nhiều tri thức kĩ thuật để bạn có thể giúp cho tổ mình thành công. Lãnh đạo kĩ thuật KHÔNG phải là việc dành cho mọi người mà chỉ một vài người yêu thích công nghệ và mọi thứ liên quan tới nó. Điều tệ nhất là dù bạn có đọc nhiều đến đâu và học nhiều đến đâu, bạn vẫn cảm thấy bạn không biết đủ vì công nghệ thay đổi nhanh chóng.
Bên cạnh tri thức kĩ thuật, trao đổi cũng là kĩ năng quan trọng khác của người lãnh đạo tổ. Trong phát triển phần mềm, trao đổi nghĩa là có khả năng chia sẻ thông tin với thành viên tổ và hướng dẫn họ dùng nó tương ứng. Người lãnh đạo tổ tốt phải có khả năng trao đổi về tình trạng dự án lên quản lí cấp trên cũng như trao đổi nó cho mọi thành viên tổ với nhiều chi tiết để cho họ có thể hành động theo nó. Kĩ năng trao đổi không chỉ là giải thích tình trạng dự án cho người quản lí mà còn làm cho họ hiểu và ủng hộ dự án. Đồng thời, tổ phải có khả năng lấy yêu cầu nghiệp vụ, vấn đề hay ý tưởng mới, và giải thích cho các thành viên tổ để làm cho họ cam kết thực hiện nó.
Lãnh đạo kĩ thuật là kĩ năng quan trọng trong quản lí tổ những người kĩ thuật. Thay vì ra lệnh bạn đang lãnh đạo bằng nêu gương để động viên tổ. Mục đích của bạn là gây hứng khởi cho các thành viên làm điều bạn muốn họ làm. Đó là lí do tại sao người lãnh đạo kĩ thuật lớn phải là người động viên vì bạn lãnh đạo bằng nêu gương chứ không bằng quyền lực. Chẳng hạn bạn thấy một thành viên tổ dường như không tham dự và mời người đó ra uống cà phê và hỏi họ vấn đề là gì. Bạn sẽ huấn luyện người đó, giúp người đó và động viên người đó bằng giải thích viễn kiến của bạn và loại bỏ chướng ngại người đó đang đối diện. Trong các cuộc họp tổ, bạn có thể động viên tổ bằng việc giải quyết các vấn đề kĩ thuật, hay lãnh đạo mọi người theo chiều hướng đúng cho giải pháp. Không có người động viên nào cho một tổ gồm những người kĩ thuật trình độ cao tốt hơn là có người lãnh đạo để giải quyết vấn đề kĩ thuật khó, và cho phép họ học điều đó để làm cho dự án thành công.
Tất nhiên, bạn phải có đam mê trong mọi thứ bạn làm và đam mê không thể là giả được. Nếu bạn có đam mê về việc làm của mình, không thành vấn đề bạn đang làm gì, mọi người sẽ thừa nhận điều đó.
—-English version—-
Technical leadership
Technical leadership is a skill NOT taught in university. It is one of those skills that you only develop with time and experience. First, you need to have a lot of experiences in the software development, from obtaining requirements to the release of final product to customers so that you know all the difficulties and obstacles of software project. Second, you need to be able to remove those obstacles for your team and allow them to be successful. As their team leader, your goal should be to create a good working environment for your team and allow them to do what you want them to do and be successful. This is not easy as many people confuse between being a team leader and being the one that claim the success. The principle of team leader is you set the technical direction, provide training or advise the team so they can do it successful because their success is your success.
Being a Team Leader means spending several hours a day, every day, after work hours, keeping up with technology changes, reading the latest blogs, learning the latest technologies, trying out the latest tools, studying the latest case studies so you can improve your technical skills and be a better team leader. As a team leader, you must ask yourself what business value does this technology bring? How many people will want to use this? Is it a new technology or just a concept? How does it scale up? How does it work? Can it be done better? It is much more than just develop software but acquiring more technical knowledge so you can help your team to be successful. Technical leader is NOT a job for everybody but only a few that love technology and everything related to it. The worst part is no matter how much your read and how much you learn, you still feel like you do not know enough as technology keep changing fast.
Beside technical knowledge, communication is also another important skill of the team leader. In software development, communication means being able to share information with team members and guide them to use it accordingly. A good team leader must be able to communicate project status upwards to management, as well as communicate it to all team members with more detail so they can act on it. The skill of communication is not just explain a project status to managers but also to get them understand and support the project. At the same time, the team leader must be able to take business requirements, issues or new ideas, and explain to team members to get them commit to do it.
Technical leadership is an important skill in managing teams of technical people. Instead of give order you are leading by example to mobilize the team. Your goal is to inspire members to do what you want them to do. That is why a great Technical Leader must be a motivator as you lead by example not by power. For example you find a team member that does not seems engaged and take them out for coffee and ask them what is the problem. You will coach him, help him and motivate him by explain your vision and remove the obstacles that he faces. During team meetings, you can motivate the team by solving technical problems, or leading people in the right direction for a solution. There is no better motivator to a team of highly technical people than to have their leader solve a difficult technical problem, and allow them to learn from it to make the project successful.
Of course, you must have passion in everything you do and passion cannot be faked. If you have passion for your job, no matter what you are doing, people will recognize it.