Những kỹ năng nào tôi nên trau dồi để trở thành một người lãnh đạo phát triển / kỹ thuật? [đóng cửa]


82

Tôi hiện đang là một lập trình viên chuyên nghiệp. Tôi muốn mở rộng bộ kỹ năng của mình, nhưng tôi cũng muốn làm cho sự nghiệp nhảy lên thành một nhà lãnh đạo dev như là một phần của một nhóm. Tôi biết rằng có rất nhiều thứ để học (và điều này sẽ không phải là một điều tức thời) nhưng tôi nghĩ tôi đủ thông minh để làm điều đó và tôi đương đầu với thử thách.

Tôi chắc chắn rằng nhiều thành viên ở đây có thể đã tự mình trải qua điều này và hiện đang dẫn đầu thành công. Thật không may, mặc dù tôi biết một số lĩnh vực cá nhân tôi muốn cải thiện (kiến thức chuyên sâu, bề rộng kiến ​​thức, kỹ năng, v.v.), tôi không thực sự chắc chắn làm thế nào tôi sẽ bắt đầu một cái gì đó như thế này.

Là một lập trình viên bây giờ, tôi nên làm những bước nào để đưa tôi đến mục tiêu này? Tôi nên ưu tiên những gì?


Có cơ hội nào tại công ty hiện tại của bạn để được thăng chức lên làm trưởng nhóm không? Không có kinh nghiệm lãnh đạo nhóm, tôi tự hỏi nếu quá nhiều công ty chỉ thuê từ bên trong.
JeffO

@JeffO Tôi thực sự vừa chuyển việc. Tôi không biết liệu tôi có cơ hội ở đây không - tôi nghĩ có khả năng, nhưng đó là một công ty khởi nghiệp nhỏ và tôi nghĩ sẽ chỉ có một nhà phát triển tại một thời điểm.
bữa ăn trưa317

2
Chỉ có một kỹ năng: khả năng thuyết phục một người có thể đưa ra vị trí này để trao vị trí này cho bạn.
xoáy

1
Hóa ra, có một khả năng rất khác biệt là tôi thực sự không bị loại vì điều này. Nhiều như tôi muốn thăng tiến sự nghiệp của mình theo hướng này, đôi khi tôi nghĩ rằng tôi rơi nhiều hơn vào khía cạnh nhà phát triển - đôi khi tôi chỉ muốn gục đầu xuống và viết mã. Vẫn đang xem xét các khả năng, nhưng bây giờ thận trọng.
bữa ăn trưa317

Câu trả lời:


90

Để trở thành một người lãnh đạo kỹ thuật, những điều sau đây là rất cần thiết

  • Khả năng cố vấn nhân viên ở tất cả các cấp thâm niên, từ một người đã rời khỏi uni được 3 tháng cho đến một người đã lập trình được 30 năm

  • Một kiến ​​thức tốt về lĩnh vực phát triển của bạn. Điều này bao gồm: ngôn ngữ, khung, tiện ích, môi trường phát triển

  • Hiểu biết vững chắc về hệ thống quản lý vấn đề, kỹ năng quản lý dự án và kiểm soát phiên bản

  • Trở thành kẻ giết người

  • Biết cách tiến hành đánh giá mã kịp thời, những gì cần tìm và làm thế nào để giảm thiểu thời gian họ giữ và để thực hiện các thay đổi

  • Luôn cập nhật với những phát triển trong lĩnh vực phát triển của bạn. Ví dụ: nếu bạn không học các khung hoặc công nghệ mới từ .NET 2, thì hôm nay bạn sẽ thực hiện mọi thứ theo một cách khá ngược.

  • Cách viết bài kiểm tra đơn vị và giả, và để các nhà phát triển của bạn cũng viết chúng

  • Kiến thức về các mẫu thiết kế là gì và khi nào sử dụng chúng

  • Kiến thức về mùi mã là gì và làm thế nào để giảm thiểu chúng

  • Hội nhập liên tục

  • Khả năng lập kế hoạch dự án và phát hành

