Con đường sự nghiệp của một kỹ sư phần mềm (phần 9)

[Tiếp theo phần 8]

Mình biết manager không phải là con đường duy nhất để thăng tiến. Nếu kỹ sư tập trung sâu vào kỹ thuật thì cũng có thể có tầm ảnh hưởng ngang ngửa hoặc hơn cả manager, ví dụ như những kỹ sư phụ trách thiết kế hệ thống triệu/tỷ người dùng, công việc của họ ảnh hưởng trực tiếp tới doanh thu và danh tiếng của cả công ty. Cho nên không nhất thiết cứ phải sống chết lên manager thì mới gọi là “có sự nghiệp”.

Tuy nhiên, mình nghĩ nếu kỹ sư chọn hướng kỹ thuật thì sớm muộn gì tầm ảnh hưởng của họ cũng sẽ vượt xa khỏi team và lan rộng sang các team khác. Lúc đó họ sẽ đảm trách những dự án chủ chốt của công ty, hoặc đề xuất những dự án riêng, thuyết phục ban lãnh đạo, tuyển người vào dự án, dẫn dắt dự án cho đến lúc hoàn thành và gặt hái được kết quả. Nghĩa là sớm muộn gì họ cũng phải học cách lãnh đạo, cách làm việc với con người, cách quản lý dự án và cách tạo ảnh hưởng. Sớm muộn gì họ cũng sẽ dẫn dắt người khác thôi.

Do đó, mình coi đây như là một cơ hội lớn để học hỏi, để thử thách và hoàn thiện bản thân hơn. Dù sau này mình có chọn hướng đi nào thì những kinh nghiệm làm manager cũng sẽ đóng góp lớn cho thành công trong sự nghiệp. Mình nhận chức với niềm tin mãnh liệt đó.

Lúc mới bắt đầu làm manager, mình đã gặp không ít khó khăn:

  • Mình hơi bị mất phương hướng: không biết làm manager là làm gì, khác gì với làm kỹ sư, có cần code không, performance của mình được đánh giá dựa vào những tiêu chí nào, trước hết mình phải làm những gì, …
  • Những người bạn, những người đồng nghiệp mà mình hay chơi chung, những mối quan hệ đó có gì thay đổi không? Họ có công nhận mình không? Tự nhiên trước giờ bình đẳng, nay lại có khoảng cách.
  • Sếp mình bảo đây vẫn còn là giai đoạn thử thách. Công ty muốn xem mình có quản lý được team không, có đáp ứng hết các yêu cầu của một manager hay không. Nếu không đạt thì xác định là về lại với thế giới kỹ sư.
  • Mình tưởng là mình đã chuẩn bị mọi thứ sẵn sàng cho vị trí này, nhưng thực ra không phải vậy. Khi đảm nhận trọng trách quản lý một team với 7-8 kỹ sư, mình đã hoàn toàn bơi tự do, mình vẫn làm như thói quen của một kỹ sư, tuỳ cơ ứng biến, không có một quy trình gì cụ thể.

Khi lên chức thì ai cũng chúc mừng vui vẻ, chỉ có mình là bị áp lực tràn trề. Mình biết hiện tại mình vẫn đang làm việc cuả một kỹ sư chứ không phải manager, và như vậy là không được. Mình biết mình phải thay đổi, chỉ có điều không biết phải thay đổi như nào.

Thế là mình lao vào đọc sách về quản lý và lãnh đạo.

Mình đọc ngấu nghiến mỗi khi có thời gian rãnh: khi đi tàu điện, lúc ở nhà, những buổi cuối tuần, những lúc chờ vợ đi shopping… Mình đọc hết cuốn này tới cuốn khác. Càng đọc mình càng thấm hơn và dần hiểu ra những việc mình phải làm đối với team. Mình nhận ra rằng ai mới lên làm manager cũng sẽ có những boăn khoăn trên, và tất cả những vấn đề đó đều có cách giải quyết. Cụ thể như nào thì mình sẽ viết ở những series khác.

Mình bắt đầu áp dụng những điều đã học được vào việc dẫn dắt team. Mình thay đổi toàn bộ thói quen làm việc của bản thân, thiết lập các quy trình cho team, gặp riêng từng người (1-on-1) để nói chuyện về sự nghiệp, và giao lại trọng trách release ứng dụng cho team.

Triết lý lãnh đạo của mình là “Không làm gì cả”.

Mục tiêu cuối cùng đó là “Không có mình, team vẫn chạy tốt”.

