專案管理是一門很深的學問,也不只是軟體業,各行各業都有,最早是來自土木建築、國防領域。
牽扯到很多人:後端、設計、web、mobile、行銷、公關、合作廠商、用戶、業務...。
牽扯到很多面向:功能需求、資源、流程、時間、規模、成本、品質、風險、溝通、採購、人力、整合、利害關係、...。
這裡就用工程師的角度針對會遇到的部分做簡單的介紹。
專案管理不只是 PO(Product owner)的事,而是參與專案的人員都要了解才有辦法合作,因為專案每一個環節都很重要,如果一個環節掉了,就會影響專案進度或是其他部門的安排。
目前軟體業最流行的就是 敏捷開發(Agile),這是一個理念、方法,而實踐的框架也有很多,最常見的是 Scrum、Kanban。
這之後會再專門寫一篇。
公司總有許多 product backlog 可以做,這些項目會評估出價值,而這些項目也會由參與部門來評估各自所需要的時程,接著算出 ROI(投資報酬率),並且用 ROI 來作為開發順序。
但當然不是那麼順利,可能會遇到需要前期作業的部門短期內排不出資源、預算問題等,接下來往往是 專案管理三角形 之間的拉扯。
最常見的處理方式就是切成許多個 phase,例如一個完整的搜尋功能可能包含:
如果是走 scrum,一個 sprint 通常是兩周,但在執行專案的途中,總是會遇到重構、客訴、難以解決的 bug、外務等,通常會有個查核的時間點(例如距離結束一星期),如果我們沒有信心能在交付之前完成開發與測試,就要主動揭露,接著與團隊成員、利害關係人討論是否將部分已完成功能出版,又或是直接順延到下一個 sprint。
在 sprint 或功能完成或上線後,找利害關係人一起檢討這次的執行,哪裡做的好,哪裡可以再改善,並記錄下來與其他團隊做分享。
產品專案管理全書(ISBN:9789867778628)
人月神話:軟體專案管理之道(ISBN:9789867889188)
溝通是最重要的,不管是規劃階段有不同想法、還是無法如期交付,揭露一切就對了,這是避免公司或團隊錯失機會、重工、無用工、誤會的最好方法。