Tùy thuộc vào tổ chức của bạn và liệu bạn có kiến ​​trúc sư về nhân viên hay không, có lẽ bạn sẽ cần phải biết những điều sau:

  • Khả năng thành phần hóa các dự án của bạn và chia nó thành các phần chức năng

  • Hiểu biết thấu đáo về bảo mật, bao gồm cách xử lý mật khẩu chính xác, tách hệ thống, bảo mật dữ liệu, v.v.

  • Các khái niệm doanh nghiệp như xe buýt dịch vụ, hàng đợi tin nhắn, BizTalk

  • Mẫu thiết kế doanh nghiệp

  • Kiến trúc dịch vụ / RPC như SOAP và REST

  • Các khung ORM như Hibernate, Entity Framework, Doctrine

  • Triển khai liên tục

  • Đám mây

  • Khả năng đề xuất các công nghệ chính xác để sử dụng cho một dự án. Điều này có thể khó khăn nếu nhóm / cửa hàng của bạn chỉ làm .NET, hoặc PHP hoặc Java.

  • Thiết kế ứng dụng theo cách mà các cải tiến trong tương lai sẽ dễ dàng được cung cấp

Nếu bạn sẽ trở thành một người quản lý phát triển thì bạn cũng sẽ cần:

  • Kỹ năng phỏng vấn và cách tìm nhân viên phù hợp
  • Làm thế nào để giải quyết vấn đề của mọi người với các thành viên trong nhóm của bạn
  • Quản lý chỉ thị / mục tiêu kinh doanh và chuyển đổi những mục tiêu có liên quan thành thông tin cho nhà phát triển của bạn
  • Khả năng ước tính thời gian cho các lập trình viên của các kỹ năng khác nhau
  • Khả năng phân bổ nhiệm vụ cho các nhà phát triển chính xác dựa trên kỹ năng và khả năng của họ

Và cuối cùng, một số điểm được đề xuất khác:

  • Tìm hiểu bên ngoài miền phát triển của bạn

  • Học cách nói KHÔNG khi mọi thứ không thể hoặc nằm ngoài phạm vi hoặc xung đột với các hạn chế như ngân sách hoặc thời gian.

Quản lý nhóm là một vai trò đầy thách thức. Bạn cần phải là người có thể trả lời bất kỳ câu hỏi nào, bạn cần biết sử dụng đúng công nghệ (trừ khi bạn có kiến ​​trúc sư), bạn phải có kỹ năng quản lý con người và có thể tiếp cận được bởi nhân viên của bạn (đảm nhận vị trí quản lý). Ngoài ra, bạn cần có các kỹ năng ước tính chính xác để đảm bảo lợi nhuận của dự án và bạn cần có thể làm bẩn tay với mã của bất kỳ ai để xác định vấn đề và khắc phục nhanh chóng. Bạn cần tránh muốn tự mình làm mọi thứ và thúc đẩy môi trường làm việc nhóm không độc hại. Bạn cần liên tục đứng đầu trong nhóm công nghệ của mình và tìm hiểu những phát triển và kỹ thuật mới nhất, cũng như các xu hướng rộng lớn hơn trong ngành.

Bạn cũng nên thực sự biết ít nhất một nền tảng cơ sở dữ liệu và biết rõ về nó. Biết cách thực hiện sao chép, các thủ tục được lưu trữ, cách trình tối ưu hóa truy vấn hoạt động và cách thiết kế một lược đồ đúng cách và các trường để lập chỉ mục.

Bất kể vị trí chính xác, bất kỳ vai trò cao cấp nào cũng đòi hỏi bạn phải có khả năng giao tiếp hiệu quả. Nếu bạn không phải là một diễn giả tự tin, hãy nhìn vào việc làm một cái gì đó như Toast Masters (nói trước công chúng). Tìm hiểu làm thế nào để thực hiện và giữ liên lạc bằng mắt. Hãy tự tin. Ăn mặc phù hợp cho vị trí. Dẫn bằng ví dụ.


2
Tôi chỉ phác thảo một số ý tưởng mà tôi có thể nghĩ ra một cách nhanh chóng. Tôi sẽ xem lại và bổ sung thêm sau. Câu hỏi hay.
Sam

Tôi có thể thứ hai lợi ích của Toastmasters. Nó đã giúp tôi khá nhiều trong sự nghiệp. Có thể truyền đạt rõ ràng suy nghĩ của bạn (đặc biệt là những suy nghĩ kỹ thuật cho những người không có kỹ thuật) là một kỹ năng vô giá để sở hữu.
Jason Swett

27

