jira&Confluence
1 JIRA
1.1 介紹
JIRA是一款問題跟蹤工具,可以對各種類型的問題進行跟蹤管理,包括缺陷、需求變更、任務等。
跟蹤並管理在項目過程中呈現出來的問題(如缺陷、新特性、需求變更、開發任務問題等)是項目管理很重要的任務,但是很少有團隊能做的很好。JIRA雖然是一個問題跟蹤系統,但是只要稍加改造,便可以成為一個項目管理軟件。是一個問題跟蹤和項目管理應用系統,目的是為了讓跟蹤和管理在項目過程中呈現出來的問題變得簡單。
JIRA具有以下特性:
l 管理缺陷,新特性、任務、改進或者其他任何問題
l 干凈和強大的用戶界面方便商業或技術用戶理解
l 工作流定制
l 全文搜索和強大的過濾器(可定制的,可保存的,可共享的,可預定的過濾器)
l 可定制的工作台和實時統計
l 企業級的權限和安全控制
l 方便的擴展及與其他系統集成(包括email、RSS、Excel、XML和源碼控制工具)
l 非常高的通知選項配置
l 可以在幾乎所有硬件、操作系統和數據庫平台下運行
l 提供較多的相關插件,使jira功能更能達到用戶要求
JIRA可以根據你的需要提供所需要的信息。下面以缺陷為例,介紹各個角色成員在Jira中可以獲得的信息和可以做的事情。
l 管理人員——根據缺陷數據統計結果,了解項目狀態
n 查看項目整體問題分布情況
n 查看項目整體問題工作量與進度情況
n 查看某一開發人員在不同項目的開發工作量情況
n 查看項目某個版本的工作量情況及每個用戶的缺陷及剩余工作量情況
l 項目管理者——評估缺陷和分配缺陷
n 查看分配給我的問題
n 看某個問題的詳細信息
n 分配問題
n 填寫問題的預期修復時間及修復估算工作量
l 開發人員——處理缺陷,提交工作量記錄
n 接受問題,准備開始處理問題
n 問題處理后,准備在系統上填寫處理情況
n 填寫處理情況
n 完成處理信息的填寫后,准備填寫處理問題所花的工作量
n 填寫處理問題所花的工作量
l 測試人員——快速的提交缺陷,跟蹤缺陷
n 提交問題
n 填寫問題詳細信息
n 根據不同過濾條件查看不同的問題,准備進行問題的跟蹤處理
n 根據不同過濾條件列出的查詢結果
n 驗證問題處理情況,根據不同工作流節點選擇不同的操作
1.2 安裝
相比其它管理軟件工具,JIRA有個很突出的優點:不用花數小時或數天來搭建你的問題跟蹤系統,JIRA可以在幾分鍾內搭建並運行在你的系統上。下面,介紹JIRA的安裝配置步驟。
1. 下載Standalone版本,雙擊系統自動進行安裝
2. 在安裝過程中,全部選擇next
3. 完成后,彈出一個配置頁面
4.選擇一個索引目錄,並輸入licence,執行下一步
5.輸入創建的管理員信息,執行下一步
6.在設置郵件服務器頁面,在SMTP服務器輸入框,要輸入IP地址,即:內部郵箱,用戶名為內部郵箱用戶名(如:xfshen@xx.com),執行下一步
7. 完成安裝。
1.3 系統配置
以公司對問題跟蹤系統的需求作為案例,介紹如何根據實際需求,在JIRA中進行配置。
1.3.1 設置問題類型
問題來源 |
描述 |
缺陷(Default) |
系統本身的錯誤 |
Improvement |
在系統需求范圍內,但是對表現/實現方式進行了改進。 |
Requirement Change |
對系統原先需求進行了變更,包括新增的需求、變更的需求 |
Issue |
系統開發的任務 |
1.3.2 設置工作流方案
1. 設置狀態
在公司中,問題跟蹤的狀態有Open、Assigned、Accepted、Pending、Closed、Sleeped等。
2. 設置工作流
根據已定義的缺陷處理流程,在JIRA中新增一個工作流設置(不要在原來的工作流上修改),並設置如下。
l 缺陷:
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
分配缺陷(2) >>Assigned |
Assigned (2) |
Assingned |
接受本缺陷 (4) >> Accepted |
確認暫不處理本缺陷 >> Sleeped |
||
Accepted (3) |
Accepted |
缺陷處理完畢 (5) >> Pending |
Pending (4) |
Pending |
驗證通過 >> Closed |
驗證不通過缺陷 (3) >> Assigned |
||
Closed (6) |
Closed |
激活缺陷 (3) >> Assigned |
Sleeped (7) |
Sleeped |
激活缺陷 >> Assigned |
l 需求變更
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
完成需求變更評估 >> Evaluated |
Evaluated (2) |
Evaluated |
>> Assigned |
>> Open |
||
Assigned (3) |
Assigned |
>> Accepted |
Accepted (4) |
Accepted |
>> Pending |
Pending (5) |
Pending |
>> Closed |
>> Accepted |
||
Closed (6) |
Closed |
|
l 任務
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
安排任務 >> Evaluated |
Assigned (2) |
Assigned |
>> Accepted |
Accepted (3) |
Accepted |
>> Pending |
Pending (4) |
Pending |
>> Closed |
>> Accepted |
||
Closed (5) |
Closed |
|
3.設置工作流配置文件
問題類型 |
選擇的工作流 |
Defect |
Defect Track |
Improvement |
Defect Track |
Issue |
Issue Track |
Requirement Change |
Requirement Change Track |
1.3.3 問題屬性
1. 嚴重性
嚴重性 |
說明 |
Blocker |
災難——導致系統失效,例如藍屏或數據發生沖突 |
Critical |
重要——產品不可用,例如導致錯誤的答案和錯誤的報告 |
Major (default) |
中等——產品可用,客戶說到影響 |
Minor |
輕微——產品可用,沒有客戶受到影響 |
Trivial |
無足輕重——如果時間允許則修復 |
2. 優先級
優先級分P1-P5五個級別,其中,P1優先級最高,P5最低。
優先級 |
說明 |
P1 |
系統的正常業務流程無法通過,必須馬上修改 |
P2 |
系統用戶無法正確使用系統;導致用戶對系統理解發生偏差;影響客戶或公司的形象 |
P3 (default) |
系統用戶無法使用部分非重要功能 |
P4 |
不影響系統的正常使用,發布后可以通過打補丁的方式解決問題 |
P5 |
問題對系統影響很小,可以不修改 |
3. 缺陷類別
內容 |
說明 |
程序錯誤 |
1. 由於程序所引起的死機,非法退出 2. 由於程序未做錯誤控制而引發的缺陷,如直接進入HTTP404/500界面 3. 因錯誤操作導致的程序中斷或退出 4. 程序接口錯誤 |
功能實現偏差(default) |
1. 功能未達到詳細設計說明書中標明的功能 2. 功能超出了詳細設計說明書指明的范圍 3. 功能未達到詳細設計說明書雖未指出但應達到的目標 |
界面不友好 |
1. 功能可用,但是操作界面不友好、難於理解、不易使用、或者最終用戶認為界面不好 2. 提示信息內容不友好、不准確 3. 界面不規范 4. 提示窗口文字未采用行業術語 |
數據錯誤 |
1. 數據被損壞或未傳送到目的地 2. 數據通訊錯誤 |
文檔缺陷 |
1. 文檔所用的術語不適用於用戶 2. 文檔不完整 3. 文檔未清楚的表達所描述的內容或內容不正確 |
4. 解決方案
解決方案 |
描述 |
Fixed (default) |
缺陷已正確解決,並經過驗證 |
Later |
該問題確實是個缺陷,但是本版本不解決 |
Invalid |
問題的描述不是個缺陷 |
Won't Fix |
該問題確實是個缺陷,但是不打算解決 |
Duplicate |
問題的描述是一個已經存在的缺陷 |
Cannot Reproduce |
按照描述的步驟,不能重現該問題 |
1.3.4 用戶組和權限控制
用戶組 |
描述 |
權限 |
Administrators |
管理JIRA中的項目、人員、刪除缺陷、管理關注者列表 |
Administer Projects Modify Reporter Delete Issues
|
Assigners |
修改缺陷、分配缺陷 項目組長 |
Edit Issues Schedule Issues Assign Issues |
Developers |
處理缺陷、填寫缺陷原估算工作量、填寫缺陷實際處理工作量、管理關注者列表 項目組員 |
Assignable User Resolve Issues Work On Issues View Version Control
|
Testers |
修改缺陷、移動缺陷、處理缺陷、管理關注者列表 測試人員 |
Create Issues Edit Issues Move Issues Resolve Issues(含Reopen Issues) Close Issues View Version Control |
jira-users |
瀏覽項目(含缺陷) |
Browse Projects Add Comments Create Attachments |
1.3.5 設置郵件通知方案
活動 |
通知人員 |
登記缺陷 |
當前缺陷分配人 該缺陷的所有關注者 |
Bug更新/分配/解決/關閉/增加備注/重新打開/刪除/移動 |
當前缺陷分配人 缺陷登記人 該缺陷的所有關注者 |
1.3.6 界面設計
1. 開啟時間跟蹤功能
系統根據該功能的設定,對任務進行時間跟蹤
2. 開啟附件功能
可以對所有附近進行查看
3. 設置界面設計方案
根據每種不同的問題,選擇相應問題需要填寫的字段信息。
1.3.7 系統備份
系統提供每天或每周的自動備份,以及可以進行人工備份,管理員進行設置。
1.4 制度要求
1. 某個項目的分配人員,在分配缺陷時,需要執行編輯缺陷操作,在編輯頁面輸入預期解決日期、原估算工作量,修改分配人。也可以在分配缺陷時,修改缺陷的其他屬性。
2. 開發人員接受缺陷,在“可選工作流程”部分點擊“接受本缺陷”鏈接
3. 開發人員解決缺陷后,在“可選工作流程”部分點擊“解決缺陷”鏈接
4. 開發人員每次處理缺陷時,都需要在“操作”部分的“工作日志”欄,點擊“完成記錄工作”鏈接,填寫“花費時間”、“工作描述”。
1.5 管理
用JIRA來做好BUG管理和項目管理,有這幾個重點要做好
1. 定義模塊
模塊反應了問題出現因素的范圍。所發現的問題、所需要進行的任務、改善意見的指向、創意所應用的范圍。
2. 定義里程碑
問題、任務、變更都需要分配在某一時段進行處理,時段可以是時間為單位的,周、日、時、分,也可以是版本。如果所有的事情都可以以這兩種單位計量的非常清晰。
3. 每日的統計與清理
管理項目要盯,每日的盯是少不了的,看全局的issue數量、關閉情況、進行情況、所剩未解決的數量。你可以有的放矢的去針對這些問題來看。也可以看到,誰的問題比較多,誰的進度比較慢。因為什么問題將影響進度,因為什么問題將影響產品品質。
4. 階段的統計與整理
階段,這么划分吧,每周3/2這樣兩個階段,這是除了第4點所說的之外的最小階段吧。以它就是周、版本計划階段、版本大的階段划分這樣的划分情況。
通過階段內的完成情況,你可以看到誰處理的問題太多了,誰少一些,誰的難度高一些、誰的能力不足、誰不負責任。哪個部門做得不足,哪一模塊需要更多人幫忙。如果說日為單位是盯的話,那么階段來統計與整理,就是盯之后的分析與解決方案。
5. 最大力度的使用過濾器
Jira提供了較多的查詢條件可供個人創建過濾器和與團隊分享過濾器。同時還可以自定義自己的主頁,相信自定義主頁這個功能在google上你已經感受過了。同樣這些過濾器可以變為你的主頁中的一部分,把你最需要關注的issue都呈現在你每日的第一位置。
1.6 插件
Jira提供了很多插件,方便的擴展及與其他系統集成一下介紹一些有助於項目開發及管理的插件。
1. Mylyn
這是jira與eclipse集成的插件,使用該插件,使開發人員更方面得知自己需要處理的任務信息。
開發人員平時工作很緊張,每天需要打開瀏覽器登錄jira查看自己的問題很麻煩,如果使用該插件,開發人員打開eclipse進行工作時也可以查詢到最新的分派給自己的任務,同時也能在eclipse打開任務進行填寫完成情況提交,方便快捷。
2. Charting Plugin Pending feature
Jira原本提供了4種報表,通過該插件,jira根據不同需要添加顯示了5種報表,但該插件顯示的報表暫時都只有英文顯示。
3. Edit Attachment Plugin
對已存在的附件添加刪除修改權限。
4. Jimex Plugin
提供Microsoft Project文件導入jira的功能,用戶可以先在Microsoft Project寫好一些工作計划,再將該計划導入到jira即可。
注意:1條任務只能分配給一個人完成,而且在Microsoft Project選擇人員資源時需要將該人員的windows用戶賬戶與用戶的jira登錄名一致。
在jira新建問題時可以將該問題與在Confluence的文檔進行連接,如新建一個任務或需求變更,可以將該問題鏈接到Confluence的需求文檔或計划。
Jira首頁頁面顯示Confluence信息,用戶可以根據自己進行設置
7. 其它
Jira還提供了與svn、testlink集成的一些插件,正在研究中。
2 Confluence
2.1 介紹
Confluence是一個專業的wiki程序。它是一個知識管理的工具,通過它可以實現團隊成員之間的協作和知識共享。 Confluence使用簡單,但它強大的編輯和站點管理特征能夠幫助團隊成員之間共享信息,文檔協作,集體討論。目前,Confluence被用於廣泛地用於項目團隊,開發團隊。
該軟件具備簡單但是高效的知識編輯和網站管理功能,只需一個瀏覽器就可以使大家之間的思想、信息等在一個文檔上共享交流。內容安全可以做到頁面級。
Confluence具有以下特性:
l 空間:分布式存儲知識;
l 頁面:用簡單的符號來描述你的想法;
l 共享:和你的團隊快速的協作;
l 搜索:跨頁面,注釋和附件間的搜索;
l 組織:高效地創建靈活的頁面結構;
l 注釋:進行小組討論;
l 重獲:容易找到你需要的信息;
l 導出:頁面乃至整個空間可以導出為HTML,PDF,XML文件;
l 重構:高效的信息操作;
l 安全:高級的權限和安全性;
l 通知:通過mail/RSS來跟蹤頁面的內容變更;
l 定制:顏色,風格,整個站點的布局都可以定制;
2.2 系統配置
在我們團隊實際開發中有很多知識需要沉淀及交流,我們可以通過Confluence實現。
2.2.1 空間設置
1、在Confluence系統里按照不同的項目系統開設一個跟項目相關的空間,該空間是用來存放項目有關的資料信息或文檔數據,也可以對該系統的一些問題進行交流。
2、Confluence根據一些技術交流開設有關的的技術空間供用戶提出自己使用該技術時遇到的問題及其他人提供的幫助,使一些知識能夠進行沉淀,交流。
2.2.2 文檔處理
導入:
1、 以附件形式進行提交已存在文檔。
2、 如果已存在文檔是doc文檔,用戶可以導入到系統的頁面。
導出:頁面可以導出為word,PDF等文件。
Confluence是一個交流和協作的工具. 參與到Confluence系統中討論和編輯頁面的人越多,得到的價值也會越大. 因為Confluence保留了所有的修改歷史記錄, 查看誰修改了什么是很方便的, 或者退回任何不應該做的編輯也很方便。
2.2.3 用戶和組設置
用戶是指可以登錄Confluence系統的獨立個體. 大多數情況下一個用戶代表一個人, 不過您也可以為合作伙伴注冊帳號。
為了更加方便的管理,可以將用戶添加到組. 在管理頁面上的"管理組"部分可以創建新組.一旦將用戶添加到組中,那么組中的用戶將具有這個組擁有的任何權限。
兩個特殊的組: confluence-administrators 和 confluence-users。
confluence-administrators是超級用戶組. 這個組中的任何用戶有權限在站點中作任何操作, 不管其他的權限設置,在confluence-administrators組中的用戶被列在"Contact Administrators"的頁面上。
confluence-users是默認的組,所有的新用戶被添加到這個組中, 因此無論分配給這個組的什么權限都將默認分配給新注冊的用戶。
2.2.4 權限設置
一個用戶在Confluence系統中能做哪些操作,是由分配給他的權限決定的,管理Confluence系統中用戶是通過將適當的權限分配給相應的用戶來完成的。在Confluence系統中有三個級別的權限: 全局權限, 空間權限 和頁面級的權限。
全局權限
在管理界面的"Global Permissions" 部分可以進行全局權限的分配操作.
* 使用Confluence:
* 創建空間
* 管理Confluence
空間權限
每一個空間有獨立的權限進行管理. 空間右邊菜單“Browse Space”-》“Space Admin”
* View: 用戶能夠查看空間的內容.
* 頁面: 用戶能夠查看空間詳細信息, 空間里的頁面和 blog-posts.
添加- 用戶可以創建和編輯空間中的頁面.
導出- 用戶可以導出空間中的頁面.
限制- 用戶可以應用頁面級的權限.
刪除- 用戶可以刪除空間中的頁面.
* Blog Posts:
添加- 用戶可以在空間中 post blogs.
刪除- 用戶可以刪除空間中的blogs.
* 注釋:
添加- 用戶可以在空間中添加注釋.
刪除- 用戶可以刪除空間中的注釋.
* 附件:
添加- 用戶可以向空間中添加附件.
刪除- 用戶可以從空間中刪除附件.
* 空間:
導出- 用戶可以導出空間中的內容.
管理員- 用戶可以管理空間的權限.
* Mail: 可以刪除獨立的郵件
如果頁面被限制,用戶只能填寫評論不能對頁面內容進行編輯修改。
2.2.5 系統備份
系統提供每天自動備份,以及可以進行人工備份,管理員進行設置。
2.2.6 jira信息顯示
Confluence 可以使用宏的方式鏈接jira,在頁面上顯示jira的信息,如圖
3 Jira與Confluence 集成方案
3.1 使用Crowd實現
Crowd是一個基於web的單點登錄工具,它能夠簡化應用軟件的解決方案以及身份認證管理,用戶能夠方便地單點登錄,管理任意數量的用戶,登錄和密碼;集中地管理多種應用的用戶,如:JIRA,Confluence和Bamboo;可以連接到多個LDAP服務器,如:微軟的目錄服務(MS AD); 集成或者導入遺留的用戶數據庫;控制每一個用戶和組對不同應用的訪問; 容易將一個新的web應用連接到Crowd應用框架中;
但是,crowd是一個商業工具,需要購買,暫時在網上找相關破解方法較難。對於我們只運用到JIRA,Confluence兩個工具使用crowd是否有大材小用。
3.2 使用JIRA +Confluence+mysql配置實現
在網上找到通過一些配置方法,可以將JIRA及Confluence的用戶集成進行管理,但是沒有了單點登錄功能,在jira的頁面點擊進入Confluence需要再輸入登錄信息才能進行操作,配置較為復雜。
兩個實現方案都能實現jira及Confluence的用戶集成管理,不同的是,crowd可以進行單點登錄功能,但需要破解,實際使用中是否每個用戶都需要用到該單點登錄功能,而且視乎使用人員數量進行選擇。
4 小結
根據對jira及Confluence的試用,該兩個系統聯合起來使用基本符合我們開發團隊現在的實際需求,但由於現階段只有我跟幾個測試人員在試用,不知道多人使用后情況如何(性能、用戶接受情況等),希望能搭建好jira+Confluence集成環境后,建議一些項目成員、測試人員及領導進行試用。