「PM World – 全球聲音」精實專案管理: 九年實戰經驗不藏私分享

本文章感謝 Oursky 提供本 PM Blog 專欄共同公佈。

原文: Lean Project Management: Field Notes from 9 Years of Development

作者: Roy Yuen, Oursky 創辦人

翻譯者:Queenie So

在創立 Oursky 的初期,專案經理( PMs ) 是由我們三位創辦人同時兼任的。當公司穩定成長的同時,我們跟其他公司一樣需要面對品質管理的問題。而當我們的團隊成長到超過 50 位成員,我們更要努力在「培育經驗相對較少的初級工程師」與「確保交付給客人的編碼和設計品質」之間取得平衡。

終於,我們在撐過 10 個同步進行的專案後開始聘請新的專案經理。我們的專案經理並不是單純的客戶經理,他們還擔當橋接管理層與工程師的黏著劑、驅動專案進行的靈魂人物、與客戶溝通的重要聯絡人。這邊和大家分享一下,要成為一位強大的專案經理,需要哪些必備的技能。

(請留意,我們很強調由設計師、工程師、專案經理到品管人員,每一位團隊成員都需要對產品品質負責。)

在科技公司任職專案經理有哪些實務要求?

Photo by Christopher Burns via Unsplash

有別於其他機構,Oursky 的專案經理和客戶經理是由同一人擔任的。我們的專案經理一手包辦了籌劃專案、掌握開發進度以至為最終產品的品質水準把關。而同時作為一位客戶經理,他們也會向客戶建議在他們的預算範圍內能把產品做到什麼程度、各種技術上的考量和匯報開發的進度。

Oursky 通常會在業務團隊確認成立專案時引薦專案經理。當簽訂合約、專案正式啟動後,專案經理就會建立一個 Basecamp 專案,方便客戶隨時檢視我們的進度或留言查詢。要完整列出一個專案經理需要負責的工作就足以另外寫一篇文章了,這邊先簡單提供一個概念:一位專案經理在專案成立的初始階段工作清單。

專案成立:

  • 適當地設定各種自動化工具(例如: Apple TestFlight, QA 伺服器等等)
  • 安排會議讓技術領導人和開發工程師討論專案延伸的技術問題
  • 草擬 API 文件
  • 預備資料庫 Entity-Relationship Diagram
  • 規劃伺服器的架構
  • 規劃 App 的架構 / 流程圖
  • 設置模組的測試案例
  • 定義採集分析數據的內容

預估成效

確定成立一個新專案後,第一步是要設定專案的商業目標。專案經理一開始會根據客戶要求的功能和預算提供兩個預測結果(以計費工作天數計算)。我們提供最少兩個選項是因為客戶在意識到原本設想規模的相對價格後,通常都會選擇修改產品。而一般在這個時間點,專案經理同時也會請設計師開始設計線框稿。

當關鍵元素(例如主要功能、預算、時程等等)都確定下來後,專案經理會按照每位同事的時間表和專長來組織一個工作小組。我們的開發工程師一般擅長 Android、iOS 或網頁開發,但因為他們需要全盤掌握產品完整的功能,所以他們同時也是全端工程師。接下來,我們會替主要功能排定優先順序,還有把各個功能解構成最多兩天內可以完成的小任務。

追趕進度、保持溝通

Photo by Quino Al on Unsplash

專案經理的另一個重要任務是保持溝通渠道順暢無阻。每天專案經理會利用 Waffle.io(與 GitHub 整合)來舉辦站立會議,讓所有開發成員都能有效進行討論。專案經理會先了解新的 issues、把客戶的要求排列優先順序,再替工程師設定各項新的任務。

作為客戶的聯絡窗口,專案經理也需要懂得分析哪些要求是迫切的(比如修正關鍵的 bug),或哪些要求應該先押後避免讓工程師分心。又因為我們的專案經理同時管理多個專案,他們也能分享一些可能被不同小組的工程師忽略的相關函式庫或常見問題,提升整體的開發效率。

建構與改進

Photo by Margarida CSilva on Unsplas

在我們眼中,凝聚力跟溝通同樣重要。要留意的是,保障編碼品質的負責人應該是技術領導人而不是專案經理。但這也不代表專案經理就能隔岸觀火。他能做也應該要做的是,在每天跟開發團隊進行的會議中提問適當的問題,譬如說客戶的推廣活動正在進行期間值得馬上更改資料結構嗎?

另外,專案經理也應該主動要求一些可以改善使用者體驗的變更,比方說趁著修正其中一個功能的 bug 時順便加入像「更改狀態時自動轉換顏色」這樣的小細節。

換句話說,專案經理應該比較宏觀地掌握整個設計藍圖,並讓所有人根據這個藍圖來組合各項功能。編碼並不是單單只求無瑕而已,高品質的編碼同時意味著下一個人可以把時間花在如何改善體驗而不是機械性地修正瑕疵。

捕捉細節

Photo by Margarida CSilva on Unsplash

談到公司裡新進工程師遇到最大的困難,如何在 GitHub 上發出一個好的 pull request (包含明確的提交紀錄與易讀的編碼)一定榜上有名。我們公司會把不同專案的工程師互相輪替去確保編碼是可讀的,因此確認剛進來小組的新成員已了解狀況還有能夠如期完成被賦予的任務是專案經理的重要職責之一。

我們為如何監管品質整理出一連串的指引:

  • 每一個 pull request 都需要被一位技術領導人檢閱過其編碼
  • 每一個專案都需要指派最少一位人員負責檢閱編碼
  • 自動化編碼文法檢查,檢查程式複雜度,設定測試範圍

專案經理同時也是負責為新功能做最後檢查、還有當新版本完成時協調進行品管測試的人。當團隊完成整個專案後,我們會向客戶提供原始碼和本地端儲存庫方便他們日後進行維護或修改。

專案管理工具

Oursky 的工作模式

工欲善其事,必先利其器。時至今日,專案管理已發展出許多工具可供選擇。而專案經理的角色,是選擇最適合用來追蹤專案時程和促進客戶溝通的工具。

。而針對技術委託還有內部開發小組,則使用整合到 Waffle.io 裡的 GitHub Issue Tracker,方便取得像 Trello 版本的 sprint 概觀。至於以管理角度縱觀協調全公司所有工程師的工作量,我們則回歸到最簡單的工具:使用試算表為特定專案效期安排人手。

總結

Photo by rawpixel.com on Unsplash

Oursky 裡,我們從不諱言熱愛自己開發的產品。當我們從一個三人小團隊發展到今天成為超過 50 人的公司,我們意識到公司員工很需要一種特質:可以把人們凝聚起來、一起充滿熱情地創造喜愛的產品,還有能力把這個產品做得很出色。事實上,專案經理正正擔任這個角色。

如果你喜歡這篇文章,歡迎追蹤 Oursky 的 Medium 帳號 獲得更多有關新創 / 企業家創業 / 專案管理 / app 開發 / 設計發想有關的消息!

Oursky 致力幫助品牌與企業家實現他們的點子。如果你正在尋找合作夥伴一起建立下一個自家數碼產品,來跟我們聊聊吧!