敏捷協作——Daily Scrum 的重要性
我不僅發揮了自己的全部能力,還將我所仰仗的人的能力發揮到極致。
——伍德羅·威爾遜,美國第28任總統(1865—1924)
只要是具備一定規模的項目,就必然需要一個團隊。靠單打獨斗在自家車庫里面開發出一個完整產品的時代早已不再。然而,在團隊中工作與單兵作戰,二者是完全不同的。任何一個人的行為都會對團隊以及整個項目的生產效率和進度產生影響。
項目的成功與否,依賴于團隊中的成員如何一起有效地工作,如何互動,如何管理他們的活動。全體成員的行動必須要與項目相關,反過來每個人的行為又會影響項目的環境。
高效的協作是敏捷開發的基石,面對面的會議是最有效的溝通的方式。每日例會(Daily Scrum)是最早引入并被極限編程所強調的一個實踐。它是將團隊召集起來,并讓每個人了解當前項目進展狀況的一種會議。它是一個快速的會議,每個參與者只能被給予很少的發言時間(大約兩分鐘)來介紹自己的項目進展概要。為了保證會議議題不會發散,每個人都應該只回答三個問題:
- 昨天有什么收獲?
- 今天計劃要做哪些工作?
- 面臨著哪些障礙?
Daily Scrum 有諸多好處:
- 讓大家盡快投入到一天的工作中來。
- 如果某個開發人員在某一點上有問題,他可以趁此機會將問題公開,并積極尋求幫助。
- 幫助團隊帶頭人或管理層了解哪些領域需要更多的幫助,并重新分配人手。
- 讓團隊成員知道項目其他部分的進展情況。
- 幫助團隊識別是否在某些東西上有重復勞動而耗費了精力,或者是不是某個問題有人已有現成的解決方案。
- 通過促進代碼和思路的共享,來提升開發速度。
- 鼓勵向前的動力:開到別人報告的進度都在前進,會對彼此形成激勵。
總之,Daily Scrum 能幫助所有的團隊成員全心投入到項目中,并且一起向著正確的方向努力。IBM® Rational® Team Concert (RTC)對于團隊來說,已經被證明是一種在軟件開發過程中進行協作的高效方式。RTC 實現了源代碼管理與工作項管理的完美集成。它能夠幫助進行敏捷計劃、并生成報告,方便管理工作項,并且它還提供了一種有效的框架來支持每日例會(Daily Scrum)。下面,本文將介紹三種使用 RTC 進行 Daily Scrum 的方式。
在 RTC 里使用默認的 sprint backlog 進行 Daily Scrum
雙擊打開項目當前所處于的 sprint backlog(sprint 是 scrum 中的術語,指敏捷開發周期中的一個迭代計劃),如圖 1 所示,在窗口底部選擇“Planned Item”標簽,在窗口右側選中 Schedule Risk 單選按鈕,窗口將呈現將列出當前 sprint 中的所有工作任務項 story 和 task。在進行 Daily Scrum 時,團隊成員可以根據這個窗口,逐一更新這些任務的狀態。
圖 1. 默認的 sprint backlog 窗口
用戶可以展開任務項來顯示其各個子任務,了解子任務是由誰負責,進展等詳細信息。如圖 2 所示。
圖 2. 展開的默認 sprint backlog 窗口
這種召開 daily scrum 的方式非常簡便。它能夠展示整個項目的進展和最近的變化,但是任務項不是按照團隊成員分組的,不太適應于了解各個團隊成員狀態。為了解決這個問題,本文下一章介紹另一種用 RTC 進行 daily scrum 的方式。
在 RTC 里定制 sprint backlog 進行 Daily Scrum
定制的 sprint backlog 又稱為“開發者任務一覽表”。一覽表按照團隊成員展示任務,每一行表示一個正被開發的任務。任務顯示在第一列,其余幾列顯示其子任務的開發狀態:ToDo(將要做),In Progress(正在做)和 Done(完成)。并且,各任務根據其當前狀態,分別用不同的顏色顯示,一目了然。定制 sprint backlog 的具體步驟如下:
- 打開項目所在的當前 sprint backlog,點擊 Copy 拷貝這個計劃的模式。如圖 3 所示:
圖 3. 拷貝當前計劃的模式
- 修改某些選項的值。比如修改定制 sprint backlog 的名字為“Developer's Taskboard”,風格選擇“Taskboard”,分組選擇“Owner”,排序選擇“Creation Date”,進度條選擇“Progress”。如圖 4 所示:
圖 4. 修改某些選項
- 修改視圖的布局。從窗口底部選擇“View Layout”標簽,從左側列表中選擇“Effort Tracking”和“Owner”到右側列表。如圖 5 所示:
圖 5. 修改視圖布局
- 為 sprint backlog 添加色彩。從窗口底部選擇“Colorize”標簽,根據自己的需要添加、修改、刪除各種顏色。如圖 6 所示:
圖 6. 添加色彩
- 保存所做的修改,用戶將得到自己專屬的 sprint backlog。顯示的效果如圖 7 所示:
圖 7. 用戶定制的 sprint backlog 顯示結果
當工作任務項不是很多的時候,這種方式非常適合進行 daily scrum。但是,如果當迭代計劃中的工作任務項很多時,這種方式就不再適合了。為了解決這個問題,下一章將介紹最后一種用 RTC 進行 daily scrum 的方式。
在 RTC 里創建自定義的查詢進行 Daily Scrum
一般在進行 daily scrum 時,項目管理者需要查詢出最近正在被修改的任務,這包括狀態是“New”和“In progress”的任務。創建這種自定義的查詢具體步驟如下:
- 在“Work Items”下的“My Queries”上點擊鼠標右鍵,選擇“New Query…”,如圖 8 所示:
圖 8. 創建一個查詢
在打開的窗口中點擊“start from scratch”,如圖 9 所示:
圖 9. 從零開始創建一個查詢
- 在打開的窗口底部選擇“Conditions”標簽,在窗口右上角點擊加號,選擇“Add Conditions…”添加查詢條件,如圖 10 所示:
圖 10. 添加查詢條件
根據需要選擇一些查詢條件,為這個查詢取一個名字,保存。如圖 11 所示:
圖 11. 添加如下查詢條件
- 共享剛剛創建的這個查詢,供每個團隊成員使用。如圖 12 所示,在窗口底部選擇“Details”標簽,在窗口右上角點擊“Share”,選擇“Team or Project Area…”。
圖 12. 共享查詢
在彈出的窗口中選擇共享這個查詢給哪個團隊,如圖 13 所示,然后點擊 OK,保存。
圖 13. 選擇共享團隊
- 根據需要定制查詢結果的布局,包括選擇顯示哪些列,按照哪些列排序等,如圖 14 所示:
圖 14. 定制查詢結果的布局
- 顯示查詢結果。如果按照上述配置,查詢結果將在“Work Items”標簽下顯示,如圖 15 所示:
圖 15. 查詢結果
這種召開 daily scrum 的方式能夠列出在最后一天工作任務項的變化,以及哪些工作任務項還沒有完成。但是它們都是以列表的方式顯示出來,界面友好性和可讀性不是很好。
結束語
本文介紹了 daily scrum 在團隊項目開發中的重要性,以及三種用 IBM Rational Team Concert 進行 daily scrum 的方式:默認的 sprint backlog,定制 sprint backlog,和創建自定義查詢。這三種方式各有其優缺點:
- 當團隊人員比較少,一般小于 5 人,并且只是關注當前 sprint task 時,比較適合采用第一種方式進行 daily scrum。使用它可以清楚的看到 Task 與 User Story 之間的層次關系,以及 User Story 的開發進度。
- 當團隊人員比較多,規模比較大,有自定義的 RTC Task 或者有子 Scrum Team 時,比較適合采用第二種方式進行 daily scrum。使用它與第一種方式一樣,也是只關注當前 sprint task,但它還可以按照自定義的方式分組顯示,更清楚的了解每個團隊成員的 task 狀態。
- 當希望關注團隊中所有 Task,而不僅僅是當前 sprint task 時,前兩種方式都無法滿足 sprint plan 的顯示需求,可以考慮使用第三種方式自定義創建查詢,進行 daily scrum。與前兩種方式相比,它更加靈活,建立查詢的條件非常豐富,可以根據需要創建多個查詢同時使用。
請用戶根據自己的需要選擇不同的方式進行 daily scrum,進行高效的團隊項目開發。
@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);