今天一個小夥伴問我,如何「快速提升」一個團隊的軟體開發成熟度?我犯難了。我個人理解一個團隊的軟體開發成熟度涉及的東西很多,但最簡單最直接的方法就是發錢漲工資,可是估計很多公司不願意,那就只有扣了。
快速提升的目標
短期制度解決
如果想短期快速提升,那就直接梳理好最關鍵點,制定規章制度,然後通過獎懲制度讓大家遵守。這種做法成本不高,也許還能創收給團建攢點經費。這種做法優點就是見效快、直達痛點,但是副作用也很大,不厚道不人道,無法持久,畢竟工作合同裡可沒寫扣錢的事兒。一天兩天一週兩週還行,時間一長人都跑了。1-2個月內可以考慮這種做法。
舉個例子,服務穩定性問題。一段時間公司的某些服務經常出現問題,根因也有很多,比如上錯程式碼、上線後設定沒改、容器狀態不對,告警誤報等等。然後成立了一個服務穩定性小組,對每次事故進行復盤定責。人為原因直接罰錢,輕罰一線重罰領導。某種程度上解決了一些問題。但是時間一長這種方法就不靈光了,因為涉及到個人的收入,所以在最後查原因、影響範圍的時候下面有的人就開始糊弄了,把影響功能、時間、人數、對外影響往輕了說。同事之間總不能天天拆臺互相揭發吧?那這活還怎麼幹。尤其是大領導自己關注度降低,找個不熟悉、不深究、職位低的人來盯這事的時候,慢慢也就形成了虛設。(BTW,一把手業務助理做這事其實是個不錯的選擇。手拿尚方寶劍,領旨辦案,且沒有利益牽絆。)
中期流程和工具解決
但如果我們把時間放到3-6個月這個長度,那麼可以選擇的方法就很多。
我們以《百度工程能力白皮書》中涉及的 Server 端工程能力地圖為例,涉及的 33個能力,如果想短時間內提高這麼多能力是不可能的。3-6個月內挑一些關鍵的實踐還是可以做一些事情的。
首先為每個團隊指定一名全權負責人,也就是我之前的一篇文章提到的 FTO。效能不好 K 他就行,團隊內合作不暢 K 他,結果不滿意 K他。經過一段時間團隊產研效能就有所提高。K 他之前記得授權,別瞎 K。明明自己沒授權什麼都攬在自己手裡,結果出了問題說成是別人的問題就蝦扯蛋了。
其次把團隊的職責,團隊中每個人的職責都明確出來,梳理出團隊和個人的目標,讓團隊和個人都知道自己的權利和責任,知道自己的工作邊界,知道自己的目標。不合理的團隊組織架構和混亂不清楚的工作邊界往往是產研團隊效能低下的根本問題,且這個問題往往不能自查或不願意承認。
然後,我們幫各個 FTO 梳理團隊內一個個的流程和規範,對團隊內的每個成員進行培訓,把流程和規範融入到產研共同作業流程的過程中,針對目前最痛的點設定成檢查點,從流程和關鍵點提高團隊的研發效能。這個過程需要團隊內的成員、團隊外的管理人員都形成共識。
接著專人搭建工具和平臺支撐流程和規範。所有的流程和規範不能只停留在嘴上,停留在紙面上,要有工具和平臺的支撐。沒有一站式的,就先單點滿足。沒有中文的,就先英文頂上。唯一的要求就是快。如果公司覺得這方面的投入值得,能採購商業軟體那就太好了。把流程和規範落到工具和平臺上,進行培訓,讓大家熟悉。
同時,我們要招人。招更能滿足業務需求的各種人才。包括替換不合格的產品,能力不強的研發,沒責任心的運維,經驗缺乏的PMO,不負責的領導等。把團隊的短板補上。
小文總結
簡單總結下,短期通過制度解決痛點問題。優點是直接、快速,缺點是不可持續,效率低。中期通過流程和工具解決,通過不斷優化流程,搭建工具和平臺支撐流程和規範的落地, 同時不斷地優化流程和改進工具形成正迴圈,劣勢是需要時間需要人力物力的投入。公司的實力終究還是體現在人才上,不斷提高人才質量和密度才是根本。
最後感謝「無散人」的提問,讓我有機會回答,謝謝。