天天看點

項目經理成長日記(8)——吃肉? 啃骨頭?

估計沒有人會願意,甚至喜歡去做那種會讓你不死也活脫脫掉層皮的苦項目,沒日沒夜人如機器扳高速在運轉,即便最後項目最終做成了,整個項目組的人也在過程中被折騰得不成人形。或許能夠把人做到吐血,以至于丢掉小命的項目不少人曾經遇到過。我把這種項目叫成骨頭項目,雖然不少人喜歡啃骨頭,特别是硬骨頭,在多番嘗試努力之後咬到嘴裡的肉吃起來别有味道,更有快感,但是這種快感需要付出更多的代價。

什麼樣的項目會讓你在過程中做得比較輕松自如,遊刃有餘呢?需求明确,開發進度合理,技術風險可控,人員配備到位且團隊士氣活躍,多方條件一一具備之下,或許你的項目會如大塊吃肉一般,過程和結果都那麼愉悅,但是這樣的項目對于絕大部分的人來說,應該說一個一個美好的夢想。

有沒有這種吃肉形的項目呢?有,但是為數不多,至少自己工作了這麼多年,也就那麼一兩次,而且還是10人/月之下的小項目。記憶比較清晰的是一個資料庫遷移項目,主要是更具需求完成Oracle 存儲過程開發工作,整個項目是4人/月的開發工數,但是投入了2個Senior Engineer,2個Middle Engineer和1個Junior Engineer進行開發,那個時候公司的項目不緊張,人員資源也就稍微富足一點。5個人做了1個月(實際投入工數是5人/月,超過項目預算),由于客戶需要我們完成存儲過程的開發和測試資料和測試報告,要求測試資料的覆寫率需要100%,時間和人員都比較充裕的情況下,我們想了一個辦法來測試存儲過程的覆寫率,我們用C#的按照存儲過程的邏輯重新編寫,然後用Nunit和Nconver結合的方式確定我們構造的資料的覆寫率達到百分百。在生成測試報告的時候,我們又用Excel的VBScript腳本編寫模闆,自動導出資料和做成報告。這個項目在兩個方法被實作後,後期的工作非常輕松,特别是整個項目的品質非常高,客戶沒有提出過一個Bug。

也隻有這樣的項目配備和人員結果才能讓我們有時間思考和嘗試如何做得更好,做到最後就像吃肉般的舒服,對于其它的都是在一次一次地啃骨頭,甚至雞肋,我們在做項目的時候容不得自己挑挑揀揀,是以即便明知食之無味,但是公司不會丢棄。我們也隻能硬着頭皮頂上去,這個時候感覺自己如果是在炮火霏霏的戰場上,自己懷裡估計就揣了一杆木槍,還在奮力沖刺。

從早上收到郵件說關于美國醫療領域的那個項目的合同已經基本确定,目前已經可以确定的規模大概有120人/月,這些和上周在周會上的得到的情報基本吻合。隻是今天比較明确的是這個項目将會交給我的開發團隊來處理,而且客戶希望能夠在8個月内能夠完成項目的開發工作,後續有2-3個月的客戶試用測試、傳遞使用和問題對應階段。

郵件附件中有一些關于這個項目的簡單介紹,項目主要是客戶希望能夠給美國的醫院提供線上服務的功能,能夠為醫院裡面的醫生提供線上辦公,同時病人提供線上看病和病曆管理的服務。郵件裡面的内容比較簡單,大概地介紹了一下項目的目的和希望,還有幾張簡單的項目結構示意說明圖。

看着郵件和那幾片概述性的論述文字,感覺像對着一顆定時炸彈。120人/月,8個月開内完成,還不包括2-3個月的需求調研時間,實際的開發時間也就是5個月。120人/月的工數中,開發估計在100人/月左右,那至少也需要20個人才能夠在5個月内完成開發。這種國小的加減乘除地算法在我的腦子來回運算着,越算越感覺到時間緊迫。

“一場艱苦的戰。”在自己心裡冒出的直覺感覺,我深深吸了口氣,便站起身準備找項目總監去,對于這個項目的一些事情我需要和他确認清楚。

我把項目總監約到了會議室,還沒有等我坐下,他就先開口問道:“早上發給你的郵件你看過了嗎?”

“嗯。”

“那好,我們現在可以先着手準備,預計合同很快就會簽下來,然後在下月初估計整個項目就會開始。”

“嗯,這個項目已經最終确定交給我們團隊來做嗎?”我還在需要再次确認這個問題。

“是的,關于人員方面的問題我們也在考慮。到時候會給你協調其它團隊的開發人員和部分外駐開發人員。”

“外駐?”聽到這個自己感覺壓力更大,因為之前的項目中用到過外駐人員,也就是其它公司外派到我們這裡,臨時性的加入開發,這樣的人員在項目中的風險很大,不容易管理。

