Bí mật tối tăm khi trở thành tech lead mới: Bạn hiện đang chịu trách nhiệm với những người bạn của mình
Bài viết này ban đầu được xuất bản trên .cult do Neil Green viết. .cult là một cộng đồng tại Berlin dành cho những nhà phát triển. Chúng tôi viết về mọi vấn đề liên quan đến sự nghiệp, sản xuất các tác phẩm tài liệu gốc, và chia sẻ rất nhiều câu chuyện chưa kể từ những nhà phát triển trên khắp thế giới.
Trở thành một tech lead là một thành tựu to lớn, và bạn nên tự hào với trách nhiệm đã được giao. Lãnh đạo về công nghệ là một bước đệm vào quản lý hoặc kiến trúc, vì vậy sự tiến triển sự nghiệp của bạn đang trên đúng đường. Vì bạn có lòng tham vọng, bạn nên nghĩ về bước tiến sự nghiệp tiếp theo của mình vì điều đó sẽ giúp hướng dẫn ưu tiên hàng ngày của bạn trong những năm tới.
Khi trở thành tech lead, bạn luôn nên tự đặt cho mình ba câu hỏi:
- Các tính năng sắp tới là gì?
- Codebase sẵn sàng như thế nào cho các tính năng sắp tới?
- Đội của tôi có khả năng xử lý các tính năng sắp tới không?
Hiểu rõ về các tính năng sắp tới
Biết được những tính năng nào sắp tới là quan trọng đối với một tech lead, và cách duy nhất để biết là xây dựng mối quan hệ chặt chẽ với các đối tác kinh doanh của bạn. Bất kỳ điều gì đội của bạn có thể làm trong vài tháng tới đều đã được thảo luận, ngay cả khi nó chưa được định nghĩa một cách chính thức. Bạn biết được càng nhiều về những tính năng mà doanh nghiệp có thể yêu cầu, bạn càng có thể chuẩn bị tốt cả codebase và đội của bạn.
Xây dựng mối quan hệ làm việc linh hoạt, không chính thức và hiệu quả với các bên liên quan kinh doanh sẽ làm công việc của bạn như một tech lead dễ dàng hơn nhiều. Nơi mà đối tác này sẽ mang lại lợi nhuận là khi bạn phải đàm phán về ngày giao hàng và các yêu cầu cần phải hoàn thành trước ngày đó. Nếu bạn không có một mối quan hệ tốt với các đối tác, bạn sẽ liên tục bị kẹt giữa họ và đội của bạn, và đó sẽ là một cơn ác mộng. Tuy nhiên, với một mối quan hệ làm việc tốt với đối tác kinh doanh, bạn sẽ có thể đàm phán để đưa đội của mình ra khỏi tình huống khó khăn trước khi chúng xuất hiện.
Hãy giả sử bạn được thông báo rằng bạn có một tuần để hoàn thành công việc của một tháng. Thay vì tức giận, bạn có thể mời những người bạn tốt của mình phía bên kinh doanh đi ăn trưa. Khi đó, bạn nói về thời tiết, thể thao và những điều đang xảy ra trong tin tức. Trong những phút cuối cùng của bữa trưa, bạn có thể chuyển dịu vào một cuộc trò chuyện về khoảng cách giữa những gì doanh nghiệp muốn và những gì đội của bạn có khả năng giao hàng.
Những người kinh doanh quen với cuộc đàm phán trong suốt bữa trưa, vì vậy điều này đến tự nhiên với họ. Tuy nhiên, đối với một tech lead mới, loại cuộc trò chuyện này có thể làm bạn nản lòng. Tuy nhiên, bạn phải kiên trì trong việc xây dựng những mối quan hệ này và chấp nhận rằng bạn sẽ vụng trộm lúc đầu khi kỹ năng giao tiếp của bạn trở nên tinh tế hơn. Nhiều năm sau đàm phán với doanh nghiệp về cách thực hiện tốt nhất một cơ hội sản phẩm sẽ trở nên tự nhiên và có lẽ sẽ là lý do chính bạn được thăng cấp lần tới.
Hiểu rõ về trạng thái của codebase
Hiểu rõ về trạng thái của codebase là một trách nhiệm cốt lõi của tech lead. Cách duy nhất để có được kiến thức này là nghiên cứu từng dòng code tạo nên ứng dụng. Đáng ngạc nhiên, có rất ít tech lead làm điều này, thay vào đó, họ than phiền với đội của họ khi hệ thống không hoạt động theo cách họ nghĩ. Điều này là lãnh đạo kém chất lượng. Bây giờ bạn là một tech lead, bạn không thể phàn nàn nữa, vì đây là codebase của bạn bây giờ – bất kể ai đã viết nó ban đầu.
Cảm giác sở hữu codebase là một khía cạnh cốt lõi của việc trở thành tech lead. Bây giờ bạn là người giữ gìn và bảo vệ codebase. Bạn là đường phòng và cuối cùng của chất lượng và thiết kế code. Bất kể trạng thái của code khi bạn kế thừa nó, bây giờ đó là trách nhiệm của bạn để chuẩn bị nó cho những gì doanh nghiệp có thể cần nó làm trong tương lai gần. Lưu ý rằng đây cũng là sự khác biệt chính giữa một tech lead và một kiến trúc sư trưởng – kiến trúc sư quan tâm đến những gì doanh nghiệp có thể cần trong tương lai xa.
Tùy thuộc vào codebase bạn kế thừa, bạn có thể cảm thấy như bạn đã trúng số độc đắc hoặc đã bị rủi ro. Thật không may, vì kiến trúc hệ thống chính xác và chất lượng code không còn được nhấn mạnh nhiều trong ngành công nghiệp phần mềm, bạn có thể cảm thấy nhiều hơn là cái sau. Điều này là điều dễ hiểu, nhưng cảm giác sợ hãi của bạn sẽ giảm đi khi bạn hiểu rõ hơn về toàn bộ codebase và cách nó hoạt động một cách chính xác. Nó có thể lộn xộn, nhưng đó sẽ là lộn xộn của bạn, và giống như một con vật bị thương, nhiệm vụ của bạn là chăm sóc nó trở lại lành mạnh.
Là người đứng đầu kỹ thuật, mọi người sẽ giả định rằng bạn là nhà phát triển phần mềm có khả năng nhất trong đội — như bạn nên là. Là người phát triển phần mềm xuất sắc nhất trong đội là một trách nhiệm mang theo nghĩa vụ phải đảm nhận những nhiệm vụ khó nhất. Có lẽ không có nhiệm vụ nào khó khăn hơn việc tái cấu trúc một codebase cũ để sử dụng các mô hình, frameworks và công nghệ mới.
Bạn không nên yêu cầu đội của bạn làm điều gì đó mà bạn không sẵn lòng thực hiện, vì vậy khi đến lúc phải làm một công việc tái cấu trúc lớn, bạn nên là người thực hiện. Việc tái cấu trúc codebase là một bài tập không được đánh giá cao đối với mọi người ngoài đội của bạn, nhưng đội của bạn sẽ rất đánh giá và tôn trọng nỗ lực của bạn – đặc biệt nếu bạn giỏi trong việc tái cấu trúc.
Đảm bảo đội của bạn có thể xử lý các tính năng sắp tới
Liên quan đến khả năng của đội của bạn, đây là nơi mọi thứ có thể trở nên thách thức đối với một người đứng đầu kỹ thuật mới. Có hai tình huống bạn sẽ phải đối mặt, cả hai đều có thể gây vấn đề:
- Bạn đã được thăng chức trên cấp đồng nghiệp của mình, điều này không tránh khỏi vấn đề giữa cá nhân.
- Bạn được tuyển dụng vào vị trí tech lead và đang kế thừa một đội mà bạn không biết.
Hầu hết các tech lead bắt đầu sự nghiệp của họ bằng cách làm kỹ sư cấp cao và được thăng chức tại công ty hiện tại của họ. Giả sử bạn được mọi người yêu mến, thì mọi người có thể vui mừng học theo hướng dẫn của bạn. Dù sao, họ chỉ là đồng nghiệp của bạn hôm qua, nhưng hôm nay bạn là người quyết định. Mọi người thích được nhắc nhở hàng ngày rằng họ không đủ tốt để được thăng chức lên tech lead, nhưng bạn lại đủ tốt.
Tôi đang đùa, tất nhiên. Đây là bí mật tối tăm của việc trở thành tech lead mới — thường bạn sẽ đứng đầu đội của bạn bây giờ. Điều này khó khăn khi bạn phải đưa ra hướng dẫn cho những người bạn trước đây bạn thường xuyên giao tiếp, và khi bạn làm điều này, cảm giác ganh tị là phổ biến. Tin tốt về việc được thăng chức trên cấp đồng nghiệp của bạn, tuy nhiên, ít nhất là bạn biết về khả năng của họ. Không phải như khi bạn kế thừa một đội mới.
Kế thừa một đội có nghĩa là bạn không biết gì về khả năng của họ, nhưng bạn phải biết họ có thể làm gì để trở thành một người lãnh đạo hiệu quả. Thật không may, cách duy nhất bạn thực sự hiểu điều này là thông qua thử nghiệm và lỗi trên một dự án thực tế, vì bạn chỉ biết được những gì mọi người không thể làm khi họ thất bại. Nếu những nhà phát triển phần mềm tự nhận thức và trung thực về khả năng của họ, họ có thể nói cho bạn biết, nhưng thường thì họ không.
Trở thành tech lead mới với một đội mới sẽ đưa bạn đến giới hạn của khả năng lãnh đạo. Những vấn đề bạn sẽ đối mặt có thể rất lớn đến mức ngay cả sau khi đọc hàng trăm cuốn sách liên quan đến lãnh đạo, bạn vẫn có thể không có đủ kiến thức bạn cần. Điều này thực sự là thách thức, và không có cách nào để tránh khỏi điều này. Lời khuyên tốt nhất mà tôi có thể đưa ra là một số nguyên tắc bạn nên luôn cố gắng tuân theo:
- Luôn cố gắng làm đúng điều.
- Luôn hành động với chính trực.
- Luôn đối xử công bằng với mọi người.
- Luôn trung thực.
- Luôn tôn trọng.
- Không bao giờ yêu cầu đội của bạn làm điều bạn không sẵn lòng làm.
- Không bao giờ lấy công lao đội của bạn.
- Không bao giờ đổ lỗi cho ai khác ngoại trừ bạn về sự thất bại của đội của bạn.
- Không bao giờ bỏ lỡ cơ hội học từ sự thất bại.
- Không bao giờ để đội của bạn mải mê trong sự thất bại của họ.
Nhớ rằng…
Your first few years as a tech lead will be your hardest, but that time will pass. The more mistakes you make, the more you will learn, and that will form the foundation of your experience. From experience will come wisdom, and then expertise. It may be many years before you consider yourself a wise and expert technical leader. Still, you are starting at the only place you can: at the beginning.
