这是敏捷生态系统系列的第三篇(之一,之二,之三,之四,之五)。

产品负责人PO与团队的互动一直是一个难题。典型的问题在于:敏捷开发倡导“迭代期内无变更”以换取“团队承诺”,而实际上产品负责人却会不断地来提变更,打乱开发计划了。我们应该怎么办呢?产品负责人说“敏捷就是拥抱变化,我现在来提变化了,你们却关门了。”团队说“如果你总是变,下次我们怎么给你承诺。”


敏捷开发中的计划跟踪生态II大致如此(黑体字即图片中的元素):

☺ 产品负责人(PO)与团队的正确互动是自组织团队正常运转的核心机制之一。

☺ 产品负责人的权利是统一管理和讲解需求以及需求优先级排序,而义务则是接受开发团队的估算,并承诺迭代期内不变更

☺ 团队的权利在于开发人员自己估算,而义务则是接受产品负责人所设定的需求内容、实现标准、优先级排序,并对自己的估算做出团队承诺,这种承诺会造成整个团队受到激励。

☺ 产品负责人不能干预团队的估算,却可以挑战估算。挑战估算可以通过对比两个团队处理同类任务、对比以往同类任务与本次任务等方式进行。团队的荣誉感会令团队产生团队间的同行压力(与其他团队及与自己的过去相比),并进而产生受激励的个体

☺ 作为自组织团队,产品负责人与团队互相没有领导关系,却通过分权与承诺管理,使得两者互相管理,从而产生更高的工作效率

需求优先级排序-迭代期内无变更-团队承诺是这个生态的主线之一。

让我们重新看一下前面变与不变的例子。

简单粗暴的方法包括“一个强制性的变更或不变更制度”。即在高层领导的支持下(如果他们不支持,大家就放弃敏捷开发,你们说怎么办就怎么办,但别再提敏捷开发了!),团队坚持每个迭代都不变更。这个听起来很简单,但实际操作是有难度的。毕竟变更经常来自客户,团队怕产品负责人,所以搬出高层领导;产品负责人怕高层领导,会搬出客户。

另一种细腻一点的方法是制定一个“何为需求变更何为需求细化”的指南。毕竟有时候提前想的是一件事情,但具体做的时候才发现应该做成另外一个样子。难道大家真的应该二话不说先把错误的东西做出来,到下一个迭代再变更?这不是纯粹和自己较劲么。所以兴许我们不会把任务扔掉,但是却可以把任务的描述改动一下,作为“细化”来接受。这种指南有其现实意义,但万勿当作法律条文来办,因为很快就会发现有处于模糊状态的东西会引发争议。

其实终极解决方案,是顺着图中的线条向下看:团队承诺-迭代期内无变更-需求优先级排序。最后一个才是重点。

有几种原因会导致迭代期内变更,一种是发现了紧急的需求,一种是发现了更重要的需求,另外一种是发现需求和以前想的不一样。

第一种在MoSCoW中提到过,可以通过优先级分级的方法来容纳之;另外事先商定只有比如70%的时间可用,也可提供额外时间来处理,这里不多说了。

另外两种,则都是与优先级排序工作不到位有关的变更

1. “来了更重要的需求”其实等同于“我们之前在做不重要的需求”。

尽管人们难以准确预测哪些需求真的最重要,但当我们从众多需求中挑选了极其有限的自然也是极其重要的需求放在迭代中,却能在短短的一个月内跳出一个更重要的需求(这个需求多半不在已知的“众多需求”中),就应该意识到之前的需求收集和排序工作肯定出了问题。原因或许是我们挑选了不称职的产品负责人,或产品负责人采用了错误的需求分析方法,或产品负责人工作在极端苛刻的环境中(比如客户拒绝透露需求)等等。这些问题看似可怕,但一旦摆上台面,解决它们比不知道原因地解决“迭代期内到底变更还是不变更”要容易得多。因为事关细节和具体环境,以后会有博文解决(部分已经计划在《火星人敏捷开发手册》的章节中)。

2. “需求和以前想的不一样”听起来是一种无法避免的问题,但其实我们有很多工作可做。

尽管人们难以准确预测所有需求的实际内容,但却可以就部分内容做深入了解。具体实践包括:

  • 在纵观大局的同时,产品负责人应时刻注意最重要的需求是否弄清楚了,应多就这些问题与客户探讨,防止被迫讲不清楚的需求发放给团队的情况。
  • 应建立故事群的概念(在之一中有提到),即当零散的需求极难与客户沟通和获得反馈的时候,应就一组故事与客户反馈。这样不容易遗漏故事,也不容易对故事的排序疑惑,因为故事之间有可比性和依赖性。客户可能很难决定“一周节目单”重要还是“地区访问码”重要,但是却很容易判断“一周节目单”比“当月节目单”重要。

在具体工作时,团队不应该彻底放弃对优先级排序工作的思考,而是应该配合产品负责人做好这个工作,尤其是团队中高层次的对业务有所了解的人。

与之相对应的,是产品负责人也不应该彻底放弃对计划工作的思考,这就是下一篇将描述的开发团队自己估算-PO挑战估算-同行压力的生态线。

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

转载于:https://www.cnblogs.com/JPAORM/archive/2011/08/13/2510464.html

