在敏捷项目里,挂在墙上的“人人可见的大图表”是一种普遍的实践,它被用来共享项目的状态并将之可视化。在精益生产系统里,看板方法是给每个标准生产单元或者每个生产批量附上一张卡片。只有当一个“进行中”卡片所代表的工作完成后,才会有一张新卡片被“拉”进系统。
在本文中,我将探究当今敏捷项目中广泛使用的各种可视化方法,并提出用看板图(Kanban Board)来组织三种视角(时间、任务和团队),目的是使整个团队都能理解项目的当前状态,并以一种自发、有动力且互相合作的方式来工作。
第一部分 敏捷项目可视化工具
1. 迭代规划的五个技巧工具---产品路线图---用户故事地图/特性看板图-发布计划图--发布日历图
愿景->产品路线图->用户故事地图 ->发布计划四个层级
1、用户故事地图 / 发布计划图
和客户一起厘清产品的用户角色,并尽可能多地写出用户的行为,以及每个用户行为场景下需要做的事情,然后按照用户行为从左到右讲故事。当大家把自己所能想到的故事地图都放上去之后,再合并增减故事,最后会形成一个二维故事地图。
2、构建产品发布路线图
整个故事地图会包含很多故事点,但在一定时间完成所有功能是不太可能的,团队要综合考虑商业价值、市场现状、实现难度等方面因素,确定接下来几个发布的内容,以及每个发布预期能产生的成果。
产品线产品路线图
3、快速估算
用户故事创建好后,我们可以对地图中的所有任务进行快速估算,以便于能够知道我们整个Release要发布产品的所需大概工作量。不同于Sprint中对故事的估算,这里更粗略更快速,可以用故事点或者T恤size(S, M, L , XL)来制订我们的估算标准。
4、制定发布计划
前面工作完成后,我们对于整体产品和开发时间会有一个大概的估计,那么就可以设计Release计划了。按照我们的估算,设计一个Release需要发布哪些特性,然后包括几个Sprints。再将故事按照优先级和价值进行排序放回到每个Sprint里,可以利用一些迭代规划的在线工具。
发布计划--两种表现形式 5、产品发布日历
- 在计划会议之后,最终确定详细信息,进行任何最后调整,然后与所有利益相关者共享产品发布日历。
6、影响地图(Impact Mapping)|规划工具----业务目标关联产品功能----why--who--how--what四个层次分析
摘要:影响地图就是一个很好的规划工具,它通过可视化和结构化的的形式,将业务目标和产品功能之间建立关联,确保实现的产品功能都是对客户有用,能为公司带来收益,有价值的。
黄金圈法则(The Golden Circle)
2009年,Simon Sinek 在TED的演讲《How Great Leaders Inspire Action》中,提出了黄金圈法则(The Golden Circle)。黄金圈法则就像是三个同心圆的结构,从里到外依次是:WHY -> HOW -> WHAT,思考的顺序是由内向外。
Simon Sinek在演讲中,通过对一般公司和苹果公司喜爱收中,与消费者沟通方式的对比,说明了人们在决定购买的时候,买的并不是产品,而是在为他的信念和宗旨在买单。也就是为什么做比做什么、如何做更重要。
根据调查数据,交付的软件中,经常被使用的功能仅占20%,偶尔使用、很少使用和从来不使用的功能占80%。
由此可见,在产品规划阶段,搞清楚客户或者用户的真正需求(WHY)是什么非常重要,这样才能让最终做出来的产品功能真正被使用,真正有价值。影响地图就是一个很好的规划工具,它通过可视化和结构化的的形式,将业务目标和产品功能之间建立关联,确保实现的产品功能都是对客户有用,能为公司带来收益,有价值的。
影响地图是2012年,敏捷大师Gojko Adzi在《Impact Mappping》一书中提出的,形式如下图所示,通过Why->Who-> How -> What四个层次的分析法,以结构化的形式显示,将业务目标(Why)和产品功能(What)之间建立关联,让团队清晰的看到每一个功能对业务目标的实现是怎样的影响路径,确保团队做的每一个产品功能都是有价值的。
- Why:目标,这是核心层,要搞清楚为什么研发这个产品,客户的需求是什么?
- Who:角色,想要实现这个目标,哪些角色会影响目标的实现?是促进它还是阻碍它?谁会被它影响?
- How:影响。这些角色是如何对目标产生影响?是帮助还妨碍?
- What:什么。我们可以做什么来支持这些影响的实现?可以是产品功能、活动运营、内容交付等。在实际的工作中,我们会经常纠结和陷在What这个层面,去思考做些什么能促使目标达成,而忽略中间的两层,甚至忘记了核心层Why。
影响地图在原因Why(业务目标)和结果What(产品功能)之间建立两个假设,去呈现我们的思考逻辑。
- 一个是影响假设,不同角色通过不同的影响去帮助目标实现。
- 一个是功能假设,提供相应的产品功能或者服务就可以产生这样的影响。
例子,
先定目标;发散思维想办法;收敛核心价值。
收敛方法:
1)根据成本收益矩阵排优先级别,收敛核心价值。
2)根据收益困难矩阵排优先级,那些收益大实现简单的排首位。
通过影响地图,实现从“成本中心”到“投资中心”的转变
从多少开发工作量?什么时间要?
到多少价值?怎么验证?多少工作量?什么时间要?
小的预算验证想法,如果错误及时回头。
目标/里程碑与发布计划
每次迭代只处理少量的目标,《影响地图》建议每次只处理一个目标,目的在于快速反馈和调整。
如何防止思维蔓延,地图扩张
以物理墙或白板为影响地图的最大边界。
相比于第四层What,我们应该把注意和放在前三层目标(Why)、角色(Who)、影响(How)上。尤其是角色和影响上,优先级排序也是如
需要注意:多数的路径最终不会被执行,首先要避免过早陷入过多的细节,未来一切都是未知的,所有的都是基于当前的假设。其次,目标导向。并非所有的目标都需要通过产品功能达成。
影响地图何时失效
影响地图更像是迭代计划,每个影响达成,进行反馈评估,对影响地图的内容以及优先级进行调整;一旦目标达成,也许这张影响地图就完成了使命。
影响地图应遵循“三心二义”原则
不忘初心:努力牢记做事的目标是达成业务目标,而不是实现功能,甚至不是达成影响(如果影响最终不能帮助实现目标)。
不要贪心:不要试图一次完成几件事,而应该拆成多个里程碑,多张地图;掌握80/20原则,达成目标即可,业务环境始终在变化,业务关注点也会随之变化。
赤子之心:不偏不倚,不骄不躁,边走边学边调整,对目标和未来抱着一颗坦诚、恭敬与探索的心,不否定、不自大、不盲人。
批判主义:怀疑一切,多问几个为什么;把假设引导出来,通过分析和实践来验证假设。
实用主义:一切以实用出发,价值导向,目标导向,结果导向,保持简洁。
2. 敏捷项目迭代状态可视化--信息发射源--看板图、燃尽图、停车场图常常用来跟进迭代的监控,展示项目状态
XP 有一种实践叫做“信息化的工作空间”,从中你可以对项目的进行状态一目了然 。把故事卡和任务卡挂到墙上是这项实践的一种简陋实现方式。挂在墙上的其他图表有时候也被称为“信息发射源”或者“人人可见的大图表”,它们在现今的敏捷项目空间设施里已经是很常见了。下面,我将展示在日本的敏捷团队中发现的一些可视化的例子。
1.1 任务看板图(Task Kanban Board)---第一个例子常在开发团队中使用
它的名字来自 TPS (Toyota Production System)所用的“Just-In-Time”(JIT)生产方式 [Poppendieck03, 07]。
看板是代表一项要完成的任务的标签。在 TPS 中,它被用来具体化 Just-In-Time 的“拉”生产控制。在图 1里,看板图显示了在本次迭代中要完成的所有任务的当前状态。任务用卡片(便笺纸)来代表,状态则由板上分别标有“未做”、“正做”和“做完”的三个区域来代表。看板图帮助团队理解当前做得如何,以及下一步要做什么,令团队能够自我指导。
1.2.“特性看板图(Feature Kanban Board)” [Highsmith04]----产品路线图的一种更高层次的概观,因此分享范围应该被扩大到整个大团队,包括客户、市场员工和管理层
表的横轴代表时间线,线上的竖直区域代表发布,在区域中的卡片各自代表一项该次发布中要实现的特性。
跟第一个例子相比,特性看板图为产品路线图提供了一种更高层次的概观,因此分享范围应该被扩大到整个大团队,包括客户、市场员工和管理层。
3. 停车场图(Parking Lot Chart)
”被用来提供一种最高层次的对项目状态的摘要总结(注意不要同另一种“停车场列表(Parking Lot List)”弄混,那是一种用来帮助捕获未解决的问题的工具)。它是在《Feature Driven Development》(FDD)[Palmer02] 里首次提出来的,现在已在敏捷项目中广泛使用。有时候也被称为“项目仪表板(Project Dashboard)”。
4. 项目状态的另一种可视化方式称为项目燃尽图(Burndown Chart)。
这种表在 Scrum[Schwaber01] 中首次提出,用来显示剩余的未完成工作(backlog),现在已经蔓延到了大多数敏捷项目中 [Cockburn04][Cohn05]。它抓住了项目的当前状态以及完成剩余工作的进展比率。
| |
![]() | 项目燃尽图 1. 计划剩余工作 2. 实际剩余工作 |
在Jira中,选择需要的Sprint, 点击reports, 就可以可以轻松容易的生成燃尽图啦。 此外,Jira还可以生成Epic燃尽图:
| |
条形燃尽图: 规则,完成任务从上面移除; 迭代过程中增加任务,从下面加入;迭代过程中移除任务,从下面移除; |
5. 最后一种有意思的可视化方式叫做表情日历(Niko-niko Calendar 或 Smiley Calendar)一种日本人的创造,它显示了团队成员每日的心情。
当天工作结束后,每个人都在离开团队空间之前往自己的日历上画一个表情符号 [Sakata06]。它从成员的精神健康和动力的角度来观察项目。
6. 累积流量图
累积流量图是追踪和预测敏捷项目的重要工具;它从不同方面描述工作:总范围、进行中和已完成的;相同的报告可以提供对于燃尽图、周期时间、在制品和瓶颈的洞察;
通过这个信息,ScrumMaster 可以关注重点提高团队吞吐量。
累积流量图-小定律(又译:利特尔法则)累积流量图有助于确定系统库存数量,小定律表明在一个既定的在制品水平,在制品与前置时间之比等于吞吐量。
总而言之,以上提到的可视化工具:
- 用卡片作为任务、故事、特性的象征(看板),并将它们依附在时间线上(看板图)。这里存在不同的粒度。
- 计算看板(未完成任务)的数目,分时间段来跟踪它们,以显示出工作的完成趋势。这里也存在不同的粒度。
- 总结最高层次上的项目状态。
- 除了表情日历之外,还有很多日历变种可以用来显示项目的状态或者计划。
注意在看板图、燃尽图和停车场图三者之中,看板图的信息最详细。燃尽图和停车场图可以用看板图的每日变化信息来绘制。
因此我将把看板图作为主要的信息辐射体,而用燃尽图和停车场图来作为辅助工具,形象地总结看板的变化趋势。
2. 从三个视角来组织看板
仔细观察看板图,你会发现上面表达了三项主题——时间、任务和团队。下面我尝试从这三个视角来组织看板。
1. 时间
在敏捷项目里,项目时间首先被分解成若干“发布”,每个发布又被分解成若干“迭代”,每个迭代又分解成若干“工作日”。
- 发布的时间长度一般为 1 到 6 个月,它是最粗粒度的时间单元。它是整个团队的一个同步点,因此团队中的每个人都应该对此感兴趣。
- 迭代是第二级的时间单元,长度一般为 1 到 4 周。开发团队用它来作为主要的工作、跟踪和改进周期。
- 工作日是最细粒度的时间单元,团队每天在站立会议上聚集在一起交流项目的状态和问题。
2. 任务
任务被分成三种粒度。我把最高层次的叫做“特性/子系统”,每个特性都被分解成若干“故事/功能”,而每个故事又被分解成若干最低层次的“任务”。
- 特性是对用户有用和有意义的一项功能。
- 故事是特性的一个可测试的片断,以用户的语言来描述。
- 任务是故事中的一个工作单元,通常以开发者的语言来描述
3. 团队
项目团队由为了共同目标而工作的人们组成。整个团队都应该分享时间和任务信息来达成项目的目标。
第二部分 其他可视化工具
1. 风险可视化工具
![]() | 风险燃尽图 这个表通过迭代或时间风险承担总量以及风险普查的预期货币价值EMV创建; 项目过程中风险应该有一个线性下降; 每次迭代应该通过交付用户故事来减轻或消除风险板上的风险。 |
![]() | 、风险预测图 风险预测图是风险燃尽图的详细版本。
|
第三部分 腾讯云TAPD 统计度量工具示例
1. 迭代统计: TAPD 敏捷项目管理 迭代统计-统计量度-文档中心-腾讯云
在 TAPD 中,迭代集成了项目在一个 Timebox 中的需求、任务、缺陷等,在迭代详情中,TAPD 提供了丰富的统计图表,帮助团队实时掌控当前迭代进度,或是量化回顾之前的迭代。
成员任务跟踪 | ![]() |
迭代仪表盘 | 需求统计、需求燃烧图、缺陷统计、任务统计、构建统计、代码质量、部署发布数据等一系列统计图表 |
进度图 | 需求状态分布图、需求规模分布图、需求个数燃烧图、需求规模燃烧图、工时燃烧图、需求个数累积流图、需求规模累积流图 甘特图: 特图分为普通甘特图和资源甘特图。 |
工时报告 | ![]() |
2. 项目统计
TAPD 中进行多种类型的缺陷统计分析: 缺陷分布统计: 展示不同维度的缺陷分布--模块分布/人员分布/状态分布,方便用户直观了解目前各类缺陷的数量、状态、处理人等。 缺陷趋势统计:跟踪缺陷状态随时间变化。 缺陷年龄统计:根据缺陷状态变更记录,统计缺陷在各个状态上的停留时间,可作为缺陷处理效率的参考。 缺陷回归分布:统计缺陷从“已解决”到“接受处理”反复的次数。 缺陷解决率:统计指定时间段内,已解决缺陷数占有效缺陷总数的比例。 | |
缺陷趋势统计 | ![]() |
缺陷年龄统计 | ![]() |
TAPD 进行需求分布统计、需求时长统计、需求关联统计、需求燃烧图、需求累计流图。 需求分布统计:展示不同维度的需求分布,方便用户直观地了解目前各类需求的数量、状态、处理人等。 需求时长统计:即需求状态时长统计表,查看需求在各个状态下的停留时长。在数据统计时可以选择隐藏周末数据,帮助团队度量研发效能。 需求关联统计:快速查看项目内需求关联情况,帮助团队梳理不同分支中的需求管理。如可以跟踪同一个产品功能需求在不同手机平台上的实现情况。 需求燃烧图:包括迭代需求个数燃烧图、迭代需求规模燃烧图。方便用户直观地了解目前迭代需求个数或规模处理情况。 需求累计流图:包括迭代需求个数累计流图 、迭代需求规模流图。方便用户直观地了解目前迭代需求个数或规模处理情况。 | |
需求分布统计 | |
![]() | |
![]() | |
TAPD 在提供轻量的看板功能同时,也提供了强大的看板统计功能,包括: 工作项状态统计:统计已完成、未完成、已延期的工作项数量与比例,直观把控工作进度。 板块分布统计:按照板块分别统计已完成、未完成、已延期的工作项数量,定位强势与薄弱板块。 成员工作分布统计:按照成员分别统计已完成、未完成、已延期的工作项数量,了解成员分工与工作情况。 工作项趋势统计:查看每天新增与完成的工作项,体现项目发展趋势。 | |