技術領導(Technical Leader)畫像
程序員都討厭被管理,而樂於被領導。管理的角色由PM(project manager)扮演,具體來說,PM負責提需求、改改改。大多數情況,PM是不懂技術的,這也是程序員覺得PM難以溝通的原因。而後者由技術領導(technical leader)擔當,當然技術領導更接地氣的叫法是組長、老大,後文統稱為技術Leader。技術Leader復雜帶領程序員重逢陷陣,實現PM的需求,技術Leader同時擔當研發與管理兩重角色。一般說來,技術Leader的專業技能都比較牛逼,組員都比較信賴,因此願意被領導。
本文討論的是互聯網行業中比較常見的小團隊,即由幾個、十幾個成員組成的技術小組中,一個好的技術Leader者是怎麽樣的。“好”的定義有兩方面,第一是對公司而言,保質保量完成項目,培養人才;第二是對團隊成員而言,帶領大家前進,獲得精神與物質上的報酬。前者是核心,後者是達成前者的重要條件。程序員都有一個共識,選擇一個好的團隊、領導有時候比選擇一家公司更為重要。
以下是我對優秀技術Leader的一些思考,排名不分先後
本文地址:http://www.cnblogs.com/xybaby/p/7629392.html
對新技術保持敏感
互聯網行業,每年都有大量的新技術出現,作為技術Leader,需要對新技術保持敏感,特別是領域相關的知識。不管這些新技術能否用上,作為知識儲備總是必要的。對於技術Leader而言,甄別、了解一門新技術並不是很難,一來在《怎樣才算得上合格的程序員》一文中也提到,有了良好的計算機基礎能更加本質的看待新技術;而來,技術Leader能有更豐富的資源,比如來自其他小組或者本小組成員的技術報告。
謹慎使用新技術
了解、掌握新技術是一回事,但在業務中使用新技術是另一回事,特別是在已經上線的、復雜的產品中。決定是否采用新技術不能看噱頭、追潮流,而要考慮諸多因素,比如替換舊技術的必要性、新技術的優缺點、是否開源、新版本發布頻度、社區是否活躍、上手難度、組內是否有靠譜的同事深刻掌握。很多時候,新技術聽起來很酷,但不一定適用於當前的團隊和任務,選擇合適的,而不是追逐最好的。
不存在技術單點
在之前介紹分布式相關的文章中,都提到,分布式中最怕的就是單點故障。團隊中也是如此,任何比較復雜的邏輯,或者技術難度比較高的部分、或者涉及到多方合作的業務,都應該有兩個人了解、負責,至少一主一輔,否則當有人撂擔子的時候,事情就很難辦了。團隊成員解決不了的問題,最終都需要技術Leader來解決,維持standby也就減輕了自己的負擔。
以團隊產出作為核心任務
普通程序員到技術Leader的角色轉變中,需要意識到,對自己的考核不再是代碼寫得多好,而是整個團隊的產出。工作重心是讓整個團隊高效的協作,將任務分解給適當的人員,而不是事必躬親。
代碼不一定要寫的多,但一定要寫得好
技術型的領導、管理還是要以“技術”服人,牛逼的技術才能征服程序員。但術業有專攻,技術Leader也不可能在方方面面都是專家,但至少需要在業務領域有所深度 。代碼也不一定寫很多,但寫出來的代碼一定有足夠好,可以作為組內示範。如果是新項目、新業務,技術Leader一般會參與基礎模塊的開發,這個時候就一定要把代碼寫好,因為這部分代碼會接受跟多人的檢驗。
解決線上問題的能力
線上突發問題,更能考驗一個人的能力和心裏素質,當大家都一籌莫展的時候,如果技術Leader能夠抽絲剝繭、定位問題,自然能夠讓諸多程序員佩服不已。
鼓勵改進,公開表揚
有上進心的程序員都願意自發的改進、優化代碼。小的粒度比如提取共用接口、增加文檔;大的粒度比如重構一些基礎性模塊、引進新的思維或者技術。且不論效果如何以及最終是否采納,這種行為都是值得鼓勵的,作為技術Leader要多給大家點贊。在對外分享、講PPT的時候,將功勞歸功於組員,首先表揚、感謝組員。程序員的職業認同感還是很強的,需要來自業內人士的肯定。
為組員爭取利益
當團隊的利益與組員的利益不沖突的時候,應該盡量為組員爭取利益,精神層面和物質層面的,前途與錢途。一味的畫餅而不兌現只會失信於人,程序員是單純但並不傻,而且大家都要養家糊口,少來點虛的。
冷靜理智
在《怎樣才算得上合格的程序員》就提到,合格的程序員需要管理好自己的暴脾氣,優秀的技術Leader更應該如此。不管是面對重復犯錯的菜鳥,還是不負責任的老鳥,發火都不利於解決問題。先解決好問題,然後再私下與當事人溝通、批評。
剔除老鼠屎
在團隊中,一兩個技術弱一些的同事問題也不太大,只要態度認真,且願意學習。最怕的是“老鼠屎”:不負責任、難以溝通、整天抱怨、傳播負能量。對於這種人,不管技術水平如何,技術Leader都應該利用手中的權利,在溝通、警告無效的情況下,將其驅逐出團隊,當斷則斷。
知人善任
在一個團隊裏,自然有不同性格的人。有的人喜歡鉆研技術,有的人善於交流溝通。不同的人適合不同的工作,扮演不同的角色。技術Leader應該了解大家各自所長,在達成團隊目標的情況下,盡量安排各自喜歡的工作。
團隊的成就感與成長
經常看到有人說,如果在當前的公司、團隊學不到東西的時候,就可以考慮跳槽了。這就是說,大家在這個團隊裏面,是希望有所成長的,所做的產品是能夠得到認可的。技術Leader應該多促進組內、組外的技術分享,推薦好的學習資源,讓大家共同進步。
總結
綜上所述,個人覺得,要做一個好的技術Leader,首先得培養自己的技術魅力和人格魅力,技術是安身立命之本,是服眾的武器。其次也得利用好手中的權力,為成員謀福利、爭取利益,同時將老鼠屎剔除團隊。
程序員特別是新手程序員,如果能遇到一個好的領導是一件非常幸運的事情。
以上只是我的一點思考,而我還不是一個技術Leader,所以請輕拍 ??
技術領導(Technical Leader)畫像