Theo kinh nghiệm của tôi, khách hàng tiềm năng có một chút ít liên quan đến công việc bẩn thỉu của lập trình thực hành và nhiều việc phải làm với quản lý. Vì vậy, tôi khuyên bạn nên như sau

  1. Đầu tư nhiều thời gian hơn vào thiết kế và theo đuổi kiến ​​trúc và phát triển . Là người dẫn đầu, chức năng của bạn sẽ tập trung vào việc cung cấp hướng dẫn kỹ thuật và hướng dẫn cho nhóm của bạn. Bạn sẽ được giao nhiệm vụ nhiều hơn để hiểu làm thế nào các phần của một tổng thể khớp với nhau và ít hơn về cách thức hoạt động của hệ thống ống nước. Đừng hiểu sai ý tôi, các yêu cầu kỹ thuật vững chắc của bạn phải là một người dẫn đầu hiệu quả và hiểu biết, nhưng một cái nhìn ở cấp độ cao hơn về những gì đang diễn ra và cách nó sẽ hoạt động sẽ trở nên quan trọng hơn ở đây. Bạn nên biết nhiều mẫu thiết kế thực hành tốt nhất và thực hành mã hóa hiệu quả

  2. Học cách đa tác vụ và quản lý thời gian . Nếu bây giờ bạn giỏi về điều đó, điều đó thật tuyệt: phát triển hơn nữa. Là một nhà phát triển, bạn chỉ cần lo lắng về nhiệm vụ / dự án hiện tại của mình. Là một người dẫn đầu, bạn sẽ có

    • Để tham dự nhiều cuộc họp hơn bạn quan tâm. Đây có lẽ là phần khó chịu nhất trong lãnh đạo nhóm
    • Làm việc về phân bổ nguồn lực. Nếu bạn may mắn, tài nguyên sẽ khan hiếm và dự án dồi dào.
    • Đi đầu về thiết kế và kiến ​​trúc dự án
    • Tùy thuộc vào quy mô và cấu trúc của tổ chức, cung cấp vô số báo cáo, đúng tiến độ và đúng thời gian. Hãy nghĩ về người dẫn đầu như một người quản lý dự án thuê thấp.
  3. Chuẩn bị tinh thần để giao phó hiệu quả . IMO này sẽ là bit khó điều chỉnh nhất. Là một nhà phát triển, bạn đã quen với việc bị bẩn tay, hoàn thành công việc. Làm tất cả các hệ thống ống nước và nghiên cứu. Điều đó sẽ phải dừng lại hoặc giảm bớt. Các hợp đồng biểu diễn đi vào, bạn đưa nó ra cho đội. Bạn sẽ nhận được một phần của hành động, không chỉ là bạn đã từng làm. Và bạn sẽ cắn lưỡi để chống lại sự cám dỗ để dồn thêm hành động cho chính mình.

  4. Dọc theo dòng chuyên nghiệp hơn, hãy xem xét một số đào tạo sẽ không chỉ tăng khả năng của bạn, mà còn thay đổi triển vọng của bạn . Một khóa học sụp đổ trong quản lý dự án phần mềm sẽ không bị tổn thương. Lean Six Sigma cũng là một chương trình đào tạo rất tốt (tôi có thể làm chứng về hiệu quả của nó) sẽ giúp bạn xem xét giải quyết vấn đề từ góc độ logic hơn. Chưa kể rằng từ vị trí Dẫn đầu, bạn đã sẵn sàng cho các vai trò cao cấp hơn, sẽ đòi hỏi ít kỹ năng thực hành và khả năng quản lý hơn.

  5. Rèn luyện kỹ năng giao tiếp và giao tiếp của bạn . Bạn sẽ là điểm chính của nhóm của bạn từ thế giới bên ngoài. Người quản lý của bạn hoặc người giám sát khác sẽ đến với bạn trước. Các đơn vị / nhóm khác trong tổ chức của bạn sẽ giao tiếp với bạn về bất cứ điều gì liên quan đến nhóm trước tiên. Bạn sẽ quản lý tài nguyên khó khăn và khó lường nhất trong số tất cả: mọi người. Bạn cần phải phát triển một làn da dày, học cách nuốt một lượng lớn niềm tự hào và chịu trách nhiệm cho sự thất bại của đội của bạn.


2
Những câu trả lời tuyệt vời, tôi thích cách bạn lưu ý tất cả những thứ mà với tư cách là một nhà phát triển mà bạn thường không biết gì - đặc biệt là phái đoàn. Công việc cuối cùng tôi đã ủy thác mọi thứ tôi có thể và vẫn còn hàng núi thứ để giữ cho mình bận rộn. Sau đó, trong những khoảnh khắc miễn phí (hiếm), tôi sẽ làm những thứ "nhàm chán" - đề nghị giúp sửa các lỗi nhỏ, tài liệu. Phải dẫn từ phía trước.
Rocklan

