敏捷开发 如何设计好看板?:敏捷看板成功实施的关键?如何通过看板实现项目可视化?
敏捷开发的看板不仅仅只是看板?在敏捷开发中为什么要采用看板?如何设计好的看板?任务条是改进的关键?
在我的理解中,敏捷开发中最先需要实施的三项重要工作需求用户故事化,沟通站会制以及进度看板化,这三个如果实施好了,不管你是否在实施真正敏捷还是对当前项目管理方式的一种改进,都能在研发管理过程中取得很大的进展。
前面两篇文章讲了用户故事和站会,这章就重点讲述项目进度看板化,本人会结合实际项目操作过程及对看板演进的过程进行讲解。
什么是看板?看板不仅仅是看板?
看板一词来自日本(kanban),源于精益生产实践(丰田生产),敏捷开发将其背后的可视化管理理念借鉴过来。看板使得项目管理最大的可视化,但是看板更可以将研发的过程进行管理,记录下用户故事研发过程中的细节和历程。
敏捷开发为什么要采用看板?
看板可以让研发过程最大限度的可视化,同时解决团队沟通障碍(实践中发现也可以作为和上级沟通项目进展的重要信息)的主要方法之一。通过看板,项目团队可以清楚了解已经完成的情况,正在做的以及后续将有可能需要做的用户故事。
看板可以作为敏捷团队每天站会的讨论的核心,及时变更看板各个用户故事的状态,通过看板,敏捷团队可以清楚的了解其它成员的工作状况及和自己相关工作的进展。
在状态墙上,除了用户故事、 bug之外,还会有一些诸如重构、搭建测试环境这样的不直接产生业务价值的任务,这三类任务用不同颜色的卡片,放到状态墙上统一管理。
图1.实际项目看板
看板状态呈现可以很简单,也可以很复杂,这都基于实际项目的需要,我结合我们在实践敏捷研发过程中,对看板的几次改进进行分享。在介绍之前需要对用户故事的“完成”状态下个定义, 用户故事的“完成”是指经过测试并可潜在发布给用户使用的状态。
第一阶段:简单的反映用户故事目前处于的研发状态
图2 简单的讲用户故事的任务上墙
刚开始实施敏捷的时候才用最简单的看板,如上图2所示,只是简单的将用户故事的研发上看板,基于此看板我们能清楚的指导目前用户故事处于的状态。但是这种简单的看板存在一些明显的问题,如研发人员和测试人员的沟通状态无法在看板上进行体现。
所以在第一阶段我们又进行修改,增加研发和测试的衔接,如下图3所示
图3 细化“正在做”的状态
在改进后,我们“正在做”阶段进行细分为开发中,待测试机测试验证,
这样的看板流程可以有以下一些好处
1. 通过这个改进流程就可以通过看板呈现研发完成到测试阶段,从测试阶段到完成阶段的展示。
2. 通过看板上用户故事数量的状况,可以预测目前研发资源和测试资源配比是否合理?根据状况可以及时调整人员。
第二阶段,通过泳道方式,让实现用户故事团队成员间的协作得到反映
我们开展的项目由于是端到端的系统,所以往往一个用户故事的实现会涉及多个成员的共同参与,所以一个用户故事的完成依赖于多个人员负责的Task完成。所以针对这种情况我们进化了图4的方式,
图3 采用泳道方式进行管理
具有泳道特性的看板,在移动状态时需要参照以下流程
1. 当一个用户从“将要做”移到“用户故事”列时,需要将用户故事涉及的多方成员的工作进行任务拆分,拆分成一个个的任务。
2. 成员针对任务进行工作,当所有成员的任务完成后,将完成的用户移到测试验证列中。
3. 如果测试发现问题,则将相关的bug报给对应任务的人。
泳道方式的看板具有以下一些优点
1. 在多个人协助的情况下,每个人可以独立完成分配的Task,相互的影响和制约可以降低到最小。
2. 每个人完成的Task可以作为用户故事的阶段成果,可以尽早的引入测试进行功能测试。
3. 可以非常清楚的了解整个用户故事的进展情况,了解用户故事处于的障碍。
但泳道方式也存在以下不足之处
1. 由于用户故事被拆分成分工明确的Task了,所以这个用户故事内部进入了阶段提交的过程。
2. 由于大家被拆分到了Task,所以需要指定特定的人来负责整个用户故事,并需要在内部协调项目之间的工作
3. 用户故事的工时预计又被模块拆分,在长期实践中,导致工时的预计又进入负责任务的人进行预估的模式。
第三阶段,通合理设计任务条,实现故事,进度,工时和各类衔接工作
在实践了一段泳道模式之后,我们重新思考了,如何让各类工作更好的衔接。最终在任务条上进行改动是最合适的。所以我们根据实践过程中发现的问题,形成了如下的任务条。
图四 全面体现工作的任务条
此看板的任务条主要体现几大方面
1. 用户故事的描述,这个作为任务条核心部分,通过模块和ID和需求系统进行对应
2. 研发团队先对用户故事进行整体工时预估,得出这个用户故事团队的工作时间。
3. 涉及这个用户故事的所有人员都列在用户故事的下方,并且通过每天对当前用户故事的总工作量的预估,以及填写昨天的实际开发所耗工时
4. 用户故事指定相关责任人及依赖关系,可以明确的找到相关人员进行协调和解决
5. 通过bug list列出发现的问题,开发人员可以及时修改
采用了这种任务条后,就取消了泳道的模式,而是采用需求,UI设计,开发,单元测试,待测试,测试中,完成几个状态来完成。在我们项目中UI设计进行独立管理,是因为在整个UI设计是我们的瓶颈所在,需要及时查看UI任务堆积状况,及时调整UI的工作优先级状态,所以针对UI我们会独立出任务。
图5完整看板状况
在做好看板工作时需要注意以下几点
1. 找到一种好的材料来制作任务条,以确保任务条容易被移动,不易掉落并且容易被收藏。一旦这个环节没有做好,很可能会导致看板维护成本加大,甚至后期不维护看板。
我们在这个过程中尝试了很多,如中便签条+小便签条, 大便签条, 纸板+橡皮泥等等,最终结合我们的看板是基于玻璃的,最后选择了打印纸+透明胶的方式,移动很方便,而且不容易掉。
2. 及时更新任务条中的各类状态,任务条不仅仅只在看板上移动,更重要的是要记录下研发的过程,这样很容易制作燃尽图,工时消耗图等供全局使用的报表。我们的做法是在站会钱5分钟,大家先更新状态,PO及时统计各类数据。
敏捷开发 如何设计好看板?:敏捷看板成功实施的关键?如何通过看板实现项目可视化?相关推荐
- 敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)...
这是敏捷开发绩效管理的第六篇.(之一,之二,之三,之四,之五,之六,之七) 直接估天数或用故事点估天数,都很"程序员".如果在项目的甚早期,面临与客户相关的报价问题,或高层领导要统 ...
- 敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)...
这是敏捷开发绩效管理的第七篇.(之一,之二,之三,之四,之五,之六,之七) 续前文-- 功能点估算 第一级简化 上次说到只用数据+操作就能准确计算规模,听起来够简单了,但其实还不够. 谁能在刚拿出2页 ...
- 敏捷开发绩效管理之五:敏捷开发生产率(上)(故事点估算)
这是敏捷开发绩效管理的第五篇.(之一,之二,之三,之四,之五,之六,之七) 度量敏捷开发的生产率一直是个难题,确切说度量任何开发方法的生产率都是一个难题,但它实际上有答案,这个答案是本文的主要内容. ...
- 从持续交付看敏捷开发的自相似性(敏捷开发的心跳)
作者:陈勇 出处:blog.csdn.net/cheny_com 自相似性是指一个事物的局部与其更大的局部乃至整体具有相似性. 从大的方面看,敏捷开发具有重视客户价值,提倡持续交付等思想.但一般而言, ...
- 敏捷开发一千零一夜读书笔记之敏捷初探
最近很忙,有个把月没读过书,没上过这里,趁着今天项目结题验收,上来转转. 我常常想,我这里应该是没有读者的吧,我完全把这里当成是一些我脑子里记不住,或者感觉"啊,原来是这样"的东西 ...
- 敏捷开发与Scrum区别(敏捷开发(Agile)教程)
敏捷是一种使用1至4周的短迭代的软件开发方法的迭代方法.由于敏捷方法,开发过程是一致的,以满足不断变化的业务需求.使用敏捷方法,软件分发(版本发布)紧凑,更少. Scrum是一个敏捷框架,可以帮助敏捷 ...
- 敏捷管理(1)- 什么是敏捷开发?为什么要采用敏捷?
为什么提倡敏捷? 20世纪50年代~90年代,能够供会议通信场景和信息交流场景的基础条件并未达到让人们信息互通如同今日那般(2021)可以透过屏幕可以看到对方的面部表情. 市场的信息交流并不频繁,用今 ...
- 【敏捷开发每日一贴】敏捷实践Showcase的七宗罪
敏捷实践Showcase的七宗罪 Showcase(其实就是SprintReview,演示会.评审会)就是开发团队把开发好的功能给客户的Product Owner等业务相关人员演示,以获取他们对所开发 ...
- 【敏捷开发每日一贴】敏捷教练和团队引导
谈谈敏捷教练和团队引导 敏捷教练在不同的组织中,在不同的场景下,可以是:教练.咨询顾问.引导式培训师.导师.过程引导师,并且可以根据不同的情况切换角色.熟练运用各种技术.技巧.工具.(这里说的敏捷教练 ...
最新文章
- C#编写的生成缩略图程序
- 深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小例子
- pytorch 图像与tensor转换
- 显示部分x_Linux 黑话解释:什么是显示服务器,用来做什么? | Linux 中国
- 【漏洞实战】某网站JS文件泄露导致拿到服务器权限
- python基础教程:名称空间与作用域
- NOIP 2016 迟来的满贯
- 6月共处理钓鱼网站8186个:非CN域名达8029个
- double 去掉小数点_JAVA编程有一个小数,如何去掉小数部分
- Xcode命令行生成Bitcode静态库
- SpringMVC搭建+实例
- Java 类型信息 —— 获取泛型类型的类对象(.class)
- C语言中可变参函数介绍与示例
- IGBT的绘制与逆变器的绘制-Visio制图总结【电控类】(三)
- Tomcat原理系列之一:整体架构,抓住主线
- 个人必备google搜索技巧
- Android实现欢迎界面
- namesilo如何使用BTC支付:
- 在单点登录中,如果 cookie 被禁用了怎么办
- 通过Dreamweaver建立一个简单的网页音乐盒模型效果/css/h5/