6/14/2019

架設公司私有的偽M$ Project - OpenProject篇

繼上一篇 架設公司私有的Yum repository for CentOS 7 又要來教學一篇買不起M$ Projects 怎麼省錢做專案時程管理 ?

WHY?

  1. 專案資料都是私有的,可以升級和擴充其他功能。
  2. 作為技術宅或是小主管當夾心餅乾,老闆要你估工作時程(很多號稱agile其實瀑布式的開發方式),很多時候你還是需要自己快速的粗估一個flow。
  3. 新創公司/小公司/工作室/許多業餘的side-project 都很適合,也可以給人專業感

Install

使用Docker安裝OpenProject (真的只需要一行)


docker run -p 8080:80 -v openproject-db:/var/lib/postgresql/9.4/main -v openproject-data:/var/db/openproject -e SECRET_KEY_BASE=MY012j38adasSECRET openproject/community:8

啟動和運行OpenProject:

預設管理密碼(登錄名:admin,密碼:) admin。然後,啟動瀏覽器http://localhost:8080/ 一般來說為了避免資料建立之後消失, 會用 -v (Volume) 將電腦內的空間掛進去, 這樣docker stop之後資料保持。
網頁登入後馬上就可以看到畫面, 登入之後可以開始建立你的第一個專案。
一般來說要先建立Users 和 Group 並且賦予不同角色。



如果你需要寄email, 例如通知人員開始執行工作包, 新的技術比較偏好用Webhook去通知你的工作IM, 例如Slack。參考官網說明的SMTP配置透過環境變數傳入docker預設情況下,docker容器將嘗試通過本地postfix發送電子郵件 。但是,以這種方式發送的電子郵件很可能會失敗或最終進入用戶的垃圾郵件收件箱。我們建議使用外部SMTP服務器發送您的電子郵件。

一個不錯的選擇是SendGrid,它提供每月最多12000封電子郵件的免費計劃。只需在網站上註冊,審請一個新的API密鑰並將其複製到某個設定(看起來像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)。您也可以使用您的SendGrid用戶名和密碼,但這不太安全。然後,您可以使用以下附加環境變數 (使用SendGrid,SMTP_USER_NAME始終是apikey。只需替換 SMTP_PASSWORD為您生成的API密鑰)

docker run -d \ -e EMAIL_DELIVERY_METHOD=smtp \ -e SMTP_ADDRESS=smtp.sendgrid.net \ -e SMTP_PORT=587 \ -e SMTP_DOMAIN=my.domain.com \ -e SMTP_AUTHENTICATION=login \ -e SMTP_ENABLE_STARTTLS_AUTO=true \ -e SMTP_USER_NAME="apikey" \ -e SMTP_PASSWORD="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" \ ...

您可以為其他SMTP提供程序調整這些設置,例如GMail。

這裡要小心,如果你用GMail,需要產生application password來代替寄信,不能用真實的user密碼(心裡背誦的那個)。

開始第一個scrum project

此處我們嘗試建立一個scrum project 切成2個phase, 第一個phase是功能開發, 第二個phase是管理介面和金流串接。

首先要有人, 所以從Users群組開始添加一些User帳號。這裡添加之後只是產生User帳號, 還必須把他們一一添加到專案中, 才可以在後續的Task assignment將工作包分配給他們。

OpenProject 有很方便的群組管理, 這裡我將潛在的專案成員依照在公司內的組織劃分為RD, PM, SQA測試。
接著在scrum project下面添加的work packages添加工作包。這裡一開始不是很確定在OpenProject內的 Phase, Task, feature, user story的相對關係, 通常來說是Phase包住另外三個。沒關係,等試驗之後再用Gantt Chart打開來看。




用open project可以很容易設定工作包的parent
點下工作包的information, 在右上角可以點一下設定parent。不需要從parent一個一個add child的方式。


反過來如果是初期的工作包展開, 從parent添加子工作包會比較直覺。
添加了一些工作包之後可以切換到Gantt Chart View。這裡暫時只有在第一個工作包下面增加第一個feature, 所以看起來是Phases/Tasks/Features