敏捷开发生态系统系列之三:计划跟踪II(需求优先级排序-迭代期内无变更-团队承诺)...相关推荐

  1. 敏捷开发生态系统系列之一:序言及需求管理生态(客户价值导向-可工作软件-响应变化)...

    这是敏捷生态系统系列的第一篇(之一,之二,之三,之四,之五). 所谓生态系统,就是指互相依赖方能生存的一系列生物.生态系统常常不是单向依赖的,而是互相依赖互相促进. 敏捷开发中的实践也是如此.典型地, ...

  2. “迭代期内无变更”与敏捷开发产品版本规划

    作者:陈勇 出处:blog.csdn.net/cheny_com 迭代期间无变更? 支持派说:对,如果经常变,我们怎么开发啊. 反对派说:不对,敏捷开发不能上来就确认了需求,要的就是在开发中逐步了解需 ...

  3. 敏捷开发生态系统系列之四:计划跟踪II(自组织团队-开发团队自己估算-PO挑战估算-同行压力)...

    这是敏捷生态系统系列的第四篇(之一,之二,之三,之四,之五).一半内容属于需求管理生态,一半内容属于计划跟踪生态. 在实际开发环境中,产品负责人常常和开发组存在潜在的利益对立.前者往往希望在更短的时间 ...

  4. 敏捷开发生态系统系列之二:敏捷生态系统-计划跟踪 I(跨职能团队-共同估算-每日立会-同行压力)...

    这是敏捷生态系统系列的第二篇(之一,之二,之三,之四,之五). 如果说需求管理中尚有一些团队无法控制的因素导致实施困难,计划与跟踪过程总归就没有问题了吧?其实不然,笔者见过领导很放权的全团(很多是因为 ...

  5. 敏捷开发生态系统系列之五:关于敏捷生态系统的一次聊天记录(敏捷估算,同行压力,估算扑克)...

    这是敏捷生态系统系列的第五篇(之一,之二,之三,之四,之五). 本文是2009年刚刚提出敏捷生态系统的时候参与一个MSN讨论组时的对话,当时的想法与现在相比尚缺少系统性,但由于有问有答,也包含了本系列 ...

  6. 敏捷外包工程系列之三:固定合同(敏捷外包工程,敏捷开发,产品负责人,客户价值)...

    本文是敏捷外包工程系列的第三篇.(之一,之二,之三,之四) 下面的很多外包场景以国内的外包为例,因为往往这些项目更加严苛. 外包合同常常是固定价格固定工期固定需求(一般称为定额合同),这个时候&quo ...

  7. 敏捷外包工程系列之三:固定合同(敏捷外包工程,敏捷开发,产品负责人,客户价值)

    本文是敏捷外包工程系列的第三篇.(之一,之二,之三,之四) 下面的很多外包场景以国内的外包为例,因为往往这些项目更加严苛. 外包合同常常是固定价格固定工期固定需求(一般称为定额合同),这个时候&quo ...

  8. 敏捷开发绩效管理之三:个体动力之源——同行压力(松结对编程,师徒制度,跨职能团队,绩效考核)...

    这是敏捷开发绩效管理的第三篇.(之一,之二,之三,之四,之五,之六,之七) 如果有10个程序员,笔者相信至少有9个是勤奋的.但是如果有一个10人的程序员团队,其中1个人不是勤奋的,而且仍然拿到与其他人 ...

  9. 鸿蒙开发实战系列之三:网络请求(原生+ Retrofit)

    鸿蒙开发实战系列之一:鸿蒙开发实战系列之一:圆角 鸿蒙开发实战系列之二:鸿蒙开发实战系列之二:事件总线EventBus/RxBus 前言 过了一个漫长的中秋+国庆假期,大家伙的鸿蒙内功修炼的怎么样了? ...

最新文章

  1. linux将字符串转小写_Python教程第10讲:字符串的使用
  2. blp模型 上读下写_CreditX在线借贷欺诈检测框架BLP
  3. ubuntu更改默认python版本_更改Ubuntu默认python版本的方法
  4. redis使用watch完成秒杀抢购功能
  5. Linux 下如何查询 tomcat 的安装目录
  6. MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
  7. decorator php,php设计模式 Decorator(装饰模式)
  8. 14013.petalinux操作GPIO
  9. 微软11月补丁星期二值得关注的6个0day及其它
  10. TODO算子-双Value类型
  11. 设计模式、重构、编程规范等的经典书籍书籍推荐
  12. java bsh介绍_BeanShell简介
  13. ubuntu截屏软件
  14. 计算机睡眠和休眠哪个好,休眠和睡眠哪个好?电脑休眠和睡眠有什么区别?
  15. VideoCapture,mfc读取视频并使用滚动条
  16. 哪些企业可以做知识产权贯标,你不得不了解的事!
  17. 基于风险平价的资产配置策略
  18. 技嘉1080显卡体质测试软件,技嘉 GTX1080 Xtreme Gaming Premium Pack评测-太平洋电脑网...
  19. MySQL 数据库如何存储时间
  20. 负数原码与补码之间相互转换

热门文章

  1. 使用phpqrcode来生成二维码/thinkphp
  2. 微服务化架构演进与人员组织
  3. 获取map中的一个value值以及遍历map获得map里所有key、value的值
  4. intellij idea rearrange code
  5. 手机网页宽度自动适应屏幕宽度的方…
  6. 【Java从0到架构师】Spring - 纯注解开发
  7. 【C++】类型转换(const_cast、dynamic_cast、static_cast、reinterpret_cast)
  8. springboot国际化04
  9. 以太坊到底是什么 | 工作原理
  10. 从数据平台到报表开发,我靠这个零代码报表工具,转行后月薪3W