材价看板(1)- 如何建立你的第一个kanban,看看这些暴露的问题你们有没有?
今年负责一个老产品新团队,和几年前的指标组一样,现在的团队没有采用什么研发方法,于是我开始了团队的看板之旅。
12月22日给材价整个部门的产品研发相关人员做了一次kanban工作坊培训,
以及敏捷导入前的动员
第二天晚上,23日,我基于目前团队现状设计了一张看板卡片,样子如下图所示:
不熟悉的人看了这卡片估计也不知道如何用,所以我现在简单说一下这个卡片的设计。
看板卡片的设计
整个卡片基于敏捷中的故事卡片设计,简短的名称让团队马上知道要做什么,使用故事的写法“作为...,我想...,是为了...”来描述用户需求,在如何演示中写的是产品方案,完成定义是测试,其余的是重要性、估时等。
现在再次看看看板卡片
- 上部分:
- 圆圈:代表目标,简短文字表达用户需求
- 人:谁提出这个问题/需求的人,当需求完成时产品需求人员必须找这个人进行验收。尽量是外部用户,能保证需求来自于真实用户,而不是自己YY的
- 日历:卡片提出时间
- 中间左边:
- 左边上部分为故事描述方式,这里需要严格按照这个格式书写,虽然我知道没有哪个团队一开始能做好,例如把方案也写入了用户需求。
- 下方为演示和验收内容,这里的演示部分由需求人员填写,验收由测试人员填写
- 中间右边:
- 依据团队角色各自标记估计时间和实际完成时间
- 每个圆圈代表1个小时,如果估时为8小时,那就在第一排第8个圈上面给圆圈填充实心。实际完成时,使用划横线方式来看实际时间
- 如果出现任务过长,或者参与人员为多人并行,可以在对应角色右边贴上粉色小纸贴
- 下方:
- X:有些需求有最后期限要求,那就在这里填写,每日站会看板的时候需要关注这个时间来定当天开发策略
- +:把故事卡片从backlog挪入开发阶段的时间
- V:需求上线时间
- @:生产周期,上线时间和卡片进入研发时间的间隔,通过这个时间能看到我们的平滑交付能力。
- 星星:问题提出人验收后对此故事完成的满意度打分,保证用户不只是在调研阶段参与进来
看板设计
看板设计是基于研发价值链,我们的看板并没有什么特殊的地方,从左往右依次是:
- idea:任何提出的想法都可以贴在这里,我和团队说了,包括学习都可以,只要学习的确对我们产品有价值。如果整个部门都实施看板,我其实希望这里还有来自外部团队人员贴的卡片。此处不需要用前面设计的看板卡片,用黄纸贴就行,写清楚大意,留下姓名即可
- backlog池:产品需求人员从idea、用户、自身分析等各种途径收集过来的用户需求。从上往下,依据优先级排放
- backlog doing/done:使用前面介绍的看板卡片把产品backlog的用户需求进行细化。在需求人员从backlog池挪到这列的doing时需要和团队进行简单的交流,保证团队所有人员都认可需求的价值。在挪到done之后,剩余阶段人员对故事完成进行估时
- 设计 doing/done:UI、UE、开发的简单设计等工作
- 开发 doing/done:开发工作
- 测试 doing/done:测试工作
- 发布:灰度或正式上线
暴露的问题
看板和卡片设计完成就是开始填写。在填写之前,我给大家对上述内容进行了讲解,并重申了广材网今年工作重点,以及看板方法执行的决心。
为了让大家知道如何填写卡片,我特意举了一个例子。这是我前天自己在卡片上写的(卡片版本不是最新的,大家就看内容)
然后让大家来做
这时候大家的几个明显的问题出现了。
- 需求能力需要提升。
设计卡片时,我把“作为___,在____我想____是为了____"描述的空格留的都比较小,这个目的是让产品需求人员能够简化语言,明确用户需求是什么。负责写故事的人会说卡片设计太小了,根本写不下。我把空格设计的比较小是有原因的,只要真的把需求想好,一般都是能够写下的,如果不能写下,那么可以看看是否文字不够精简,或者是不是把需求方案也写入用户需求了。- 写看板卡片式需求文档的工作,但需求人员其实是需要具备较强的需求能力的,这包括需求获取、需求分析和需求设计工作,最后才是需求文档。例如上面的例子来说一下需求分析吧,找到最近的城市其实目前用户有两类需求,一类是就按照距离来定,还有一类是在优先省内再按距离。这两类需求如果经过分析,就会成为一个抽象的需求,查找周边城市。而具体的需求是具体的规则,这样设计的需求就容易被人理解,也容易扩展和实现。
- 当前需求面向的客户是谁?谁都知道是用户,所以如果在卡片上写”作为用户“就等于没写,至少你要把你的具体用户角色写上。然后不断的细化拆分成更具体的用户角色
- 在需求培训中,我会给大家一个简单的需求公式:需求=问题+场景+方案。而”在___"就是场景,看看例子中大家填写的是“在搜索材料时”,使用广材网的都是找材料,所以这个场景写了也和没写一样,这个时候必须让需求提出人去获取到底什么场景下需要这个需求,我想应该是“在没有找到本地材料时”才会有这个需求,那作为需求人员就应该明确写下来
- “是为了___"是用户要这个需求的目的,同样是前面的问题,如果写了就不能太笼统,一定要细化,否则写的都是产品的大帽子,那写了和没写一样。
- 认真填写故事部分,不仅可以帮助需求人员梳理需求,还可以作为与研发团队交流的重要交付物,因为需求的工作生了还要养,你不仅是提出需求,还要去交付和运营需求,这就要求你必须有理由去说服开发心甘情愿的去做这个功能。
- 缺少与用户的互动
- 需求提出人上写的都是CPC,这是产品人员的名称,并不是用户,也就是说这个需求不能追溯到哪个用户提出的
- 我严肃要求,以后这一栏不能填写自己,即使是自己分析出来的,这里要填写的也要是能给我们做验证的客户
- 然后正如前面”搜索“卡片上的,把CPC该为了分站。我一样提出,这里的客户尽量是外部客户,毕竟我们后台能找到很多VIP用户,要找到用户其实还不是那么难
- 除了填写需求提出人之外,我还要求产品人员在填写这一栏时,要告之用户,等产品开发完成后参与验证,并打上满意度
- 开发和测试能力需要提升
- 开发对有些任务无法预估时间,说明在技术上我们还有很多无法有把握如何完成,这需要团队的搜索技术学习
- 测试在看板移入研发阶段后无法及时补充看板卡片的如何验收内容,说明测试需要了解敏捷的工作方式,尽早参与到需求阶段,以及如何快速的理解需求编写主测试用例
- 估时严重超时,不可能敏捷。
- 我设计的各阶段最多时间为8个圈,也就是2天,之所以这么设计是因为如果每个任务时间工日超过2天,那基本上这个估时很难快速完成,就无法流动任务,那也就谈不上敏捷了
- 对搜索排序这个需求,问后发现这个需求说做了一个半月。有时确实存在大需求,那这个时候怎么办,一定要学会如何拆解需求,把大故事拆成小故事,这样才能保证有价值的需求能够快速交付
- 开发、测试估时也是一样,任务估时比我预期的也长
- 缺少基于产品的互动交流
- 团队以往的工作方式是基于任务,无法保证工作的投入
- 由于团队之前产品和开发的沟通交流不顺畅导致产品的完成不确定,氛围不好
- 我再次重申敏捷的学习更多在于团队的面对面的沟通,不仅仅是自身技能的学习,还有基于产品的客户学习
- 团队整体缺少承诺意识,跨部门缺少协作
- 有些任务工期明显很长,太长的交付能力会让用户觉得你的承诺不靠谱
- 敏捷要求我们对需求设定优先级,而不是统一对待所有需求,在人力有限情况下,我们更需要做有价值的需求。需求优先级的判定也是需要一些节能的,昨天在给全国分站培训上,有同事反馈一个下载报价单是乱码的问题,我问这个问题哪天反馈的。一问吓我一跳,已经提出一年了。会后我问了负责产品的同事,说是另一个部门的问题,但一直不解决。这个团队协作问题说到底还是大家对需求优先级的统一判断不一致导致。
- 敏捷推崇延迟决策,推迟承诺,当我们决定把backlog池拉入需求阶段时就说明我们开始承诺去做了,这就要求我们开始把精力投入进去专注的完成它
看板是一种很好的敏捷方法,但推行敏捷需要依据团队能力来设计,目前来看,广材网暴露的问题还有很多,看板后续还会不断完善,推行看板中的另一些要素,也希望对看板感兴趣的团队一起来践行,因为我相信全部门来践行看板所带来的价值会更大。
材价看板(1)- 如何建立你的第一个kanban,看看这些暴露的问题你们有没有?的更多相关文章
- 材价看板(2)- 运行两周的kanban,改进的起点
改进从何谈起?必须找到起点,那起点从哪来? 看板不需要像Scrum那样改变以往工作角色,简单通过任务上墙,配合敏捷的设计就能通过显示化日常工作来让问题自己蹦出来.在任何一个新采用看板的研发团队,执行一 ...
- 在node.js中建立你的第一个HTTp服务器
这一章节我们将从初学者的角度介绍如何建立一个简单的node.js HTTP 服务器 创建myFirstHTTPServer.js //Lets require/import the HTTP modu ...
- 建立你的第一个 Git 仓库
虽然 Git 确实是被许多重要软件选作版本控制工具,但是并不是仅能用于这些重要软件;它也能管理你购物清单(如果它们对你来说很重要的话,当然可以了!).你的配置文件.周报或日记.项目进展日志.甚至源代码 ...
- Orchard官方文档翻译(六) 建立你的第一个Orchartd站点
让我们开始 该主题内容已在Orchard1.8Release版本下测试通过. 这里通过向导式的教程来告诉大家Orchard的功能如何使用.如果你是第一次使用Orchard,该文档就是为你而准备的! O ...
- Git 系列(三):建立你的第一个 Git 仓库
现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开 ...
- Android学习路径(22)应用Fragment建立动态UI——构建一个灵活UI
当你设计你的应用来支持多个屏幕尺寸.你能够基于可用的屏幕空间通过在不同的布局上重用fragment来优化用户体验. 比如,在一个手机上.使用单面板(一次仅仅显示一个fragment)的用户体验更加合适 ...
- [安卓基础] 003.建立你的第一个App
创建一个android工程项目 我们使用android提供的集成开发工具(Eclipse+ADT)来创建android工程项目.用这个集成开发工具创建项目,简单,方便,快捷,且自动帮助我们生成基础的文 ...
- TFS 2015 敏捷开发实践 – 看板的使用
看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...
- sql 索引 的建立
(From:http://54laobaixing.blog.163.com/blog/static/57843681200952411133121/) 假设你想找书中的某一个句子.你可以一页一页地逐 ...
随机推荐
- 你眼中的async/await是什么样的?
又到了周末的code review环节,这次code review发现了一个对async/await的理解问题.让我们直奔主题: var foodsSearch = new FoodSearchSer ...
- 在VS2015 RC打开CTP中创建的工程
VS2015终于出了RC了!小伙伴们快来安装试用吧,地址在这里,还有新的Windows 10开发工具哦,要不然是开发不了Universal Windows App的,安装前记得卸载CTP版本. 新的R ...
- 【读书笔记】WebApi 和 SPA(单页应用)--knockout的使用
Web API从MVC4开始出现,可以服务于Asp.Net下的任何web应用,本文将介绍Web api在单页应用中的使用.什么是单页应用?Single-Page Application最常用的定义:一 ...
- [.net 面向对象编程基础] (13) 面向对象三大特性——多态
[.net 面向对象编程基础] (13) 面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...
- DBCC DROPCLEANBUFFERS失效了?
原文出处:http://www.sqlskills.com/blogs/paul/when-dbcc-dropcleanbuffers-doesnt-work/ DBCC DROPCLEANBUFFE ...
- [ZigBee] 10、ZigBee之睡眠定时器
0.概述 睡眠定时器用于设置系统进入和退出低功耗睡眠模式之间的周期.睡眠定时器还用于当进入低功耗睡眠模式时,维持定时器2 的定时. 睡眠定时器的主要功能如下: ● 24 位的定时器正计数器,运行在32 ...
- ubuntu 13.04下MYSQL 5.5环境搭建
解决的问题: 安装mysql server和mysql client 5.5 新建远程账户 远程访问权限 MYSQL默认字符集修改为UTF8 检查防火墙 一.安装 BTW:可以使用查找命令查看安装包 ...
- CSS控制样式的三种方式优先级对比验证
入职已经一个月了,自此后,就好久没有写过博客了,在此先跟关注我的博友们说声抱歉.今天,在公司的一个培训作业的驱动以及伟哥那句“再不写博客就开除你”的监督下,我终于重拾旧爱,再次登录博客园,继续与大家分 ...
- SQL——索引
索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表.在数据库系统中建立索引主要有以下作用: l快速存取数据: l保证数据记录的唯一性: l实现表与表之间的参照完整性: l在使用O ...
- Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫。 马尔可夫链,的原理attilax总结
Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫. 马尔可夫链,的原理attilax总结 1. 马尔可夫过程1 1.1. 马尔科夫的应用 生成一篇"看起来像文章的 ...