你听过柏林新建机场的故事吗?机场原定2006年开工,2007年启用,但由于机场建设过程中到处出现施工和安全问题,补东墙漏西墙,导致工期一拖再拖,预算一涨再涨,以至于2019年了还没开张,预计开业时间已经被拖到了2020年10月。

无论是建机场还是开发软件,人们往往会低估未完成的工作量。即便没有低估,也会尽可能以能安抚老板客户的方式回复,例如“我已经完成95%了”毕竟,这种粉饰太平的回答总好过“这个复杂的任务,我大概只完成了一半”、“是的,我低估了完成这项任务所需的工作量”、“老实说,我也不知道还会不会有其他不可预见的问题出现”这些回复。

虽然这种“即将完工状态”听起来很好,但它会影响整个项目状态的透明度。这也是为什么在敏捷开发—如scrum过程中,我们只会关注彻底完成的功能。完成与否只能二选一。在scrum演示会中,我们会查看每个用户故事,根据所有的验收标准和团队制定的DoD(完成的定义)进行审查。只有在所有工作完成、所有的非功能性需求(NFR)和其他部分的DoD满足的情况下,用户故事才能被认定为完成并结束开发。

在敏捷软件开发中,功能的状态是非此即彼的,即要么完成,要么未完成——不存在任何中间状态。

以工作流节点、业务规则或数据变化等作为依据来拆解用户故事,并将拆解后的用户故事放到每个sprint中完成,但被定义的范围和质量必须要彻底完工。因此不要因为用户故事A已经快要完工,就让团队转而开始其他任务,与此同时在backlog中添加一个新的“完成用户故事A的收尾工作”的故事。

这就意味着我们需要知道如何处理未完成的功能。我参与过的很多团队都对此进行过很激烈的讨论。如果你只强调故事点,开发团队可能觉得遭遇了不公平待遇,因为他们已经完成了“95%的工作”(详见上文),但并没有得到应有的认可和肯定。尤其是在管理层对scrum和故事点的概念理解有偏差,仅仅通过scrum团队的开发速度来评价团队表现的情况下,针对这一问题的讨论则会愈演愈烈。

所以,到底应该怎么处理scrum中未完成的用户故事呢?

首先,我认为:不要太在意这个问题。因为团队没能完成用户故事的情况只是个例,不会经常发生。因此,无论采取什么样的解决方案,都不应该对团队的任何指标产生重大影响。但如果团队经常出现此类问题,那么你实际上应该解决的是为何团队经常不能完工这一问题,而不是试图通过接受团队产出的半成品来妥协。

总之,不要过分在意这种特殊的情况!

其次,我认为:未完成的用户故事不应该在演示会议上展示。它们应该被移到Product Backlog的顶部重新评估规划,而不是自动进入下个sprint的backlog。因此,没有故事点会为未完成的用户故事标记“完成”。在下一次规划会议前,PO(在与开发人员沟通后)决定是否需要花更多的时间在这个未完成的用户故事上。如果答案是“需要”,那么在下一次的规划会议上,这个用户故事就会被移到Sprint Backlog中,且保持原始估算值。即便开发人员自称功能已经完成了90%,我们也能根据所有的故事点预估当前sprint的开发速度。正如前面所说,未完成的用户故事应该是个例,因此从长远来看,团队的速率应该维持在平稳水平。

作者:Felix Braun

翻译/校对:Worktile

文章来源:Worktile敏捷博客

欢迎访问交流更多关于技术及协作的问题。

文章转载请注明出处。

转载于:https://www.cnblogs.com/worktile/p/11387744.html

