星期三, 2月 27, 2008

專案管理實務分享-以軟體專案為例

  之前有位朋友公司在找企劃人員,一開始職務名稱取為網站企劃卻乏人問津,索性把職務名稱改為專案經理,結果一天就收到20幾封應徵信,效果非常好,許多資深的程式人員,長期面對無趣的電腦語言,也都想轉做專案經理,似乎轉做專案經理就可以變成一位動嘴吧不用做苦工的爽缺,因此突然發現身邊有越來越多不專業的專案經理,其專案的成員無不哀聲怨道。

  何謂專案?通常指非常態性,有特定的目的,可以用來開創新產品或服務之任務,因此其權責小到可以一個人執行一個小案子,也可以大到負責控管整個公司的產品產出,這類大型專案管理者又叫Program manager,其權責可以看公司的組織架構或高層主管的授權與否來決定,通常專案成員來自於各功能性部門,如技術部門 、企劃部門、 業務部門..等,有些公司會採用強勢授權,人員於開發階段集中交付給專案經理管哩,任務完成後歸建,也有些公司會讓專案人員仍掛在各部門,由各部門主管管理,並與專案經理協調資源運用,作法就看公司的規模及組織的成熟度來決定。

  專案經理的職責有哪些?專案的五大生命周期為起始(initiating)、計畫(plan)、執行(executing)、控制(control)、結案(close),其關係圖如下:

process

專案經理通常在專案決定執行後才開始參與,當然也有一開始就參與決策及評估的做法,通常專案形成的初步只是一個概念(Concept),需經過決策單位評估討論後,才會逐步成形,專案經理通常是在專案成型後參與,因此被賦予任務後首先要了解整個專案的狀況,如專案關係人(stakeholder)是誰,專案的目的為何,專案的範疇(Scope)有多大等,將這些定義文字化後取得授權即完成起始程序,很多新手專案經理通常會全然接受上級指派,沒有去確認Scope,而導致專案失控或結案時發現與預期相差太遠,因此於起始階段取得共識是非常重要的事,有多少籌碼做都多少事,才能讓專案進行順利,建議一定要隨時往5W2H思考(Who、 When、 What、 Why、Where、 How、 How much),將問題提出討論及確認,並確實做好記錄及文件,如:WBS(Work breakdown structure)及 Scope statement 等文件在這階段十分重要,Scope、Time、Cost、Quality其關係緊緊相依如下圖所示 。

TQSC

  起始階段完成後就進入計畫的階段,根據專案的範疇專案經理應該可以歸算出時間及成本,並規劃品質及估算風險,如果需要外包的部分就需規劃出採購計畫,人員需要訓練或確認溝通方式的部分也可以擬訂各計畫書,在軟體成本估算我們通常以人月來計算,一個人工作一個月的成本,在台灣可以採用軟協提供的成本估算,在這個階段可以用Microsoft的Project軟體來輔助,由WBS做出更細的活動清單(Activity list),設定好每個工作的負責人員,並與各任務的專家,如專業部門主管,估算執行時間,每個活動最好有樂觀、悲觀及較可能的時間估算,讓專案多一些彈性以降低風險,估算完成後做出甘特圖、里程碑、網路圖,並更新專案時程表。完成時間及成本規劃後,記得要做好品質規劃書,以軟體專案為例,通常會在品質規劃上註明執行效能、安全性、測試方式及工具、測試項目,通常為控管軟體品質可以使用Bug tracker工具以了解品質狀況,並須請技術人員規劃unit testing 、intergration testing 、functional testingusability testing計畫,讓軟體品質及滿意度提升, unit test 目前常用的工具有JUnit或用VS.net 內建工具,可以針對軟體的各功能先做自動化的測試,usability test建議隨機找目標族群,依計畫項目(test cast)做測試,測試完畢提供意見及問題回報,如果是多人執行的大系統還要加上壓力測試安全性測試,來確保品質,傳統的web-based系統不易做Unit test,這部分應用新的系統架構,盡量將程式架構轉為物件導向並與前端介面分離。

  接下來是執行階段,很多專案經理常會以為在這個階段可以輕鬆一下,讓成員去拼命,自己等著坐收成果,在這階段其實會有需多需要溝通斡旋的工作,並應該觀察專案成員狀態,適時給於鼓勵及關懷,對於不合作或不是合的成員,也應有相對的動作,如申請更換人員或提出警告,外包的部分就需要進行邀請競價,選擇廠商及簽約等動作要執行,如果本身不擅長溝通協調或缺乏同理心及判斷力,容易在這個階段被專案成員抱怨並造成執行不力。

控制階段會橫跨起始及執行階段,主要必須控制及驗證專案計畫,建議定時招開專案會議確定進度,多使用輔助工具來觀察專案的進行狀況並做必要的調整,遇到需求更改時,應該進行需求更改的確認及其他資源如時間 成本 的調整,讓專案盡量不受需求更動影響,這階段比較容易被忽略是風險監控,在開發的過程中如果沒有定義查核點(checkpoint),或缺乏風險規劃,如只把軟體開發交給一個programmer,而該成員而專案進行中離職,可能造成非常大的損失,要學會控制好專案其實需要經驗累積。

  結案的部分,一般會交付各項開發文件、使用手冊、測試報告,做教育訓練,廠商或需求單位會進行驗收程序,驗收無誤後即可完成結案,軟體專案通常會有保固期或維護期,需看合約狀況安排人力做日常維護及問題修復,當然若驗收出問題,也得依合約或專案計畫書來追究責任,不管專案是否圓滿,應該都要寫一份結案報告,評估執行效率及專案問題,做為下一個專案的參考。

  不管你是否為專案經理的職務,建議都不要放棄執行專案的修行,例如 老闆指派的新任務,自己可以由專案的觀念來執行看看,辦party 、規劃旅行也可以試著把他視為專案去規劃,專案其實無所不在,找尋好的機會做磨練,相信專案執行的素質會提升的很快。

參考文件 : PMI PMBOK

沒有留言: