logo
Published on

軟體開發的專案管理

Authors
  • avatar
    Name
    Eddy Chang
    Twitter

前言

專案管理是指專案在進行當中,如何針對專案管理的各種方式與技術。以小型的專案來說,有許多現成的、容易使用的各種工具,可以輔助在專案進行中,更方便具讓專案的進展更為穩固,本文的撰寫目的也是提供這類的指引。

工作項目的管理工具

1. Github 任務列表

github儲存庫中,最簡易的方式是使用markdown檔案中的勾選盒功能(稱為任務列表),這種方式也常出現在各函式庫中的管理,不論是在討論未來要加入的新特性功能,修正或改善某個問題,或是整體專案的進行,都可以使用這種簡單的方式,先列出所有要作的工作清單,之後依分配勾選完成。

任務列表的圖例:

在github儲存庫中,不論是討論區、issue、各資料夾中的README.md檔案,只要是markdown檔案,都可以使用它來作一個任務列表,也可以互相連結(利用#的標記相連),語法也相當簡單:

- [x] #739
- [ ] https://github.com/octo-org/octo-repo/issues/740
- [ ] Add delight to the experience when all tasks are complete :tada:

另外每個github儲存庫也有一個專案管理的功能,官方說明簡體中文,它是一個簡易型的專案管理,這種專案管理的方式稱為Board 或 Kanban(日文的"看板"),應該就像下圖的電子版本:

(Photo by Sebastien Bonneval on Unsplash )

github的專案管理(其中的看板版面):

當然因為雖然是小型的專案管理,但需要實際執行起來,也需要先設定或調整一翻。如果你對github儲存庫的管理或互相連結並不十分熟練,或許不見得一定要使用它來作專案管理。

當然,這也說明在專案進行中,不一定要用非常複雜的商業專案管理軟體,才能作好妥善的專案管理,利用團隊小組成員中都熟悉的工具,反而比用一套複雜、功能豐富,但需要花時間學習和習慣怎麼使用的軟體或機制來得好,或許用最原始的、實體的,許多n次貼在牆上的團隊工作方式還更容易的多,實際上的確也有不少軟體開發團隊真的是用實體的方式在進行專案的。

優點

  • 免費(取得成本為零)、雲端、協同作業
  • 針對軟體開發,算必要技能

缺點

  • 單一功能簡單沒整合,許多功能要熟悉怎麼串接才會起作用(里程碑、分析等等)
  • 要有管理者(因為有權限差異)
  • 同小組需都規定使用同一平台管理
  • 沒有即時溝通、測試功能(需搭配其它平台)

2. Google文件(+試算表)

Google文件(+試算表)相對來說可能是如果有用過電腦上線,作過報告等等,就會接觸到的一種雲端服務,它也可以用來作專案管理之用,主要是這種雲端型的辨公室應用軟體,基本上就有協同作業的基本能力。

下面有一個範本,連結在這裡。如果有需要可以建立一個"副本"到你自己的Google文件中,修改成自己小組的就可以開始進行專案管理:

Google文件(+試算表)有相當大的優勢,在於它能互相整合各種可能各小組成員都已常使用的Google服務,例如行事曆、Gmail、Google地圖或Meet(線上視訊會議),試算表中的圖表或表格,也能和文件整合嵌入,要製作各種分析圖表,或畫表格也相當簡單。

如果小組的成員並沒有特別需求,成員們的基本使用經驗都有,那我會推薦使用它作為優先選擇。

優點

  • 免費(取得成本為零)、雲端、自動存檔、協同作業
  • 通用型的專案管理(不限於軟體開發)
  • 整合各種服務如行事曆、Gmail、Google地圖或Meet(線上視訊會議)

缺點

  • 並非專門針對專案管理設計的方式,在專案管理上,仍然有許多功能沒有
  • 並非專門針對軟體開發的專案管理

其它搭配管理工具

除了以上推薦的兩種專案工作管理工具外,其它還能搭配的各種軟體工具還有很多,多半可以選擇其中適合整小組使用或進行的。以下只列出常見的,不限於此:

因為目前的軟體開發趨勢,也逐漸朝向部份遠端、在家工作的方式,這些工具的使用,對軟體工程師來說,也是一種必要的技能。

專案管理的進行建議

先選擇能適合所有小組成員的能力與接受程度。

如果說還要花時間學習,或要適應一段時間,可以先不用考慮。

過分打擾到的工具或方式也建議不用。

當然以LINE為例來說,它是很方便的溝通工具,但常會混在個人私人使用的情況中,工作與私人使用最好別混在一起,這不論在目前專題製作,或未來工作時,都是需要考量的,你有別的方式或工具能選擇

任何一種專案管理方式,都需要專門的管理者,以及願意配合的每個成員

管理者的角色在於"監管"專案的進度,它是一種要中立的、有耐心而且專業的工作,通常要由有經驗的工程師擔任。當在專案進行中時,要隨時監看各成員的進度情況,與專案預期的目標比對,甚至是要作測試、檢查程式碼的工作。不過各種前提,這也需要所有小組成員要配合,一開始所共同建立的目標,或自己寫下的工作項目,按工作表進行

定時+定期的團隊討論,但各成員要隨時更新與回報進度。

團隊開會討論的時間要固定,例如一周固定一個時間進行,當然在會議時間上可以保持一些彈性,但其它時間是各成員實作的時間,合理的安排工作時間,過多的團體會議不一定是好的作法

專案管理工具的使用僅是實際專案進行的輔助

不需要過度依頼專案管理的工具,實際上它只是一種輔助工具,目的只是讓專案更順利的進行,讓專案的各執行工作都有所依據,也保持在一個可以被控制的範圍中,不會無目的的發散