敏捷协作——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.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);