转自http://space.itpub.net/7656893/viewspace-589011
在 敏捷项目里,挂在墙上的“人人可见的大图表”是一种普遍的实践,它被用来共享项目的状态并将之可视化。精益系统里也有这样的设施。“看板”在日语里的大意 是“卡片”或者“标志”的意思。在精益生产系统里,看板方法是给每个标准生产单元或者每个生产批量附上一张卡片。只有当一个“进行中”卡片所代表的工作完 成后,才会有一张新卡片被“拉”进系统。
在本文中,我将探究当今敏捷项目中广泛使用的各种可视化方法,并提出用看板图(Kanban Board)来组织三种视角(时间、任务和团队),目的是使整个团队都能理解项目的当前状态,并以一种自发、有动力且互相合作的方式来工作。最后,我将介 绍“TRICHORD”这个 软 件 工具,它用看板方法来实现这三个视角的项目可视化。
敏捷项目中的可视化
XP有一种实践叫做“ 信息化 的工作空 间”,从中你可以对项目的进行状态一目了然[Beck05]。把故事卡和任务卡挂到墙上是这项实践的一种简陋实现方式。挂在墙上的其他图表有时候也被称为 “信息辐射体”[Cockburn01]或者“人人可见的大图表” [Jeffries04],它们在现今的敏捷项目空间设施里已经是很常见了。下面,我将展示在日本的敏捷团队中发现的一些可视化的例子。
第 一个例子是任务看板图(Task Kanban Board) ,它的名字来自TPS (Toyota Production System)所用的“Just-In-Time”(JIT)生产方式[Poppendieck03, 07]。
图1:任务看板图
看板是代表一项要完成的任务的标签。在TPS中, 它被用来具体化Just-In-Time的“拉”生产控制。在图1 里,看板图显示了在本次迭代中要完成的所有任务的当 前状态。任务用卡片(便笺纸)来代表,状态则由板上分别标有“未做”、“正做”和“做完”的三个区域来代表。看板图帮助团队理解当前做得如何,以及下一步 要做什么,令团队能够自我指导。
图2 是另一种类型的看板图,称为“特性看板图 (Feature Kanban Board) ” [Highsmith04]。
图2:特性看板图
表的横轴代表时间线,线上的竖直区域代表发布,在 区域中的卡片各自代表一项该次发布中要实现的特性。第一个例子常在开发团队中使用。跟第一个例子相比,特性看板图为产品路线图提供了一种更高层次的概观, 因此分享范围应该被扩大到整个大团队,包括客户、市场员工和 管理 层。
图3 的“停 车场图(Parking Lot Chart) ”被用来提供一种最高层次的对项目状态的摘要总结(注意不要同另一种“停车场列表 (Parking Lot List)”弄混,那是一种用来帮助捕获未解决的问题的工具)。它是在《Feature Driven Development》(FDD)[Palmer02]里首次提出来的,现在已在敏捷项目中广泛使用。有时候也被称为“项目仪表板(Project Dashboard)”。
图3:停车场图
.图4 所示的另 一种可视化方式称为燃尽图(Burndown Chart) 。
图4:燃尽图
这种表在Scrum[Schwaber01]中首次提 出,用来显示剩余的未完成工作(backlog),现在已经蔓延到了大多数敏捷项目中[Cockburn04][Cohn05]。它抓住了项目的当前状态 以及完成剩余工作的进展比率。
图5 所示的最后一种有意思的可视化方式叫做表情日历 (Niko-niko Calendar或Smiley Calendar),一种日本人的创造,它显示了团队成员每日的心情。当天工作结束后,每个人都在离开团队空间之前往自己的日历上画一个表情符号 [Sakata06]。它从成员的精神健康和动力的角度来观察项目。
图5:表情日历
总而言之,以上提到的可视化工具:
注意在看板图、燃尽图和停车场图三者之中,看板图的信息最详细。燃尽图和停车场图可以用看板图的每日变化信息来绘制。因此 后面我将把看板图作为主要的信息辐射体,而用燃尽图和停车场图来作为辅助工具,形象地总结看板的变化趋势。
仔 细观察看板图,你会发现上面表达了三项主题——时间、任务和团队。下面我尝试从这三个视角来组织看板。
图6:时间与任务的分解
在敏捷项目里, 项目时间首先被分解成若干“发布”,每个发布又被分解成若干“迭代”,每个迭代又分解成若干“工作日”。
任务被分成三种粒度。我把最高层次的叫做“特性”,每个特性都被分解成若干“故 事”,而每个故事又被分解成若干最低层次的“任务”。
项目团队由为了共同目标而工作的人们组成。一般团队的成员有一个经 理,若干客户、程序员 、业 务分析员、用户、测试员,以及其它利益相关的人。整个团队都应该分享时间和任务信息来达成项目的目标。
我 乐于将看板图定义成一种团队中任务与时间之间的映射。请注意“时间”和“任务”都可以分解成三个层次,分解的层次越高,应该牵扯到的管理层次就越高。所 以,按照“发布—特性”、“迭代—故事”和“工作日—任务”的组合来设立看板是合理的,虽然其它时间与任务的组合也并非不可行。
表1:用看板结合时间与任务
“特性看板”的长处在于向全团队提供项 目的一个高度抽象的视角。可以搭配停车场图来显示出最高层次的状态。
“故事看板”处在中间层次,向团队提供每次迭代的最广泛周密的信息,搭 配迭代的燃尽图会更有效。
“任务看板”的层次最低,它显示出每日变动的当前状态,搭配每日的燃尽图会更有帮助。
图7:概观——三种视角以及用看板图将任务映射到时间
我 们正在开发一个名为“TRICHORD”的敏捷 项目管理 工具。 TRI指的是三种视角(时间、任务和团队),CHORD则是和谐的意思。
它作为全团队分享项目状态的一个工作空间来运作,如表1 所 示,里面提供三种层次的看板图——特性看板(发布—特性)、故事看板(故事—迭代)和任务看板(工作日—任务)。特性看板用停车场图来归纳,故事和任务看 板用燃尽图来归纳。
图8:TRICHORD(看板图+燃尽图+停车场图)
另 外,TRICHORD有一个表情日历服务用来给全团队分享心情。它也是项目中的SNS交流中心,就像一个简单的“twitter”。
图9:TRICHORD表情日历
TRICHORD用Eclipse RCP实现,可与Trac(问题跟踪系统)协同工作。