摘要:有的团队刚接触Scrum,一个问题令他们很困扰:迭代初期开发人员的工作较多,测试人员闲着;迭代末期开发人员闲着,测试人员的工作比较多,怎么解决资源等待的问题呢?

本文分享自华为云社区《当心,你搞的Scrum可能是小瀑布》,作者:敏捷小智。

为了更好的拥抱变化,很多团队选择使用敏捷去管理组织或者团队的研发过程,Scrum作为最常用的敏捷框架之一,备受青睐。使用Scrum的团队叫做Scrum Team,Scrum Team(以下简称团队)按迭代进行交付,在一个迭代中,团队要完成需求的规划设计认领、编码、测试以及部署上线工作。

有的团队刚接触Scrum,一个问题令他们很困扰:迭代初期开发人员的工作较多,测试人员闲着;迭代末期开发人员闲着,测试人员的工作比较多,怎么解决资源等待的问题呢?

问题分析

造成以上问题的原因大致有以下几种:

团队搞的Scrum其实是小瀑布

团队搞的不是真正的Scrum,而是披着Scrum“皮”的小瀑布——团队有SM、PO,需求使用用户故事记录,迭代中的活动比如每日站会、评审会议等一个不落的开展,但是,团队在迭代中依然按照瀑布模型进行运作——认领完需求进行开发,开发全部完成,交付测试,测试完成,项目上线,整个流程走下来,就造成资源等待。

https://bbs-img.huaweicloud.com/blogs/img/image1(418).png

需求拆分不够细

需求粒度偏大且没有做进一步拆分,这种情况导致开发人员完成需求的编码工作,就已经到了迭代末期,迭代前期测试人员设计完测试用例,就只能等待了。

开发和测试之间缺乏沟通

开发人员完成了某个新需求编码,没有告诉测试人员;测试人员也没有主动且频繁的向开发人员询问是否有已完成的新需求需要测试,直到迭代末期,开发人员才将所有开发完成的需求一并交给测试人员,造成了资源等待。

解决方法

让团队了解真正的Scrum工作方式

小瀑布相比于传统瀑布,应对变化的能力可能有所提升,但小瀑布的运作方式和Scrum所倡导的做法还有差距。Scrum使用“Increment”(增量)来表示每一个即将交付的需求,作为Scrum的三大工件之一,Increment有两个重要特性:满足DoD、随时都可以发布,Increment这两大特性为敏捷应对频繁变化提供了保障。反观小瀑布——迭代前期开发、迭代后期测试,如果迭代过程中,突然要发布新需求,那显然是有风险的——因为代码没有经过测试。Scrum中,迭代运作过程更像下图,每个需求完成编码,都直接交给测试人员,测试通过即可准备上线(就绪即可,不是必须上线),在这种情况下,资源等待的问题就会被解决。

https://bbs-img.huaweicloud.com/blogs/img/image2(367).png

究其原因,还是团队对Scrum的理解不够深入,很多团队接到组织安排要进行敏捷转型,就将Scrum角色和流程搬进来,但团队不了解Scrum是什么,为什么,这样转型往往换汤不换药,也许有效果,但一定没有真正的Scrum运作效果好。

想改变这种情况,Scrum Master和Product Owner应该对敏捷有深刻的理解,这样才能影响团队甚至向上影响到组织高层,让高层也从根本上了解Scrum过程以及Scrum带来的好处,而不是关注有几个团队用了Scrum。

另外,聘请外部教练来帮忙做Scrum导入也是不错的选择,首先外部教练通常具备专业性,更了解Scrum的运作流程,Ta会帮助团队运作Scrum,并对各个角色进行Scrum相关知识的辅导,避免团队因为对Scrum理解不到位,而走弯路。而且,中国有句俗话“外来的和尚好念经”,不管对于团队,还是对于高层,外部教练相比于内部教练可能更容易说上话,提出的建议也更容易被听取。

对需求进行拆分

当需求太大时,团队可以和Product Owner一起,将需求拆分、细化——一方面可以更好的提炼产品价值,另一方面可以更好的划分工作量。

需求拆分有很多方法,详情可以参考DevCloud·敏捷智库】如何拆分用户故事》

加强团队成员之间的沟通

团队成员之间缺乏沟通,表面上看可能是由于成员之间业务、分工不同,实际也是由于对敏捷理解的不到位,敏捷宣言提到“个体和互动胜过流程和工具”,团队成员之间应该频繁沟通,就像DevOps打破开发、运维的壁垒一样,在Scrum Team中开发、测试之间也不应该有隔阂。

Scrum Master应该积极组织每日站会,通过站会让团队成员了解项目进度——哪些需求正在开发、哪些已经开发完成等待测试。

如果站会效果不理想,团队可以尝试使用电子或物理看板来记录需求及需求的价值流动,这样哪些需求待测试一目了然。

https://bbs-img.huaweicloud.com/blogs/img/image3(363).png

培养多面手

除了以上三种方法,还有一种方法可以解决资源等待问题,那就是培养多面手,比如开发人员既可以做开发,也可以对自己实现的功能进行测试。

实际上,Scrum确实提倡这么做,Scrum Guide中提到:“Scrum Team 是跨职能的(cross-functional),这意味着团队成员具有在每个Sprint中创造价值而所需的全部技能”,团队能力允许的情况下,培养多面手不单能够解决资源等待问题,还可以让团队更好的践行Scrum。

