關於PM
專案管理的全名為Project Manager,很多人一聽到這個職位都會以為是管理職,其實PM的定位是屬於一般人員並非管理階層,那PM究竟要管理什麼呢?PM通常會跟著專案開發團隊走,也就是說現在若有一個案子需要團隊著手進行開發,PM會是客戶主要的窗口,且會帶領整個團隊管理專案的時程、分配任務、了解客戶的需求以及處理跟所有跟客戶溝通相關的事務。就團隊內部而言,也要負責和工程師溝通,例如講解一個客戶想要的功能,就可以透過demo畫面操作的流程再輔以文字說明,來確保雙方的認知是一致的,這樣開發出來的結果才會符合客戶期待。
PM的日常
說到PM的日常就是不停的開會與回覆訊息,因為要確保客戶可以找得到你,以及不停的接收客戶的需求,將其整理後轉達給團隊進行處理,當然配合案子還會有不同文件要交付,例如統整案子需求的需求文件(Software Requirements Specification),規範整個系統的系統開發文件(Software Development Description)等。在內部也扮演著協調與溝通的角色,例如討論確保工程師的任務會在時間內完成、預估可能的風險。
軟體專案的週期
一般而言,軟體專案會經歷以下幾個階段:
需求訪談 →系統分析 →系統開發 →測試
以我們公司來說,每個階段PM負責的工作內容比重也會有所不同:
需求訪談階段
PM會積極且密集(實際視專案時程而定)的與客戶開會,開會的主軸是為整個案子定調,規範出要協助開發的範圍,以及釐清待開發的功能項目。
系統分析階段
PM將客戶的需求整理歸納後,與工程師進行討論,通常會有專業的系統分析師(或是後端工程師)將需求釐清後,做出系統架構、系統流程等整理。
系統開發階段
依照敏捷式開發的運作模式,一個專案的會先拆出各個模組(或功能項)並依序進入分析與開發階段,在開發階段PM會將系統功能分拆成一個個任務,再指派給前端或後端工程師以進行開發。
測試階段
在開發完成後會進入測試階段,PM會先進行初步的測試,確保頁面上操作的流程跟需求訪談的結果是一致的,若不一致就需要與工程師討論並修改,確認結果正確後,通常會有測試工程師再做進一步的確認與撰寫測試報告。
內部管理與溝通
很多人會問如何做好專案管理這件事,廣義而言就是如何運用人力、控管專案進度,最終滿足客戶對這個專案的需求與期待。實際上因應不同專案也會碰到各自的難題要處理,例如說客戶的時程總是逼得很緊、客戶的需求變動幅度大、或是內部開發應接不暇等等,在這裡介紹兩個內部運作的專案管理方式:
1. 每日早會Daily Sync
每天早上我們會by專案做進度報告,清楚將每個角色(如PM、RD)在這個專案上今日預計完成的項目,這時候PM可以清楚掌握這個案子今日的進度,也會了解大家手上的工作量。
2. Asana做專案管理
說到專案管理的工具,不論是免費或付費的都有百百種,這裡跟大家推薦一個專案管理可以考慮使用的工具『Asana』,PM可以根據需求定義自己的版面上各階段的名稱,再建立卡片指派給開發或其他負責人,我個人認為對於功能進度的追蹤很有助益,而且版面一目瞭然,可以很快的知道團隊內的人正在進行或未完成的項目,推薦給專案管理的新手或是想要做自我管理的人使用。
結語
軟體業PM負責的工作其實相對來說蠻龐雜的,可以說是跟客戶有關的、不牽涉太多技術的範圍內,都是PM負責的領域,所以如何在PM這個職業上做到令人讚賞,或是如何培養出自己身為PM不可取代的專業,這都是必須要仔細思量與規劃的課題。