前言上一篇文章談的是知識(shí)管理工具 —— Confluence,它來自澳大利亞 Atlassian 公司。很湊巧的是,今天要介紹的 JIRA 也是來自 Atlassian 公司的。但他不再是知識(shí)管理工具了,而是項(xiàng)目與事務(wù)跟蹤工具,被廣泛應(yīng)用于缺陷跟蹤、客戶服務(wù)、需求收集、流程審批、任務(wù)跟蹤、項(xiàng)目跟蹤和敏捷管理等工作領(lǐng)域。
背景在談 JIRA 之前,就不得不說說敏捷開發(fā)了。正式由于項(xiàng)目是基于敏捷開發(fā)進(jìn)行的,因此才引入了 JIRA 這款適合于敏捷開發(fā)的項(xiàng)目管理工具。當(dāng)然,這里不會(huì)大篇章的介紹敏捷開發(fā),之前的文章有詳細(xì)講過《敏捷開發(fā)系列終極之旅》。這里簡(jiǎn)單的再回憶一下敏捷開發(fā)的流程。
流程說到敏捷開發(fā),也是近幾年很流行的軟件開發(fā)模式。而在敏捷開發(fā)中,又分了很多種。在我們的開發(fā)過程中,選擇的是 Scrum 。Scrum是一種靈活的軟件管理過程,它可以幫助駕馭迭代、遞增的軟件開發(fā)過程,主要用于產(chǎn)品開發(fā)或工作管理。
Scrum敏捷開發(fā),是對(duì)流程控制比較嚴(yán)格的。每個(gè)環(huán)節(jié)都有一套完整的過程和嚴(yán)格的時(shí)間控制,我們項(xiàng)目組的主要開發(fā)過程如下圖所示:
介紹了解了敏捷開發(fā) Scrum 的流程之后,我們?cè)賮碚務(wù)?JIRA 。正如前邊所說,JIRA 是一款優(yōu)秀的問題跟蹤及管理工具。JIRA 采用 J2EE 技術(shù),能夠跨平臺(tái)部署。當(dāng)然,對(duì)我們來說,他還有最重要的一個(gè)功能,就是協(xié)助管理敏捷開發(fā),在經(jīng)過 Sprint 計(jì)劃會(huì)議之后,產(chǎn)品經(jīng)理把討論好的 Sprint 任務(wù)列表添加到 JIRA 的 Story 中。而且都包含著開發(fā)的具體業(yè)務(wù),開發(fā)用時(shí),技術(shù)難度等。組員們可以去
JIRA 上隨意選擇自己喜歡的任務(wù)領(lǐng)取。于是,就開始了一次開發(fā)迭代。
功能考慮到 JIRA 的安裝和配置都比較簡(jiǎn)單,而且網(wǎng)上也有很多這方面的教程,這里就不再贅述了。這里推薦一篇文章,就是講 JIRA 的安裝和配置《 jira5.0+greenhopper6.1.6的安裝》。當(dāng)然我這里也有一份比較詳細(xì)的教程,是項(xiàng)目開發(fā)時(shí)用于培訓(xùn)的,由于篇幅比較多,就不再博客上貼了,有需要的聯(lián)系我就行。這里,我打算選幾個(gè)重要的功能跟大家說一下。
安裝好 JIRA 之后,需要首先創(chuàng)建一個(gè)項(xiàng)目,這里我們以權(quán)限系統(tǒng)為例。簡(jiǎn)單的介紹一下新項(xiàng)目的添加以及設(shè)置。
項(xiàng)目添加好之后,JIRA 默認(rèn)的是 Bug 類型,而我們要進(jìn)行的是管理敏捷開發(fā)流程,因此需要對(duì)應(yīng)于敏捷開發(fā)中的 Task,這就需要手動(dòng)的修改一下默認(rèn)的 Issue 及 Issue 的順序。
JIRA 是基于工作流進(jìn)行的,而且他也提供了很強(qiáng)大的工作流管理。JIRA 提供的默認(rèn)工作流為五個(gè)狀態(tài):Open,Close,Resolve,In Progress,ReOpen。而我們真正使用的時(shí)候,這幾個(gè)狀態(tài)往往滿足不了需求,例如,一個(gè)正在進(jìn)行的任務(wù),突然發(fā)現(xiàn)不符合條件進(jìn)行,需要掛起,那么應(yīng)該放到哪個(gè)里面呢?
GreenHopper看板上面會(huì)把Story,Task,Sub-Task等都列上來,而對(duì)于Story和Task在我們的思路里,是不希望它們是一樣的處理流程,例如,對(duì)于Story我們只希望它從Open到Resolve或Close即可,不需要進(jìn)入In Progress?;谶@些問題,我們需要自己創(chuàng)建一個(gè)適合我們項(xiàng)目開發(fā)的工作流。
而 JIRA 正是提供了自定義的工作流,讓你自己去設(shè)置工作流,以滿足工作的需要。下面來看一下具體的配置。
首先,把默認(rèn)工作流中用不到的狀態(tài)去掉,然后保存。
到此處為止,我們就把不需要的狀態(tài)已經(jīng)刪除了。當(dāng)然,為了完成我們自己的工作流,還需要添加一個(gè)狀態(tài)。
到這里,自定義工作流就完成了。接下來還需要在配置一下工作流方案,這里就不再一 一介紹了,有需要的找我就好。
感受由于之前的項(xiàng)目中,也用過一款國內(nèi)的項(xiàng)目管理工具 —— 禪道,不過對(duì)于敏捷開發(fā)來說,基于 Scrum 的理念、開發(fā)流程等,總覺得禪道有些不合適(個(gè)人感覺),不可否認(rèn),禪道已經(jīng)做的很好了,只是感覺不適合我們這個(gè)敏捷開發(fā)的項(xiàng)目罷了,各位勿噴。而熟悉了 JIRA 之后,發(fā)現(xiàn) JIRA 更適合敏捷開發(fā)。
在 JIRA 的設(shè)計(jì)理念中,就存在對(duì) Scrum 的一系列支持。當(dāng)你開始一次迭代時(shí),JIRA 會(huì)幫你記錄任何一個(gè)時(shí)間點(diǎn),由 待辦 → 處理中 → 掛起 → 完成 。這幾個(gè)狀態(tài)可以相互轉(zhuǎn)換,根據(jù)具體的條件、具體的任務(wù)、具體的環(huán)境相互轉(zhuǎn)換。沒完成一個(gè)狀態(tài)時(shí),都會(huì)有詳細(xì)的記錄。而且,JIRA 還會(huì)記錄每個(gè)人的工作量,統(tǒng)計(jì)每個(gè)組員完成的任務(wù)量。這在績(jī)效考核中也是很重要的一部分。
結(jié)束語通過 JIRA,使得我們能夠快速的實(shí)施敏捷開發(fā),自動(dòng)化的管理敏捷開發(fā)中的各個(gè)環(huán)節(jié),使我們能夠把精力集中到業(yè)務(wù)的實(shí)現(xiàn)、技術(shù)點(diǎn)的攻克上。而且,有了 JIRA,在敏捷開發(fā)中,組員之間的相互協(xié)作也更加高效,不會(huì)再出現(xiàn)“有人忙得要死,有人閑的要死”的局面了。任務(wù)進(jìn)行的條件無法滿足時(shí),可以先把任務(wù)掛起,重新開一個(gè)新的任務(wù),當(dāng)前一個(gè)任務(wù)滿足條件時(shí),再重新激活。
在我看來,敏捷開發(fā)就是把任務(wù)簡(jiǎn)化,把任務(wù)細(xì)化。然后把開發(fā)時(shí)間精細(xì)到每個(gè)任務(wù),在最短的時(shí)間內(nèi)集中精力完成任務(wù)。這也是為什么敏捷開發(fā)不提倡加班的原因。重要的不是敏捷開發(fā)的過程,而是敏捷開發(fā)的思想。
JIRA,不僅僅是一款項(xiàng)目管理工具,同時(shí)也代表了一種敏捷開發(fā)的思想。
|
|