如何处理scrum中未完成的用户故事?相关推荐

  1. 【敏捷5.2】用户故事的层次和用户故事地图

    用户故事的层次和用户故事地图 经过上一篇的学习,你对用户故事有了一个大概的了解了吗?用户故事这个东西,是需要多多练习的,并且最好是有经验的 Scrum Master 能够带着你一起学习并建立合适的用户 ...

  2. 用户故事驱动的敏捷开发(规划篇)

    作者: 徐磊(CSDN专访.CSDN博客),1999年,本科毕业于北京理工大学工业管理专业和计算机专业:2001年,硕士毕业于UNSW信息工程专业.从事过网管.技术支持.网络.软件开发等工作:2004 ...

  3. 划分用户故事(user-story)的原则

    在敏捷开发过程中是通过用户故事来将需求具体化成可以进行迭代开发的一个个现实的可见的开发任务.因此在敏捷软件的开发过程中,用户故事的划分对于迭代和开发起着举足轻重的作用. 用户故事从其名字来看是站在用户 ...

  4. 第03课:储备-用户故事精要(iPad 版)

    本节课程我们主要解决三个问题:为什么要有用户故事?用户故事是什么,它们具有哪些属性.内涵和特征?在产品开发的全流程中怎么使用用户故事? 理解用户故事 理解用户故事,从两个问题开始. 用户想要达到的目标 ...

  5. 15.用户故事与敏捷方法——Scrum与用户故事笔记

    00.本用户故事源自于基线编程,所以故事能够很自然地狱基线编程的其他时间形成一个体系.不过,用户故事作为一种管理需求的方法,也可以应用到其他类型的软件过程中. 01.一轮迭代过程是一种持续改进的过程. ...

  6. 敏捷开发中史诗故事与用户故事的颗粒度

    作者:陈勇 出处:blog.csdn.net/cheny_com 用户故事的颗粒度一直是一个谈论已久的话题,但参加了很多研讨会,搜索了很多网络资源后发现一直没有定论,只好在这里原创一下. 前言:为何需 ...

  7. 敏捷开发中,团队成员认领的是任务还是用户故事?

    一次敏捷workshop上,有同学问:"敏捷软件开发中,团队成员自己主动认领的,是用户故事还是被分解成的任务?"同学们一时讨论热烈. 稍具敏捷开发实践经验的同学都应该知道,答案是- ...

  8. 敏捷开发中如何写好用户故事?

    什么是用户故事? 用户故事(user story)是一个用来确认用户和用户需求的简短描述,作为什么用户,希望如何,这样做的目的或者价值何在.用户故事在软件研发中又被描述为需求.用户故事通常的格式为:作 ...

  9. paradigm画时序图 visual_Visual Paradigm使用技巧:从用户故事中生成序列图

    为了使客户和项目团队成员能够更简单的阅读项目计划,你可以选择从项目场景中生成一个UML序列图,将计划的序列图进行可视化.在本教程中,我们将尝试编写一个简单的用户故事,然后生成它的序列图. 编写用户故事 ...

最新文章

  1. java wed登录面 代码_java web 登录界面
  2. vc6可编译的 linux 源码,Linux 下源码编译FFMEG
  3. 设计海量key-value数据的存储查询模块
  4. JavaScript面向对象-静态方法-私有方法-公有方法-特权方法,学习
  5. PLSQL Developer工具远程连接Oracle数据库的方法
  6. 新代系统plc梯形图说明书_东莞自动化PLC编程需要多少钱
  7. 快递官网漏洞泄露 1400 万用户信息
  8. 关于Ibatis中的executeForObject方法使用时,需要考虑空的问题!
  9. 单片机智能密码锁c语言程序,基于单片机控制的密码锁设计(含电路图及源程序)...
  10. Java 有序的Map —— LinkedHashMap
  11. ICLR 2021 | 自解释神经网络—Shapley Explanation Networks
  12. Playful MySQL 2: Transactions and some of its potential problems
  13. 固定成本、可变成本、沉没成本、机会成本、边际成本
  14. 一个真实的Windows XP SP 3镜像包 571MB大小
  15. linux 云锁 端口,问一下,云锁安装后还可以修改端口吗?
  16. 1004.选择结构习题:奇偶数判断
  17. 多种JS刷新页面代码!
  18. 声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话
  19. unity之万代南梦宫高管:传统开发商如何做好手游
  20. Google Chrome即将开始警告—停止支持Flash Player

热门文章

  1. java初始化实例化_Java 类初始化和实例化以及多态理解
  2. 有没有通俗易懂的python课程-有没有简单易懂的入门级Python辅导书或网络课程?...
  3. 用python画月亮的代码-用Python画一个超级月亮
  4. python代码块-Python中的代码块和非代码块是什么
  5. python 办公自动化-python办公自动化:Excel操作入门
  6. python语言是谁发明的咋读-Guido发明的python语言是哪一年正式发布的?
  7. python代码大全表解释-Python中顺序表的实现简单代码分享
  8. c+和python的区别-python和c先学哪个
  9. python条形图间距-python matplotlib做对比条形图
  10. python3下载安装配置-Linux 安装python3.7.3