2
+1 để làm nổi bật rằng vai trò 'lãnh đạo' thường liên quan đến quản lý nhiều hơn kỹ năng kỹ thuật
Kreas

Đây là một câu trả lời nổi bật và thực sự nắm bắt được bản chất của vai trò. Làm tốt.
Lloyd Moore

14

Những điều Sam không nói cũng quan trọng:

  • Làm thế nào để chỉ định công cụ lên và cung cấp cho các nhà phát triển khác làm việc. Một phần công việc của bạn là giữ cho các nhà phát triển khác sử dụng 100%. Viết thông số kỹ thuật không rõ ràng là rất quan trọng.

  • Cách xây dựng ứng dụng bộ xương / nguyên mẫu mà mọi người khác nên tuân theo

  • Làm thế nào để bồi dưỡng tinh thần đồng đội tốt

  • Cách tham dự, lái xe và dẫn dắt các cuộc họp, cách ghi lại các mục hành động

  • Cách ước tính, viết kế hoạch dự án và cập nhật kế hoạch dự án

  • Làm thế nào để nhìn vào tương lai - nếu một vấn đề sẽ xảy ra trong 3 tháng, bạn muốn cố gắng giải quyết nó sớm nhất có thể. Nếu một nhà phát triển đang đi nghỉ trong 7 tuần, bạn cần bắt đầu lập kế hoạch cho nó ngay bây giờ.

  • Làm thế nào để nói chuyện với quản lý. Họ nói một ngôn ngữ khác với chúng tôi. Cung cấp cho họ giải pháp, không phải vấn đề. Nói với họ những gì các công cụ kỹ thuật có ý nghĩa với họ.

Và trong khi Sam đã nói điều này, một trong những điều quan trọng nhất là học cách nói không . Bạn sẽ làm điều này rất nhiều . Một cách khác để xem xét nó là nói , nhưng "chỉ khi chúng ta có thể nhận được nhiều tiền / thời gian / tài nguyên hơn" - hoặc "đó là bản phát hành thứ hai" :)


Tôi nghĩ rằng nhiều tác phẩm của bạn đi vào nhóm Kiến trúc sư hoặc PM. Nhưng yeh, đôi khi các nhà phát triển dev phải làm điều đó.
SandRock

11

Tất cả những điều này là bởi cuốn sách và câu trả lời tốt. Cho phép tôi đánh bạn bằng thực tế.
Dù bạn có tin hay không, phần lớn thời gian bạn sẽ dành để giải thích cho các nhà quản lý

  • làm thế nào một vấn đề khó giải quyết hoặc
  • tại sao nó không thể được giải quyết trong dòng thời gian nhất định hoặc
  • thậm chí làm thế nào ít quan trọng hơn để giải quyết.

Đối với điều này, bạn cần các kỹ năng giải thích những thứ kỹ thuật cho những người không có kỹ thuật, về mặt kỹ thuật. Và nó rất khó. ví dụ: xem xét giải thích P = NP đến 6 tuổi. Thật không may, không có đào tạo chính thức cho điều đó, và bạn phải tự học nó.

Ngoài ra đây là vị trí mà chính trị sẽ bắt đầu đánh bạn. Người quản lý sẽ bảo bạn ủng hộ một người vì anh ấy / cô ấy tuân theo quy trình, nhưng bạn biết rằng người đó không có ích gì trong nhóm của bạn vì nhiều lý do từ thiếu kỹ năng kỹ thuật đến không phải là thành viên nhóm tốt. Vì vậy, bạn vẫn không chỉ làm việc với người này mà còn xếp hạng tốt cho người này. Ngược lại là người có kỹ năng tốt và là thành viên nhóm rất hiệu quả nhưng không biết cách làm hài lòng quản lý và do đó được xếp hạng ít hơn.
Sau đó, có những cuộc họp vô ích, một người nào đó ở vị trí cao nắm giữ từ vị trí xa, giảng về các quy trình hiệu quả và cách biến thể quy trình mới nhất của anh ấy / cô ấy sẽ tăng năng suất. Bạn phải biết cách che giấu khuôn mặt nhàm chán của mình và trông tràn đầy sức sống.


1
"phải biết cách che giấu khuôn mặt nhàm chán của bạn và trông tràn đầy sức sống" hahaha
Adrien Be

Tôi luôn cảm thấy nhàm chán khi những cuộc họp này bắt đầu, ngoại trừ điều gì đó liên quan đến kỹ thuật được thảo luận
Akshay Mukadam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.