帶專案的一些體會以及合格的 Leader 應該具備什麼特質?
除了一流軟體企業外,軟體專案的 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人立場,如涉及侵權,請及時告知。
相關文章
- 一個優質的專案應該具有什麼特點
- 高效的工程專案管理軟體應具備什麼?專案管理
- 合格的IT專案系統分析員要具備的素質(轉)
- 一套優質的MES系統,應該具備哪些特質?
- 軟體測試人員應該具備什麼樣的性格?
- 程式猿應該具備哪些特質才能成為更好的程式猿呢?
- 淺談:合格的Java程式設計師應該具備的能力Java程式設計師
- 專案經理應具備的基本素質(轉)
- 一個BPM平臺應該具備什麼樣的功能
- 做一名合格的軟體工程師應具備的職業素質軟體工程工程師
- 專案經理之軟體專案經理必須具備的素質
- 一套完整的CRM系統應該具備什麼功能?
- IT人應該具備的能力
- 成功的旅遊景點夜遊專案應該具備哪些要素
- 高效率的專案管理軟體應具備的功能專案管理
- 爬蟲時代理ip應該具備什麼條件?爬蟲
- 建築裝飾工程專案經理應具備的素質(轉)
- 企業的大資料分析專家,需要具備什麼樣的素質?大資料
- 高階PHP工程師應該具備的一些技能PHP工程師
- 一個C/C++自學轉行者應該具備的素質C++
- 軟體架構師應具備的十大特點架構
- 一個優秀的系統分析員應該具備的三個素質
- 敏捷體驗設計師應該具備的12項技能敏捷
- 「譯」Python 專案應該都有什麼?Python
- 3-5 年的 PHPer 應該具備PHP
- 中級oracle dba應該具備的能力Oracle
- WEB 開發者應該具備的 6 大技能?Web
- 優秀的專案管理應具備哪些條件?專案管理
- 專案經理應具備的價值理念(轉)
- 一名合格的程式設計師應該是什麼樣子程式設計師
- 專案經理之專案經理應該做什麼
- 為什麼應該要做好專案結構的規劃
- 專案管理軟體中什麼是依賴管理,具體有什麼作用?專案管理
- 什麼叫PMP?專案管理的本質是什麼?專案管理
- 專案註定延期時,應該做什麼?
- 為什麼iOS專案應該用CocoaPodsiOS
- 程式設計師應該具備的意識程式設計師
- 高階PHP工程師所應該具備一些技能PHP工程師