IT|資訊系統|專案管理|Redmine Project management system (PMS) 協同專案管理系統建置

專案管理的優缺點

Redmine是一個開源的項目管理系統,它有如下優勢讓我選擇它作為我的項目管理工具。
 
[優點]
 
Redimne 是免費的!如果會安裝也會維護的話,可以省下不少錢。
彈性的角色管理。
有甘特圖跟日曆功能可以使用。
開 issue 跟開 ticket 很方便。
支援透過電子郵件新增問題。
有繁體中文介面可以使用。
 
[缺點]
 
要自己安裝,而且電腦要裝好 Ruby on Rails 的環境,這對一般使用者來說就是一個頗高的門檻。
 
[實務上的困難]
 
通常一人專案的開發者容易採取邊做邊想的方式來做專案,這跟上述的思考方式、和習慣完全背道而馳,也無法估計時間,因此如果要組織一個團隊做事、享受團隊所帶來效率,勢必要改變習慣,而過程其實是需要練習摸索的。
 
使用 Docker 搭一个Redmine 

CentOS 結合 Docker + Redmine
 
[安裝步驟]
 
安裝 fig
sudo yum install -y python-pip
sudo pip install -U fig
 
若出現錯誤,使用以下兩行指令更新
sudo easy_install six
sudo easy_install requests
 
創建 redmine 資料夾
mkdir ~/docker/redmine
 
Docker search redmine;查詢看官方是否出 Docker鏡像或者其他人作好鏡像了,若是有就直接引用就好。
 

$ docker search redmine
    NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    sameersbn/redmine                                                                72                   [OK]
Docker hub 上搜索是一樣的,雖然沒有官方的鏡像,那就選擇星星數量多的鏡像,sameersbn/redmine。
 
用 fig 直接快速安裝,在自己的 docker 目錄下新建 redmine 目錄,在裡面執行:
~/docker/redmine$ wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/fig.yml docker-compose up
 
下載的fig.yml內容如下:   
postgresql:
      image: sameersbn/postgresql:9.1-1
      environment:
        - DB_USER=redmine
        - DB_PASS=phatiphohsukeuwo
        - DB_NAME=redmine_production
    redmine:
      image: sameersbn/redmine:2.6.1
      links:
        - postgresql:postgresql
      environment:
        - DB_USER=redmine
        - DB_PASS=phatiphohsukeuwo
        - DB_NAME=redmine_production
      ports:
        - "10080:80"
 
啟動 Redmine 直接快速啓動就可以了(若修改設定 fig.yml,則須刪除 Docker contener)。
~/docker/redmine$ sudo fig -f docker-compose.yml up -d
 
查看系統 Contener 狀態
$ docker ps
    CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                            NAMES
    5d5d5a983298        sameersbn/redmine:2.6.1         "/app/init app:start   51 minutes ago      Up 51 minutes       443/tcp, 0.0.0.0:10080->80/tcp   redmine_redmine_1         
    c78a212c1503        sameersbn/postgresql:9.1-1      "/start"               About an hour ago   Up About an hour    5432/tcp                         redmine_postgresql_1
 
設定開機自動執行;共有兩個方法:1.以 Service、2.rc.local,本例採用第一種方法
touch ~/docker/redmine/runredmine
mv runredmine /etc/init.d
編輯相關檔案
chmod +x runredmine
chkconfig —add runredmine —level 23456
service name:runredmine
 
使用系統
瀏覽器中輸入 http://localhost:10080,管理員帳號是 admin,密碼 admin。
 
[Redmine 使用說明]
 
建立專案

當該 redmine 有新成員的時候,還不代表該成員是你 project 的成員,所以接下來我們接下來要進入你的 project 的設定頁面將已經在 redmine 的用戶加入。
 
# Tickets

ticket 指的是一則任務,他屬於 project 底下,通常我們要指派一件事給別人就是發一則 ticket 把細節描述清楚並分派給那個人
 
狀態

在講狀態前,要先談到工作流程,以軟體開發為例,在實作一個功能、或修一個 bug,通常實作完成後,會丟給 PM 或某個人去驗收,驗收如果不通過會打回去請負責的人繼續改,當驗收過了後,就該票就會結束。
系統兩種狀態,議題視為已結束:
已駁回
已結束
 
子母票

如果一個任務太大,通常我們會拆分成多個小任務分配給不同人,這時候就需要將一張 顆粒大的票分派成多張顆粒小 的票。
 
例如:
[1] 實作一個會員功能
     [1-2] 實作一個登入功能
     [1-4] 設計登入、忘記密碼畫面 (指派給設計師)
     [1-5] 實作登入後端程式 (指派給程式設計師)
[2] 實作一個註冊功能
     [2-6] 設計註冊表單、和帳號啟用信 (指派給設計師)
     [2-7] 實作註冊後端程式 (指派給程式設計師
 
使用方法是先開一張票 實作一個會員功能 ,把大綱的把需求寫出來,然後利用該 ticket 畫面上的新增子任務
子任務可以支援多層,用這樣的方式可以建立出向上方這樣的結構,這樣一來被分派到子任務的人就可以一層一層往上看,相關的資訊就非常清楚、而且還可以從最接近技術核心的地方往上層需求面去看,避免實作與真正的需求脫節。
 
tip

1.票一定要細到有辦法估計為 1-3 小時,不然就拆成多張、或往下拆
2.團隊中 senior 的人負責把模糊地帶釐清 (顆粒大的票拆成顆粒小的),由 junior 去實作顆粒小的票
3.票的內容要講解的非常清楚 (寫到 junior 的人看得懂做得出來、最好帶些技術的 reference)
4.真的無法細拆的票通常是待研究事項,可以獨立開一張給 senior 給自己固定時間研究。
最終目的:
1.把模糊釐清到 junior 的人都可以做,風險就會降低、產能容易複製
2.每張票明確到估得出時間,專案就一定 on time delivery
 
一般使用規範

一.建立專案
父專案代號:可建立共同專案及私人專案
父專案下建立子專案,及專案代號為連續編號
 
二.各專案包含子專案設有專用討論區及wiki
 
三.權限
專案權限:管理者(*具 Admin 權限)可以看到所有人專案,即使專案屬性設為 private
議題權限:可設為私人,則在公開專案下,私人議題為不可見
 
四.議題
議題與專案相同,可在父議題之下->設定子議題
 
五.主辦/協辦
議題指派為主辦,監看者為協辦
 
六.帳號
個人帳號:分為一般帳號,僅可視與自己有關之專案,具管理權限者可視範圍為所有專案
群組帳號:依需求設立
 
 
相關資源

Redmine 官方網站:http://www.redmine.org
Redmine 專案管理平台之基本功能介紹:http://ryan-tw.blogspot.tw/2015/01/redmineredmine.html
Redmine:安裝、使用教學:http://www.hkitblog.com/?p=19824

軟體開發日記

 

Day’1    #現做再說而無事先計畫。專案離失敗也就不會太遠。

Day’2    #專案團隊一定要有共通語言,講同一國話。
Day’3    #沒有架構的軟體,就像沒有樑的房子。
Day’4    #軟體專案不是人多就好辦事
Day’5    #專案沒管好所造成的延遲,加班還是沒解。
Day’6    #寧錯不能慢的趕進度,最後只會更慘。
Day’7    #醜媳婦終究還是得見公婆。