軟件開發的關鍵是人才:保持開源的心態
作為一名經理,你應該花一半的時間在溝通上,無論是團隊溝通,還是一對一的溝通。每天接觸團隊中不同的開發成員,把脈整個團隊的動向,要提前意識到問題的存在。
管理好開發團隊本身是一件非常有挑戰的事情。由于文化上存在差異、語言上存在障礙,溝通方式也會有所不同,管理者會面臨著項目失控的危險。這里,我為大家分享當今最成功的項目管理技巧,來幫助分布式軟件開發團隊保駕護航,成功管理好項目。
技巧一:不要吝嗇花錢,人才是關鍵
分布式開發面臨著許多挑戰,并不見得成本會低多少。但如果你能搞定的話,不管哪里,只要能挖掘到一些頂尖人才,那么優勢就無與倫比了。畢竟,我們沒辦法保證每一個優秀的開發者都能出現在辦公區20英里內,但如果你能匯聚不同地方的開發人員,有效的管理他們,那么你的人才儲備池就任你來差遣了。
技巧二: 工欲善其事必先利其器
首先最重要的事情是要確保你的工具支持分布式開發,而且要鼓勵大家來使用它。確保全球范圍內都有權限訪問到每一份文檔、源代碼文件、以及有相應的處理操作。這個說起來容易,做起來難。要實現利用這些工具來遠程辦公,你一定會被這種難度大吃一驚。在家里工作,測試工具和流程、檢查代碼、部署等等。有些集成工具可以用來探測一些連續生成的錯誤,如果你團隊的每位開發人員此時都在辦公,那就最好了。但最為關鍵是在不同時區的開發人員具體的工作時間,沒有人愿意看到有人會延遲檢查錯誤代碼。這里強力推薦Jenkins (aka Hudson)、CruiseControl, 以及Bamboo這三款開發開發工具,它們可能會是你的救星。
技巧三:保持開源的心態
新建一個項目或者子項目。傳統的項目很難拆分成子項目來適應分布式開發。但是新項目會提供一些機會,讓你充分利用一些工具,這些工具應用到了分布式方法。比如,在低版本系統,比如CVS缺少一個分布式版本控制模型,而分布式版本控制系統GitHub、 Mercurial以及Launchpad,它們可以呈現一個分布式環境。我們致力于提供一個開源的合作水平,即使你的項目不會開源,但我們需要保持一個開源的心態,鼓勵更多的人來參與,我們還鼓勵大家開發更多的模塊,提供更多的基于API的方法,這會讓開發人員駕輕就熟,沒必要全面了解系統的細節,就可以開發一個項目。
技巧四:保持信息的透明化
對于分布式開發環境,前期的需求收集和驗證至關重要。否則,時區上的差異、語言上的差別、功能上的不同會造成分布式項目在運行過程中的風險,偏離預期的規劃。書面上的溝通常常會比口頭上的表達取得更好的效果。在團隊中確定合適的人選,能夠提供定期的書面項目更新,標示項目的進展和問題。當然,這里我們覺得更新頻率比關注數量更重要。記住,要想幫助大家適應分布式開發,就要保持項目的透明化,而即使要保持小幅度的公開,都需要花很多的精力。
技巧五:合適的數量是最好的
“Lagom ?r b?st”是瑞典的常用表達式,意思是“合適的數量是最好的。”我們會把這個術語用在MySQL上,來確保模塊化。每個項目或者團隊都有不同的需求,而一個項目越趨向于模塊化,那么就越容易組織團隊。在組建團隊時,需要考慮不同的技能和時區差異等因素。如果說距離是一個挑戰,那么時區就是殺手了。如果說團隊中成員所處的地理位置在時區上相隔4個多小時,那么要想安排大家同時在線,就相當麻煩??s短開發與測試的整合周期,有利于及早發現問題。拖延的話,后續解決就會很棘手。那么整個周期到底要多短呢?“Lagom ?r b?st”(合適是最好的)。
技巧六: 選擇最好的溝通工具
在Zendesk,我們把Trelio和Pivotal Tracker當成Kanban面板,來促進溝通,我們還會使用到一系列的室內溝通渠道:IRC(Internet交互式閑聊程序),Yammer(企業社交平臺)、Flowdock(基于Web的團隊通訊工具)還有Rypple。
技巧七: 組建小規模的團隊
盡量組建小規模的團隊,這樣你可以每天花15分鐘開會。小規模的團隊有利于你培養起更好的團隊意識和責任感。對于跨時區的團隊而言,要確保大家能夠相互溝通:利用一些工具比如Skype來聊天。作為一個團隊的經理,要提供盡可能多的渠道來預團隊成員保持聯系,這樣就也可以消除開發者聯系不到你的風險。
技巧八:溝通、溝通、再溝通
開發者往往會面對各種各樣的問題。比如最近的預算申請備有被批準,資源沒辦法得到。遇到這種情況,最好的解藥就是要勤于溝通。作為一名經理,你應該花一半的時間在溝通上,無論是團隊溝通,還是一對一的溝通。每天接觸團隊中不同的開發成員,把脈整個團隊的動向,要提前意識到問題的存在。每兩周可以花部分時間來演示軟件,鼓勵開發人員跟進工作進度,縮短開發、測試的整合周期。VNC之類的工具可以讓開發人員快速預覽到你目前的工作動態。
技巧九: 信息精確
管理跨時區的最大挑戰是溝通上的延遲造成了誤解。我們正在討論那個Bug?發生了什么事情?什么模塊?實時溝通可以縮短延遲時間,解決這些問題。你需要達到軍事精確水平的溝通。確保涵蓋所有相關的信息,包括Bug的序列號、JIRA時間或者客戶號等。不要假設接受者能收到所有的必要信息,如果不太放心,可以打電話來實時解決這個問題。
技巧十: 涵蓋信息全面
不管團隊的成員是分散各地還是匯聚一堂,最為關鍵的指標是要保持高度可見,不管是通過大屏幕的顯示器還是通過Web訪問。包括Bug的數量、部署狀態、服務器的負載、查詢性能等,只要對開發者有用的信息。
總之,無論您身處何地,作為一個分布式團隊的領導者,希望這十個技巧能為您保駕護航,讓您在項目管理上如魚得水。
