帶專案的一些體會以及合格的 Leader 應該具備什麼特質?

龐順龍發表於2019-05-11

除了一流軟體企業外,軟體專案的 Leader(泛指專案經理、技術經理、架構師等)有很大一部分是不夠合格的。

許多專案有這樣幾種 Leader:

1. 泛泛而談型

很多時候 Leader 僅僅給出一個大方向,提一些高屋建瓴的理論方向,事情還是交由普通開發人員去做。完了可能又會回頭埋怨開發人員的水平不行,沒有達到他的預期。最終軟體產品磕磕畔畔釋出,達不到預期,責任推到開發人員頭上,Leader 又高屋建瓴祭出華麗的重構方案或二期方案。

2. 純技術型

這樣的 Leader 也有很多,可能來自於團隊內部的大牛升職,也可能來自外部,他們有個共同的特點,愛“玩”技術。這樣的 Leader 也許是具備了太多“工程師氣質”,可能對於管理,人事,專案進度,客戶關係等問題抱有牴觸或並不擅長,信奉大型網際網路公司自由的工作氛圍,推崇“牛逼”的技術。我遇到過一個20個人的團隊 Leader,公司的抱有極大期待的產品,要用 GO 語言去做。

3. 純管理型

還有許多團隊的 Leader,非技術出身,而是純管理人員。他們中有許多管理能力沒有問題,但是對於軟體專案,卻常常弄得團隊疲於奔命。因為軟體專案的人員工數很難精確衡量,技術難度(生產性)對於純管理人員來說很難把握,導致不能全把握專案,對於專案中的技術風險,時間風險不能有效控制。

理想中的 Leader 應該至少具備以下特質:

1. 技術實力過硬,但不愛玩技術。

我相信這一點足以 Pass 掉 90% 人,矛盾嗎?不矛盾,技術實力過硬,才足以擔當軟體專案的 Leader 把控全域性,這一點毫無疑問。但是他必須有清晰的目標和大局觀,知道自己到底在做什麼,因為 做技術 和 做專案 是完全兩件事。要做專案就不要玩技術,要玩技術請去研究機構。有許多 Leader 在承接新專案時,愛使用自己並不瞭解的新興技術,只為在自己的簡歷中增添一筆,卻對其中的風險認識嚴重不足,甚至最終效果與理想中差之甚遠。

 

2. 有能力降低複雜度,而不是增加複雜度。

這是上一點的延伸,做為一個 Leader,不管是做產品還是做專案,技術不是目標,技術只是實現目標的過程,這個過程,越可靠,越容易,就意味著成本越低,風險越小。強悍的 Leader,能夠把複雜的目標需求,高度分解,把複雜的開發技術,抽絲剝繭,帶領開發團隊一步一步穩紮穩打的向前。

從企業做專案做產品的角度看,技術本身沒有“牛逼”與“落後”之分,許多人對兩年前的技術嗤之以鼻,對新興概念趨之若鶩,這樣的人,個人認為只能劃撥到“軟體開發愛好者”當中去。成熟的技術意味著可靠,學習成本低,方案成熟,最最重要的:風險低。

在編碼方面,有許多 Leader 推崇一些牛逼的寫法,牛逼的設計方法,對一般10行程式碼完成的工作,縮減到2行,大加讚賞,如果是個人專案,自己開心就好,但是對於團隊協作,商業專案,這是不可取的。所有的目標都應該放在:提高生產性,降低複雜度。二十年前,厲害的編碼方法是為了節約儲存成本,執行成本,但是當下,儲存成本與執行成本與人力成本相比,已基本不值一提。別人多花半個小時去理解程式碼的成本,已經大大超過你節約的那幾個位元組的儲存成本,還不包括經驗不足的開發人員理解錯誤所造成的損失。

3. 有一定的奉獻精神,願意帶領大家成長

做軟體專案的 Leader 是要有很大奉獻精神的,因為傳統行業還有拜師這麼一說,一日為師,終生為父,但是在 IT 業,還沒看到過拜師這一說,開個玩笑。

Leader 要有一個覺悟,苦心培養和教育開發團隊,幫忙他們成長,但是懂得感激你,懂你好的人,不會太多。但是依然要去做這件事情,想方設法幫助團隊成長,因為更重要的目標是把專案把產品做好。方法有很多,比如我們過去嘗試過組織書友會,當時找的是《程式碼大全》這本書,每週兩次,輪流講解,也組織過PPT學習,公開Review等方式,都取得過比較好的效果。

4. 強有力的控制慾與控制力

我認為一個沒有控制慾的人是難堪大任的,有了控制慾才能談控制力。做為軟體專案的 Leader,面對複雜的外部環境,內部環境,對控制能力的考驗是極大的。

外部環境的風險可能包括企業或客戶較高的預期,極具挑戰的時間節點,不確定的目標需求,做為 Leader ,必須有能力化解。

內部環境的風險主要來自人員,如缺編,水平參差不齊的團隊。

曾經我帶過一個基本由新手組成的團隊,客戶想要的軟體產品卻要達到較高的設計指標,並且有著嚴格的工期要求,此時,控制慾與控制力就發揮了基本的作用,將軟體高度模組化,核心功能全部由我自己設計編寫,組織團隊到會議室看著投影儀教他們寫外掛,找一個有代表性的功能進行實現,對實現的方法,編碼的風格做強制要求,讓他們照抄,要求他們達到程式碼風格高度統一。對UI部分的所有細節都進行了高度的強制要求,專門做了一個UI DEMO,對UI上的元素佈局方法,間距,邊距等進行說明。每週若干次的專案例會以外,至少兩次程式碼 Review,考慮到團隊成員的實際水平,開始我會在 Review 時幫著他們重寫,一行一行的推敲,告訴他們如何分析,如何設計,如何編寫,幾次以後再不合規,加班加點也必須重寫。經過一段時間的磨合,大家逐漸進入狀態,形成了較強的凝聚力與戰鬥力。

5. 誠以待人

雖然放到第5點,但這卻是最最重要的一點,這一點做不到,以上所有都是一紙空文。

做為一個團隊 Leader,必須和團隊成員坦誠相待,能夠幫助大家的就用心幫助,對於自己也不是特別擅長的問題,不可以顧左右而言他,對團隊成員進行打壓,這一點亦有許多人做不到。此外,團隊成員的工作情況,生活情況,都必須有基本的瞭解,家庭生活壓力是否較大,是否有家人需要照顧,住的是遠是近,公司給的待遇是否偏低,都必須在心裡有一杆秤。至於怎麼做,我想對於一個成年人來說,無需多言。

 

龐順龍最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章