总结

本来想搞Scrum,结果却搞成了小瀑布,而不自知,这是造成资源等待问题的最主要原因,只有加强对敏捷理念的理解,才能让团队真正从Scrum中受益,想知道你的团队到底有多Scrum么?快来华为云DevSecOps专家服务——Scrum成熟度评估测一测吧~

点击关注,第一时间了解华为云新鲜技术~

当心,你搞的Scrum可能是小瀑布的更多相关文章

  1. Delphi控件大全

    首先来大体上为控件分一下类,以方便我们后面的讨论.   但因为控件的种类太多,所以就粗略的分为如下几个类别∶   ---界面风格类   ---Shell外观类   ---Editor类   ---Gr ...

  2. 敏捷测试模式之Scrum及其实践

    一.    敏捷开发模式简介 敏捷是近年来软件研发领域很火的一个词,采用敏捷开发模式的研发团队是越来越多了,尤其是敏捷模式中的Scrum更是佼佼者大行其道,这表明敏捷模式确有其好处,能给企业带来效率的 ...

  3. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  4. Daily Scrum Meeting ——ThirdDay

    一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展 1.完成了github上的文档整理 Transcend/ActivityHelper 2.主界面侧滑框的 ...

  5. Daily Scrum Meeting ——SixthDay

    一.Daily Scrum Meeting照片 佳恺请假了...可能去约会了罢 二.Burndown Chart 欣慰,但是还是感到"鸭梨山大"! 三.项目进展 1.活动列表查询功 ...

  6. 【Alpha】Daily Scrum Meeting第二次

    一.Daily Scrum Meeting照片 二.Burndown Chart 由于此次项目延期7天,因此Burndown Chart较第一次会变宽 三.项目进展 登陆模块已经能和服务器交流 可以使 ...

  7. agile/scrum 如果一切都从解放前开始

    一个非常珍贵的机会,聚集了公司很多牛人,进行了一场发人深省的讨论.有一个话题我想拿出来和他家分享一下我的看法. 越来越不舒服的站会 站会是每天都在固定的时间.地点,大概持续15分钟左右(我们的小组都比 ...

  8. 一个人的Scrum之准备工作

    在2012年里,我想自己一人去实践一下Scrum,所以才有了这么一个开篇. 最近看了<轻松的Scrum之旅>这本书,感觉对我非常有益.书中像讲述故事一样描述了在执行Scrum过程中的点点滴 ...

  9. scrum站立会议简介

    1简介            站立会议:在敏捷流程的冲刺阶段中,每一天都会举行项目状况会议,强迫每个人向同伴报告进度,迫使大家把问题摆在明面上,这个会议被称为“scrum”或“每日站立会议”. 2.要 ...

随机推荐

  1. [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)

    [系统安全] 十六.PE文件逆向基础知识(PE解析.PE编辑工具和PE修改) 文章来源:https://masterxsec.github.io/2017/05/02/PE%E6%96%87%E4%B ...

  2. Linq连接和Sql Server连接

    最近在研究连接的时候,被困惑了

  3. Java基本规范

    1.Java是区分大小写的语言,关键字的大小不能写错,例如把class写成Class或者CLASS,都会导致出错. 2.在一个类的内部不能定义其他的类,即类和类之间是平行而非嵌套的关系. 3.一个程序 ...

  4. OS模块的补充使用---执行终端命令

    Python基础至os模块 由于近期的项目需要用到对应的终端命令去调用其他程序,因此温习一下os.system()函数: 参考文献:https://zhuanlan.zhihu.com/p/51716 ...

  5. Chapter04 运算符(Operator)

    Chapter04 运算符 目录 Chapter04 运算符 4.1 算数运算符 4.2 关系运算符 4.3 逻辑运算符 4.4 赋值运算符 4.5 三元运算符 4.6 运算符的优先级 4.7 标识符 ...

  6. Linux-系统启动与MBR扇区修复

    目录 1.系统启动过程 1.1 MBR扇区 1.2 MBR扇区的备份与还原 1.3 修复MBR 1.3.1 dd备份MBR信息 1.3.2 光驱启动修复 1.4 grub引导代码修复 1.系统启动过程 ...

  7. git常用命令及问题

    Git基本操作 git init 创建新的git仓库 git clone [url] 使用 git clone 拷贝一个 Git 仓库到本地 git status 查看工作区 git stash li ...

  8. VUE3 之 状态动画 - 这个系列的教程通俗易懂,适合新手

    1. 概述 老话说的好:不用羡慕别人,每个人都有属于自己的人生道路,重要的是在前进道路上遇见阻碍时,如何去积极的面对并解决. 言归正传,今天我们来聊聊 VUE 的状态动画. 2. 状态动画 2.1 数 ...

  9. 使用cgroup和tc限制带宽

    cgroup子系统net_cls 可以给 packet 打上 classid 的标签,用于过滤分类,这个classid就是用于标记skb所属的 qdisc class 的.有了这个标签,流量控制器(t ...

  10. 问鼎杯预赛web writeup

    1. php的一个精度问题,具体什么精度自己查. 2017.000000000001=2017 2016.999999999999=2017 直接拿谷歌浏览器访问那个链接就可以拿到flag 2. 访问 ...