2013.5.19當從規劃中分解到預研項後,我們將進行預研工作。此階段的工作會對項目中的重大風險或技術方案的不確定性進行攻關,能有效率完成此階段,是專案經理的一個重要挑戰。我見過很多專案經理對項目整體管理把握都很好,但是由於對預研階段的工作把握度不夠,導致項目失控。
按五要素分解預研階段的工作如下:
1、干係人期望此階段的干係人主要是預研人員和產品經理。1) 預研的方案複雜度在規劃預期內 所有項目都需要在投入產出比做權衡,在預研啟動前,我們要知道主管/產品經理的心理預期,如果當預研的方案實現的複雜度會遠超過預期時,需要及時提出,並安排討論,必要時需要停止預研。2)預研要消除實現風險 預研階段的主要目的是消除整個項目的實現風險,預研階段結束,大家會有個共識,那就是項目可以被實現出來,整個專案計劃的工作量估算將也重要參考預研結論。
2、沙盤技術預研要做好,首先要有兩個前提:有明確的目標值,有可操作的驗收方法。1)有明確的目標 例如:預研一個方案,最後提交的方案需要佔用1G記憶體,而這個記憶體消耗不能被接受,這時便會帶來返工,同時預研人員會新生怨念,為什麼不早說呢,害傷神,傷身。 因此這裡通常的辦法是預研開始前,下發預研目標書,目標書裡包含對此項預研所能消耗的資源進行詳細限制,例如:記憶體,cpu,穩定性等。
2)有可操作的驗收方法 沒有可操作的驗收方法,目標就會得不到執行,變成空口白話或脫離本意。因此在預研開始前確認好驗收方法至關重要。 例1:目標:新增加的預研方法對原有的系統的效能影響不超過5% 可驗收的方法:載入此模組與不載入此模組,在3個相同的業務流裡統計所消耗的cpu周期,來計算是否超過5%
例2:目標:前端一個複雜頁面的響應速度在客戶正常使用過程中3S內返回。 可驗收的方法:在2個典型的客戶業務流下,非cpu空載情況下測試頁面響應速度。
3、計劃制定1)預研項的整體計劃預研階段的整體計劃通常很難定的100%準確,尤其對於風險較大的定製,但是一個整體的計劃的參考時間點,會給人一個目標,從而得到方向感。
2)快速跟進快速跟進是預研階段最靠譜的跟進計劃的方法。因為當方案等沒有確認下來時,很難有準確的計劃,但是通過快速跟進我們可以及時調整當前的計劃--滾動式計劃。快速跟進常見兩種方法:階段性,時間性。階段性即:將當前預研分為幾個階段(例如:環境搭建,思路1嘗試,思路2嘗試等),每個階段彙報和討論工作情況。 時間性即:每2天,每1周等確認預研進展。簡單及思路明確的預研可採用階段性跟進,複雜疑難的預研需要使用時間性跟進。當然根據所在項目要求可以調整使用兩種方式的混合體。
4、風險典型的三種情況:1) 預研過度,常見于謹慎型或對技術缺乏自信的專案經理。他們要在預研階段消除所有的風險,因為預研階段的代碼沒有經過設計階段,所以後續項目編碼過程中很難複用,導致工作量浪費,從而導致整個項目周期變緊張。2) 預研不足,常見於缺乏大局觀或技術自信較強的專案經理,他們經常根據自己的判斷在項目中選定出幾個風險做重要跟進,他們經常不經意間忽略掉自己不擅長或不熟悉的領域的風險,導致項目進入後續階段後,災難頻發,救火進行的總是如火如荼。3) 預研思路不正確,導致工作返工較大。
消除這裡三種典型情況的方法就是:在項目組中儘早形成良性的技術決策鏈,這裡需要依靠團隊管理提供基礎
5、團隊管理1)團隊組建此階段的項目核心人員應該已經或將陸續到位,這時候要開下項目啟動會。主要要做兩件事: a、闡述整個項目的目標和意義 任何人都希望自己做重要的事情,而既然公司或部門決定投入人力去啟動這個項目,自然是存在重要意義的,此時要將這個意義傳達給項目組員,以便調動大家工作積極性。 如約翰·科特所說:“如果你想建造一艘船,首先要做的不是去採集木材、加工木板和指派工作,而應該去喚起人們對廣闊無垠大海的嚮往。“ b、集中辦公-座位搬到一起 大多數時候項目組的成員來自一個或多個部門,之前的座位不是靠在一起的,項目組成立後,應該要把座位調到一起,集中辦公是交流方式最有效率的方法之一,沒有其二。
c、 需要給預研人員講解規劃,讓其瞭解此預研項的意義 這樣做的目的,是為了讓預研人員能夠理解啟動該預研的目的,通常當我們深入研究某件事情時,很有可能觸發其他解決問題的思路。明確的目的能讓有些時候預研人員自主變通。 例如:項目組安排給小吳預研目標是:驗證網卡的MSI多隊列能否在linux2.4核心上實現,目的:提高效能 小吳最後給出這樣預研結論,網卡多隊列完整移植到2.4上工作量很大,而且有困難,但是有折中的辦法,移植一部分MSI的功能,將觸發方式改為定時器實現,如此即完成提高效能的目的,又能節約工作量.
2)形成技術決策方式 預研階段的技術方案跟進或其中的疑難問題如何跟進和處理,需要明確。這裡明確的好處如下: a、項目組員思路受卡時,知道向誰請教問題 b、如果不是專案經理自己跟技術問題,技術相關決策人能夠明確自己的責任