分享程式代碼相關筆記
目前文章總數:182 篇
最後更新:2025年 05月 31日
專案是有明確起點與終點的一次性工作,通常具有以下特徵:
專案管理(Project Management)是一種規劃、組織、執行、監控和完成專案目標的系統性方法。
目的是在限定的時間、預算與資源內,達成預定的成果。
特徵 |
---|
有明確目標 |
有時間限制 |
有預算限制 |
涉及多部門、多角色協作 |
產出成果 |
根據國際專案管理學會(Project Management Institute, PMI) 標準,有以下 5 大流程:
流程順序 | 描述 |
---|---|
1. 啟動 | 確認專案目標、範疇與可行性,指派專案經理。 |
2. 規劃 | 設定時程、資源分配、預算、風險管理計劃等。 |
3. 執行 | 組織團隊並開始執行計劃,交付具體成果。 |
4. 監控與控制 | 持續追蹤進度、品質與風險,確保偏離時能即時修正。 |
5. 結案 | 專案完成後進行成果驗收、經驗回顧與文件存檔。 |
這三者之間相互影響,例如要縮短時間,可能就得增加成本或減少範疇。
專案管理能力的優劣,不能只看是否按時交付,而是要從多個維度來觀察。以下是一些可具體的判斷標準:
能力項目 | 優秀表現 | 不佳表現 |
---|---|---|
1. 計畫能力 | 能清楚規劃目標、時程、資源與預算,計畫具體可執行 | 計畫模糊、頻繁變更、無法預測里程碑進度 |
2. 時程控管 | 交付準時,懂得優先順序與緩衝安排 | 經常延誤,錯估工時,不懂如何調整計畫 |
3. 執風險管理 | 能預測風險並有備案,遇到問題時迅速反應 | 被動處理問題 |
4. 溝通協調 | 能有效與內外部人員溝通,資訊透明、跨部門協作順暢 | 資訊封閉,溝通頻出誤解,衝突難化解 |
5. 利害關係人管理 | 讓客戶/老闆清楚進度與風險,能管理期望 | 難以處理需求變更,無法維持關係信任 |
6. 資源管理 | 有效率地分配人力/預算,避免浪費 | 重工、閒置、預算超支 |
OpenProject 只是專案管理工具,目的在協助專案管理人能更順利實現以上目標,每個專案管理人若有更順手的工具、方法,則應以更適合自己的為優先考量。
以下是常見的專案中出現的角色
角色名稱 | 職責扼要 |
---|---|
1. Project Manager (PM) | 計畫時程、資源分配、風險控管、協調團隊與利害關係人 |
2. Product Owner (PO) | 規劃產品需求、維護 backlog、與用戶溝通需求 |
3. Developer / Engineer | 組織團隊並開始執行計劃,交付具體成果。 |
4. QA / Tester | 測試功能、回報缺陷、維護測試用例與流程 |
5. UX/UI 設計師 | 設計使用者介面、體驗流程、與前端合作 |
6. Tech Lead / Architect | 技術方向規劃、架構設計、代碼審查與技術選型 |
7. DevOps / 維運人員 | CI/CD、部署管理、系統監控與可用性維護 |
此篇OpenProject若有順利搭建後,進行操作。
對應專案管理的啟動階段,完成後,下階段為規劃。
並且整個專案的管理架構如下,會有對應的工程師進行回報專案經理,再由專案經理回報進度給最終管理者(客戶/老闆)
最初可能會由一名管理者進行專案建立,做為開始。
左上角,選擇專案 -> + 專案
※管理者可以是專案經理、主管、或某位員工,具體要由專案規模與實際的工作派發
基本配置上需填寫:名稱、專案狀態、專案描述
填寫完成後,可能如下,目標是開發出一套日記軟體的產品
接著持續新建 2 個專案,分別是 前端 , 後端 ,人力上允許的情況下,可以細分管理
此 2 新建專案的上層專案必須是開發一款日記軟體
完成後此 3 專案的建立架構分層如下:
每個子專案,各自的專案管理者會有自己的時程評估,會議功能可以將所需要開會的時間先訂出
便於後續任務可用的工時分配
以後端專案為例 -> +會議
OpenProject 的會議有 2 種可選擇,依照自己所需
重複可以是 Daily Meeting ,每周一定時 0.5 h 同步這周工作內容
一次性可以是開案會議,一開始確定後,就不會再出現的類型
屬於專案的資訊管理的共享,以主專案為例,每個專案都可以寫上自己的產品資訊、共享文件
選擇專案 -> 總覽 -> 左側 Wiki -> 新建
最終可能會有以下 Wiki 的資訊管理的共享,每個專案都有自己文件,但是後續交接、維運都可以方便後續開發團隊參考相關的資訊。
整個專案團隊,可以使用最新消息,將資訊發布到各專案上
選擇專案 -> 總覽 -> 左側 最新消息 -> 新建
完成後可以讓整個專案團隊下的成員看到訊息。
亦可以做為一個小的留言板,將資訊同步於下方
需要專案管理處理的事項,且是未來的備註,可以於待辦事項中記錄。
選擇專案 -> 總覽 -> 左側 待辦事項 -> 新建
專案管理者的核心部分,就是將與此專案有關的成員加入
選擇專案 -> 總覽 -> 左側 成員 -> 全部 -> 將所有有關成員加入
添加完成後,如下:
並且管理者,可以依照成員的職責切分
同上
管理者已經將專案建立完成,接著底下的專案經理需要管理自己的成員,因此需要開出 Task
對應專案管理的規劃階段,完成後,下一階段為執行、監控與控制。
專案經理登入 -> 左上角,選擇專案 -> 工作項目
管理者已經將專案建立完成,接著底下的專案經理需要管理自己的成員,因此需要開出 Task
進入工作項目條目後 -> +建立
建立的 Task 由上而下依序為建議必填寫的內容:
項目 | 具體內容 |
---|---|
1. 任務名稱 | 定義標題名稱,便於定位該工作方向 |
2. 人員 | 通常負責人為建 Task 者(專案經理),並且指派給執行者(開發工程師) |
3. 預估和進度 | 初估此 Task 將會花多少時間,以及目標完成日期 |
4. 詳細資料 | 優先級為專案經理提供,便於執行者知道到底哪個優先,若全都填High,會失去意義,也等於專案經理失職,無法清楚規劃專案項目 |
進入工作項目條目後 -> +建立
建立 Task 後,可以再開啟此項目
依序選擇關聯 -> +關聯
依照任務性質的不同,會有此 7 種關聯,代表著此項 Task 與另外一項 Task 的關聯性,除了便於追蹤外,也避免專案項目過於發散。
這裡以前端開發工程師的工作舉例 : 開發前台登入頁面 為前置工作,建立前置任務(SF)
工作項目 -> 手動輸入關鍵字 -> 進行添加前置 Task
接著還可設定前置任務完成後,可以延遲幾天後進展此項目
完成後,回到總覽檢視,可以觀察到,前端專案經理開出的任務。
此單的關聯目的 : 要讓前端開發,先完成頁面,當完成時,再接著串接API,讓前後端開發可以異步開發。避免無謂的等待。
另一種工作項目-里程碑(MILESTONE),可以提供專案下分階段性使用。
建立里程碑任務,然後定義出時間點,讓專案經理或成員有共識於此時間點我們至少要達成的目標。
分派完工作後,在專案執行的開始、過程、結束。專案經理都會持續回報工作進度,這時可以善用甘特圖,依照自己專案的 Task 圖表檢視內容。
指定專案 -> 總覽 -> 甘特圖
甘特圖會基於 Task 內的時間,而自動產生每個項目的起訖。
報告進度階段可以讓所有成員對專案時程有初步同步
OpenProject 的甘特圖若需要放大縮小,具體可以用右側的工具 Menu 調整
時程用甘特圖很合適,但若想要每個工作任務的清單,可以利用匯出功能
指定專案 -> 總覽 -> 匯出
匯出功能中, PDF 不支援中文版(可匯出,但亂碼),目前可以使用 .CSV 格式,匯出 Excel 版本
※需要的欄位可以自行選擇
上一步按下匯出後,要在按下下載
打開後可以看到所選欄位的每個 Task (工作項目)
管理者、專案經理已經將專案都規劃完成,接著專案可開始進入執行
對應專案管理的執行、監控與控制階段,完成後,下一階段為結案。
專案經理登入 -> 左上角,選擇專案 -> 狀態切換
專案經理已經將任務分配完成,接著對應的執行人需要處理自己分派的任務
開發工程師登入OpenProject -> 進入自己分配到的專案 -> 左側工作項目 -> 分配我的
可以看到跟自己有關的 Task
開始處理自己的 Task 時,需要切換狀態
工作項目 -> 選擇要處理的 Task -> 切換狀態(表示進行中)
處理到一個段落後,要填寫自己花費的時間
打開 Task -> 選擇耗時旁邊的Icon(小時鐘) -> 然後填寫對應內容與工作時間
依序填寫完畢所有工作內容:
填寫工作日誌後,剩餘工時是不會自動調整,這需要手動更新,通常要讓專案管理者自行填寫,這是一種管理模式
※此模式為 [工作量基礎進度報告] => 為了讓專案經理理解到真正的耗時與,剩餘工時的相對關係
若開發成員有持續交付 Task 與回報工時,可以透過時間與費用,觀察到專案上的花費時間,有利於專案管理者提前發現問題,或重點優化某些功能。
選擇專案 -> 左側時間與費用 -> 選擇後預設進入此畫面
也可以透過過濾項,查找專案或某項任務的花費時間
專案開發完成,產品開發告一段落後,專案可進入結案階段,將本次產品專案相關聯的
對應專案管理的結案階段,完成後,又進入新的產品開發週期,到下一階段前都為了進入啟動階段準備。
專案經理登入 -> 左上角,選擇專案 -> 狀態切換為完成
最終所有專案都將會是已完成(舉例,實際開發上越大型越有可能中途停止某些專案)
若完整的開發生命週期,最終甘特圖會顯示所花費的整體工時,與起訖。便於專案經理人對產品開發總結做個報告。
工時與費用亦同
最後就要將專案封存起來,避免被記入到後續的專案中。
選擇專案 -> 專案設定 -> 資訊 -> 右上角設定 -> 封存
如果需要將已封存的專案,重新檢視,可以在於封存專案選項,再將期解封存