系列文章|OKR与敏捷(三):赋予团队自主权
OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余。这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为驱动的团队,改变团队的工作方式。
本文最后一部分分析了OKR的正确使用方法,以及如何赋予团队更多自主权。
回顾第一部分请点这里:系列文章|OKR与敏捷(一):瀑布式目标与敏捷的冲突
回顾第二部分请点这里:系列文章|OKR与敏捷(二):实现全栈敏捷
使用OKR的正确方式
与其他工具一样,OKR也可能会被滥用并沦为待办事项列表。但如果你想要专注于价值实现,那么你的目标就必须要体现这一点。因此你需要设定价值导向的关键结果:
价值就像讲笑话:你没法告诉对方它到底好不好。
价值导向的OKR不仅仅衡量结果。你还需要明白对你的客户和公司来说,什么样的结果才是有价值的。
下面的例子展示了两种关键结果的差别:
在敏捷中使用行为导向的关键结果会产生摩擦。既然敏捷团队已经有了明确的路线图,为什么他们还需要OKR呢?我遇到的所有尝试将OKR与敏捷相结合的团队,都在专注于开发活动本身。
使用价值导向的OKR能够带来变革,它可以成为连接敏捷和精益的桥梁,弥补产品和开发之间的空白。
改变侧重点
尽管敏捷使用的命名法专注于交付。我们也需要抛开一些概念,比如“完工、燃尽图、速度”。
与之相反的,我们应该专注于价值。我们不需要验收标准,需要利用OKR来定义成功的标准。
从意见转变为数据
敏捷并不是独立的数据驱动,而是HiPPO(HighestPaid Person’s Opinion)模式,即听从薪酬最高者的意见。
《谷歌的经营之道》一书生动形象地描述了这个模式:
这种敏捷模式下隐藏着一个巨大缺陷。即公司的利益相关者告诉团队应该去做什么工作,并对工作进行审查。
罗恩·杰弗里斯(Ron Jeffries)描述了一场与利益相关者的虚拟对话:
“每周你可以告诉我们你最看重什么,然后我们会告诉你哪些要求是我们可以实现的。一周之后,你就可以拿到我们的成果。如果你乐意,你就可以交付出去。”
按照泰勒管理模式,由利益相关者来决定团队应该做什么,以及交付的成果是否可以出售。这种做法默认利益相关者知道什么具有价值,且他们的意见可以作为实际价值的衡量指标。
但数据表明实际上正相反。例如,罗恩·卡哈维发表了一篇论文,对微软的一系列创意和结果进行了分析。结果,仅有 1/3的创意对期望指标在统计层面产生了积极效应。
如果敏捷开发摒弃了数据统计和成果衡量,转而选择HiPPO(听从薪酬最高者的意见)来决定应该开发什么功能,那么其误差将超过66%。
很多公司还在使用“客户意见至上”的管理模式。这种模式中,个别人的意见代表了终端客户。在过去这个做法尚且行得通,因为在数据采集上很困难。但到了数字化的现代社会,这已经成为了瀑布模型的又一个遗留问题。
用实验取代HiPPO模式
事实上,开发团队不需要个别人来代表客户的意见。因为团队可以自己采访客户以判断开发行为是否得当。OKR可以取代HiPPO,通过实验让团队学习和复盘。
OKR可以帮助团队采用假设驱动开发模式,巴里•欧莱礼将其描述为:
我们认为……
可得到……
当……我们有信心继续进行……
在这个模型中,复盘不再是为了展示可交付成果。团队在复盘中通过讨论主题和主要假设来不断完善交付成果。
赋予团队自主权
命令与控制依然存在。
命令与控制心理依然贯穿敏捷交付的全过程。利益相关者有权决定开发什么功能。因此,团队的工作模式依然是“因为这是山姆说要做的”,直到“山姆觉得不错”之后才算完工。
公司发展需要团队全身心的奉献,所以他们需要理解公司的业务问题并能够就构建内容发表意见。
马蒂·卡根曾写道:“如果你只让你的工程师写代码,那你只得到他们一半的价值。”
为了赋予团队自主权,你要给予他们自主决定如何实现预期成果的自由。因此团队的目标也需要改变:
玛丽·帕彭迪克(Mary Poppendieck)曾写道:
“或许敏捷开发实践最大的缺陷是哪个来团队决定做什么的方式。在很长时间以来,人们认为团队本身并没有责任来回答应该做什么这个问题。”
团队不需要执行由利益相关者提出的瀑布式计划,他们可以利用双轨敏捷和设计冲刺等方法来发现有价值的产品。
END
原文作者|Felipe Castro
内容编译|Worktile文章来源:Worktile官方博客
文章转载请注明出处。
系列文章|OKR与敏捷(三):赋予团队自主权的更多相关文章
- 系列文章|OKR与敏捷(二):实现全栈敏捷
OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...
- 系列文章|OKR与敏捷(一):瀑布式目标与敏捷的冲突
OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...
- JVM系列文章(三):Class文件内容解析
作为一个程序猿,只知道怎么用是远远不够的.起码,你须要知道为什么能够这么用.即我们所谓底层的东西. 那究竟什么是底层呢?我认为这不能一概而论.以我如今的知识水平而言:对于Web开发人员,TCP/IP. ...
- 彻底搞懂 etcd 系列文章(三):etcd 集群运维部署
0 专辑概述 etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管.etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件 ...
- 微信JS图片上传与下载功能--微信JS系列文章(三)
概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...
- openstack系列文章(三)
学习openstack的系列文章-glance glance 基本概念 glance 架构 openstack CLI Troubleshooting 1. glance 基本概念 在 opensta ...
- Office 365 开发概览系列文章和教程
Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...
- 开篇:软件项目的整个流程 - IT软件人员学习系列文章
这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录.本文就对<IT软件人员学习系列文章>做个开篇吧. 对于IT软件的开发来说,无外乎B/S.C/S和Android.iO ...
- IT软件人员的技术学习内容(写给技术迷茫中的你) - 项目管理系列文章
前面笔者曾经写过一篇关于IT从业者的职业道路文章(见笔者文:IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章).然后有读者提建议说写写技术方面的路线,所以就有了本文.本文从初学者到思想 ...
随机推荐
- 深入css布局篇(2) — 定位与浮动
深入css布局(2) - 定位与浮动 在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点.今天我们来深入学习一下css布局相关的知识 ...
- 深入浅出java常量池
理论 jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令. 本地方法栈是jvm调用操作系统方法所使用的栈. 虚拟机栈是jvm执行java代码所使用 ...
- python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/python ...
- JDK10安装配置详解
JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包: 地址:http://www.oracle.com/technetwork/java/javase/dow ...
- Spark学习之Spark调优与调试(二)
下面来看看更复杂的情况,比如,当调度器进行流水线执行(pipelining),或把多个 RDD 合并到一个步骤中时.当RDD 不需要混洗数据就可以从父节点计算出来时,调度器就会自动进行流水线执行.上一 ...
- 流程控制之for循环
目录 语法(掌握) for+break for+continue for循环嵌套(掌握) for+else(掌握) for循环实现loading(了解) 语法(掌握) 为什么有了while循环,还需要 ...
- python接口自动化(十九)--Json 数据处理---实战(详解)
简介 上一篇说了关于json数据处理,是为了断言方便,这篇就带各位小伙伴实战一下.首先捋一下思路,然后根据思路一步一步的去实现和实战,不要一开始就盲目的动手和无头苍蝇一样到处乱撞,撞得头破血流后而放弃 ...
- MySQL - 扩展性 1 概述:人多未必力量大
我们应该接触过或者听说过数据库的性能瓶颈问题.对于一个单机应用而言,提升数据库性能的最快路径就是氪金 - 买更高性能的数据库服务器,只要钱到位,性能不是问题. 但是当系统性能增加到一定地步时,你会发现 ...
- Bumblebee之负载、限流和故障处理实践
Bumblebee作为标准HTTP 1.1应用协议的网关,它能作为任何基于HTTP 1.1构建Webapi服务的前置网关.以下通过示例讲述如何用Bumblebee来制作一个asp.net core w ...
- Springboot文件上传代码笔记
1.在src下创建filter包,包内Class名UploadFilter package com.gd.filter; import org.apache.catalina.servlet4prev ...