Nghe có vẻ quan liêu phải không? Để mình giải thích 1 xíu:

  • Mình lúc nào cũng là người ra quyết định. Như vậy là độc tài, với lại quyết định của mình chưa chắc tốt bằng người khác. Bởi vậy, mình thiết lập một quy trình để team tự thảo luận và ra quyết định, mình chỉ review lại lần cuối rồi thông qua. Quyết định là của mọi người nên họ sẽ có trách nhiệm với nó hơn.
  • Mình lúc nào cũng cắm đầu vào lo release ứng dụng. Như vậy thì rất rủi ro, nếu mình nghỉ phép thì không ai biết làm như nào. Bởi vậy, mình hướng dẫn quy trình release cho tất cả mọi người trong team, mỗi người làm 1 lần rồi cứ thế xoay vòng.
  • Mình lúc nào cũng code review cho tất cả mọi người. Nhiều khi không có đủ thời gian mà review hết vì có quá nhiều kỹ sư trong team. Bởi vậy, mình khuyến khích mọi người code review hằng ngày để tự giúp đỡ nhau, tạo nên một văn hoá code review rất mạnh.
  • Mình lúc nào cũng là người đi họp với các team khác. Đôi khi họp nhiều quá mình cũng thấy stress. Bởi vậy, mình hay nhờ các bạn kỹ sư “đi họp thay” để họ học thêm về cách giao tiếp với các team khác, và cũng biết được các team đó làm việc như nào.
  • Mọi vấn đề trước giờ mình hay giải quyết thì nay mình học cách hướng dẫn cho mọi người trong team xử lý.

Nếu việc gì cũng giao cho team vậy thì thời gian còn lại mình làm gì?

Hiện tại thì đa số thời gian của mình vẫn là code review, đi họp với các manager khác, gặp riêng từng kỹ sư (1-on-1) để chia sẻ feedback, và giám sát tiến độ làm việc của team. Mình cũng dành 1-2 tiếng mỗi ngày ở công ty chỉ để suy nghĩ, xem team còn vấn đề gì cho mình giải quyết, mình đang làm tốt chỗ nào, chưa tốt chỗ nào, cải thiện ra sao, v.v.

Sau 1 năm làm manager, mình thấy team phát triển rất nhanh:

  • Mọi người ai cũng làm việc năng suất, chất lượng code cao, luôn sẵn sàng giúp đỡ người khác.
  • Đa số kỹ sư đều có mục tiêu phấn đấu cụ thể, ít người bị chững lại.
  • Đa số kỹ sư đều có kỹ năng giao tiếp tốt, có thể đại diện team đi họp và tư vấn giải pháp kỹ thuật cho các team khác.
  • Mọi người ai cũng nắm quy trình làm việc, ai cũng hiểu vai trò của họ trong team. Giờ mình có nghỉ phép 2-4 tuần thì khả năng cao là team vẫn chạy tốt.
  • Team release đều đặn và rất ổn định, không có nhiều crash, hotfix.
  • Cân bằng giữa cuộc sống và công việc, mọi người làm đúng giờ thì về, không bị làm phiền buổi tối hay cuối tuần.
  • Đây là góc nhìn của mình, team mình nếu đọc được mà có góc nhìn khác thì comment bên dưới nha :))

Mình đã rất tự hào với team của mình. Dĩ nhiên là mình luôn tìm cách cải thiện hơn nữa chứ không dừng lại ở đây.

Viết đến đây là tới thời điểm hiện tại rồi (ngày 7 tháng 12 năm 2018).

Mình vẫn luôn cố gắng mỗi ngày, vẫn luôn đặt team lên hàng đầu và luôn cố gắng giúp mọi người đạt được mục tiêu lớn trong sự nghiệp. Hy vọng đến một ngày mọi người sẽ tự vận hành được team mà không có mình, lúc đó sẽ có những manager mới, giỏi hơn, giàu nhiệt huyết hơn để lãnh đạo team.

Lúc đó, mình sẽ tìm cho mình một vị trí khác, có thể là manager cấp cao hơn trong công ty, hoặc quay lại làm kỹ sư, hoặc làm manager ở công ty khác. Giờ mình vẫn chưa biết được hướng đi tiếp theo. Từ đây đến đó vẫn còn xa, mình chỉ biết cố gắng học hỏi để làm tốt vai trò manager hiện tại trước đã. Rồi sau đó tính tiếp.

Giờ mình sẽ tạm dừng series này ở đây. Khi nào có điều gì thú vị thì mình sẽ viết tiếp. Cám ơn các bạn đã quan tâm theo dõi trong thời gian qua.

Hẹn gặp lại vào ngày mai.

Đăng ký theo dõi blog

Nếu bạn cảm thấy blog mình có ích thì hãy đăng ký theo dõi để nhận email thông báo khi có bài viết mới nhé.

Các bài liên quan

Con đường sự nghiệp của một kỹ sư phần mềm (phần 8)

Con đường sự nghiệp của một kỹ sư phần mềm (phần 7)

Chuyện phỏng vấn với một công ty ở Mỹ