“是的,這個項目需求,開發和測試的人員都加在一起,預計會有20人左右,從公司目前的人員狀況來看,我們隻能使用部分外駐人員參與開發。但是我們還是計劃再招聘一到兩個的Senior級别的開發人員補充到你的團隊中。”

從公司的角度來考慮,對于這種項目的确會希望使用外駐人員的參與,因為為了一個項目一下子把一個團隊從目前的7個人一下擴充到20人,一旦項目結束之後,那後續補充進來的人員的安置也就有一定的問題,是以基于成本的考慮,公司的做法倒也合情合理。

“對于具體的人員需求,你再考慮一下,在周五的項目例會上再最終讨論一下。”

“這次誰會到客戶那邊去做需求?”

“公司本來是想讓你到客戶那邊,但是如果你去了,就沒有人管理項目,是以這次會從上海那邊派兩個BA(business Account) 到客戶那裡去做需求。”

“嗯,了解。”

“小餘,這個項目還算比較大,在做的時候可能會有一些問題,希望你能夠努力把它做好,如果過程中遇到任何問題或則說需要任何支援的話,你可以随時找我來解決。”

我微微笑了笑算是做了一個答複,對于這種任重期望的話,無疑往自己的肩膀上又多加了不少分量。項目是沒有辦法挑選和推托,雖然可以預計到這個項目能夠順利做下來不是那麼容易,既然要做,即便是再難啃的骨頭,我也要把肉咬到嘴裡,越面對困難重重,自己越要堅定信心,這才是自己的個性。

從會議室出來,我就開始考慮整個項目的人員問題,雖然是先着手準備,但是目前團對立面連我在内就7個人,對于即将補充進來的13個人裡面的人員和對應的角色都需要自己仔細考慮。其它團隊的人員,外駐人員和自己的人員,感覺就像一個大雜燴。從目前的能夠拿到的資料來看,對于項目還無法做一個比較充分的預估,因為具體開發的技術性問題和業務性的問題都難以預計。

我在腦海裡面首先把人員做了初步的劃分,20人的隊伍中預計有5個測試人員,對于測試和開發的人員比例我一般會傾向于1:2的值,即兩個開發人員會配上一個測試人員,這也是目前公司所采用的模式。測試人員會來自公司的測試團隊。那麼實際的開發人員會有15個人,15個人中Senior Engineer,Middle Engineer,Junior Engineer的比例大概是1:2:4,是以也就需要3個Senior Engineer,4個Middle Engineer和8個Junior Engineer。

人員的劃分到沒有多大的困難,結合上自己團隊目前的人員情況,所需要的其他人員也就非常清楚。雖然缺少的人員的清單已經列舉的非常清楚,但是這也隻是一個清單而已,是否能夠找到合适的人員與之配備,将會成為項目開發的一個關鍵因素。

我同時也把上海的那幾個BA都回憶了一下,在項目例會上自己需要比較明确的提出人員,否則如果BA的人員出了問題,需求如果無法整理清楚,那麼對于項目來說打擊會是緻命的。

在很多時候,做軟體開發是比較辛苦的事情,大部分的項目都像是一塊難啃的骨頭,畢竟一個項目能夠做到萬事具備的情況就像買彩票一樣,其機率估計是在五六個小數點之後的值,項目在開發過程中各種問題層出不窮,人員不足,周期不足,需求步明确,客戶随意變更等等問題都随意可見。是以做項目開發的整個過程無疑就是在面對這些殘缺的問題,以及我們在思考如何去解決這些問題。

沒有人會樂意做這種啃骨頭的事情,除非他已經麻木了。當然我們也在一次一次的這種骨頭項目中不斷的提升自己,以及在克服重重困難之後看到成功後的那種滿足感,這些才是支撐大夥完成項目的一個關鍵。

如果你接手的是一個可以預見的骨頭型項目,要麼你放棄不做,高枕無憂,不過可能性非常小;要麼你就多足充裕的準備,比如前期的人員考慮以及合作人員的能力考慮,就像選擇BA的人一樣,如果他在已經在過去出現過過種種的問題,那麼對于這種關鍵的合作人員自己就需要加倍留心;團隊組建過程中的人員的安排等,對于人員的風險需要考慮到位,比如說外駐人員的管理問題等;對團隊成立後協同工作等問題考慮,還有項目技術和業務風險的考慮,這些都是在項目還沒有開始的時候需要考慮的點,而不是等到項目真正開始做的時候才意識到有這些問題,因為項目一旦開始的時候,我們要面對的是如何解決這些問題,而不是考慮這些問題的原因。

       回到自己的座位上,看着還在他們忙碌着,老馬,阿毛,木子,超仔,大師, 傑克着幾個我能夠指望共同作戰的團員,他們也是我有信心去啃着塊硬骨頭的基礎。

本文轉自小餘(Yice)部落格園部落格,原文連結: http://www.cnblogs.com/yice/archive/2009/04/02/1428372.html   ,如需轉載請自行聯系原作者