Outcome VS. Output:研发效能提升中,谁会更胜一筹?
2007 年,网景通信公司(Netscape)的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 ,他写道, 「这意味着在一个良好的市场中,拥有能够满足该市场的产品。」
Product/market fit means being in a good market with a product that can satisfy that market.
—— The Pmarca Guide to Startups
聚焦到产品研发环节,验证 PMF(即 Product/Market Fit)要求研发团队在找准市场定位的同时,根据市场和需求的变化及时调整战略,为用户创造价值,并实现经济效益的增长——这也是敏捷开发的基本核心。
理想情况下,敏捷团队的产品负责人(PO)、Scrum Master 和开发团队各司其职,在价值优先、增量构建和紧密协作中,持续交付可工作的软件,逐步验证市场价值和商业价值。
而现实情况往往是,需求源源不断地涌入,产品和开发团队迷失在所谓的「用户需求」和「用户反馈」当中,抓不住真正的「价值浮板」。最终,结果导向的「敏捷开发」沦陷为产出导向的「快速开发」,并落下「中华田园敏捷」的恶名。
01 结果导向 VS. 产出导向
敏捷开发以结果导向(Outcome Oriented) 为内核,强调价值交付,以优先级排序、产品待办列表等最佳实践保障敏捷团队专注于用户价值创 造。
而产出导向(Output Oriented) 的快速开发则专注于消除技术风险和快速上线功能。在紧迫的迭代周期内,研发团队追求高效率、高速度和高质量的功能实现,却可能忽视产品价值的市场验证。
研发过程过分强调速度和质量(现实中质量可能无法得到绝对保证),而忽略价值,等同于在无限的功能上线和堆叠中「隔靴搔痒」;若无法直击痛点,为用户提供真正的解决方案,无论开发速度有多快,产品都会被市场淘汰。
另一方面,如果过度关注用户价值而弃质量和效率于不顾,在风云难测的市场和外部环境中,产品也会因此口碑下滑、错失东风,而被市场抛下。
只有在迭代循环中,结合产品生命周期目标,平衡好价值交付和产出效率,兼顾产品价值、技术价值和用户价值的创造,才有可能小步快跑地验证 PMF。
02 研发三大价值
敏捷开发主张产品负责人要与研发团队一起商讨功能明细,为高产品价值的待办事项评定优先顺序和工作量,再结合团队容量制成产品待办列表和迭代待办列表。
那么,实践中的「三大价值」应该如何衡量?
💡 产品价值 - Business Value
产品价值,也称商业价值(Business Value),可以理解为是技术价值和用户价值的总和。提升产品价值的本质是以尽可能少的努力和代价,最大程度满足利益相关者和用户的经济期待。
💡 技术价值 - Technical Value
研发团队将产品想法和创意落地的过程中,为提升研发效能而做出的所有技术努力,共同组成产品的技术价值(Technical Value)。
例如,在迭代实践中,制定软件和开发工具的基本框架,选用合适的自动化工具,消除技术不确定性并解决重大技术问题;
以及,在轮复一轮的磨合与协作中,摸索出最恰当的研发协作模式,形成产品开发相关的技术知识,建立技术规范和要求,并达成共识等。
💡 用户价值 - Customer Value
用户价值,也称客户价值(Customer Value)是产品的各个功能为用户提供的价值;好的功能和模块总是能清晰直观、易于使用地为用户解决问题。
常见的用户价值评估模型包括 RFM 模型、CLV 模型、帕累托模型和顾客社交价值模型等。
- RFM 模型:通过用户最近一次的购买行为(Recency)、总体消费频率(Frequency)以及消费金额(Monetary)三项指标来描述该用户的价值状况。
- CLV 模型:CLV 即客户生命周期价值(Customer Lifetime Value),有时也称 LTV(Life Time Value);它考虑含客户获取和客户流失在内的完整客户生命周期。
- 帕累托模型:基于二八定律的客户价值评估模型,可以帮助团队判断出「谁是利润效益最高的用户」。
- 顾客社交价值模型:涉及顾客社交活跃度和影响力两个方面,对于产品传播和口碑营销有较好的评估及预测效果。
03 价值增长曲线
David Theil 根据阶段性目标的不同,将产品生命周期划分为知识构建期、产品成长期和稳定增长期,并绘制了技术价值和用户价值的增长曲线。
P.S.: 价值增长曲线图以趋势呈现为主,在具体数值上不存在必然的对应关系。
📍 信息构建期 - Knowledge Building
地基不牢,地动山摇。在产品开发最早期,研发团队以技术建设为主,着重消除技术风险,为用户价值提速做好准备。
研发团队通过构建系统架构和基础设施、选用工具和自动化、制定技术决策,以及使用 Spike(探针法)消除技术不确定性,快速提升技术价值,并建立起用户价值创造所需的技术规范和知识。
同时,团队会设计 MVP 并交付少量功能,不断探索真正的用户价值,在持续、频繁的价值交付中逐步验证 PMF。
📍 产品成长期 - Product Focus
寻找 PMF 的征途总是曲折,但一旦实现,便会迎来爆发式的业务增长和产品扩张。
基于前期牢固的「技术基建」和已被市场验证的产品方向,敏捷团队可以在正确的道路上全力冲刺,专注于产品功能和需求的开发与实现,高速创造用户价值;
产品的技术价值也会在定期回顾中缓慢提升。
📍 稳定增长期 - Stabilizing Product
随着产品功能日渐齐全,用户价值增长趋于平缓,此时产品开发步入成熟期。
敏捷团队也要原地休整,养精蓄锐。研发团队着手修补技术债、优化系统架构、升级基础设施,提升技术价值;产品负责人则根据最新的市场动态和变化,探索新的价值增长机会,等待再次「全力出兵」和爆破式增长。
在不断地迭代实践与复盘中,敏捷团队得以持续提升技术价值,创造用户价值,并打造出稳定的产品价值增长引擎。
LigaAI 总结
无论是产品管理,还是研发管理,最终都要为企业业务增长服务,而验证 PMF 是其中至关重要的战略转折点。
敏捷团队不仅要积极拥抱市场和外部的变化,及时调整或修正产品方向,还应当结合产品生命周期,客观地对产品价值、技术价值和用户价值展开管理,并打造以结果导向为核心的组织成长内核。
了解更多研发管理、效能提升、敏捷开发、前沿技术等消息,欢迎关注 LigaAI@CSDN。
欢迎点击 LigaAI -新一代智能研发协作平台,体验我们的产品,并与我们交流 😃
相关文章:
Outcome VS. Output:研发效能提升中,谁会更胜一筹?
2007 年,网景通信公司(Netscape)的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 ,他写道, 「这意味着在一个良好的市场中,拥有能够满足该市场的产品。」…...
ptp4l与phc2sys进行系统时钟同步
linuxptp用于时钟同步。安装采用apt install linuxptp主要包含2个程序,ptp4l 进行时钟同步,实时网卡时钟与远端的时钟同步,支持1588 和 802.1AS 两种协议phc2sys 将网卡上的时钟同步到操作系统,或者反之命令demo:某主机P通过eth2连…...
使用注解JSON序列化
JsonSerialize(using ToStringSerializer.class) 将返回数据转成String序列化 JsonFormat(pattern "yyyy-MM-dd hh:mm",timezone"GMT8") 将日期数据转换成特定格式 使用JsonSerialize自定义注解接口 定义接口 import java.lang.annotation.ElementTyp…...
kubernetes教程 --Pod生命周期
Pod生命周期 pod创建过程运行初始化容器(init container)过程运行主容器(main container)过程 容器启动后钩子(post start)、容器终止前钩子(pre stop)容器的存活性探测(…...
高校房产管理系统用到了哪些技术?
数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品;…...
【Python学习笔记】37.Python3 MySQL - mysql-connector 驱动(2)
前言 本章继续介绍MySQL - mysql-connector 驱动。 where 条件语句 如果我们要读取指定条件的数据,可以使用 where 语句: demo_mysql_test.py 读取 name 字段为 CSDN 的记录: import mysql.connectormydb mysql.connector.connect(host…...
【高级Java】高级Java实验
一、反射与动态代理1、(4分)请通过反射技术,为附件中的Person.class生成相应的.java代码,java代码中的方法的方法体为空,即方法内部代码不用生成。请注意生成的java代码的格式。2、(3分)请为第1…...
SYN480R 解码
目录1.空载情况下2.当有按键被按下3.数据帧分析4.同步码5.数据码6.对24位数据帧分析1.空载情况下 在空载情况下,syn480r 输出引脚,输出的是杂乱无序的波形 2.当有按键被按下 按下按键,会连续输出相同的脉冲波形,放大分析 3.数据…...
ASP .NET(基于.NET 6.0)源码解读
这几天一直在琢磨在我现有技术认知基础上,未来如何做技术提升。 日思夜想,我整理出了我自己的一套学习规划方案,并希望在实施过程中能够不断调整学习方案与方式,以接近自我提升的效率最大化。 从以下几个大的方面来得到提升&…...
阿里工作7年,一个30岁女软件测试工程师的心路历程
简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…...
学生党必备的 Keychron 无线机械键盘
学生党必备的 Keychron 无线机械键盘 由于专业需要,之间的键盘使用起来不太舒服,于是准备重新买一个适合工作学习的键盘,于是通过朋友介绍了解到了keychron k3pro,当时也看到网上一些资料说道这款键盘比较到位,今天就来带大家了解…...
FPGA MAX 10 10M50系列10M50DAF484C8G/10M50DAF484C7G/10M50DCF484C7G规格
介绍MAX 10器件是单芯片、非易失性低成本可编程逻辑器件(pld),用于集成最优的系统组件集。MAX 10设备的亮点包括:内部存储双配置闪存用户闪存即时支持集成模数转换器(adc)支持Nios II单芯片软核处理器MAX 10设备是系统管理、I/O扩展、通信控制平面、工业、汽车和消费…...
【codequ】Java学习路线整理(韩顺平)
文章目录Java学习路线一、Java基础1.建立编程思想Java概述变量运算符控制结构数据、排序和查找面向对象编程(基础)面向对象编程(中级)项目&学以致用2.提升编程能力3.分析需求,代码实现能力Java8新特性二、Java高级…...
服务器容器配置日志(Linux+x86_64+Ubuntu18.04+CUDA11.0+python3.7)
一、创建并进入容器 (平台使用教学详细,这部分略写) 登上服务器后,打开终端输入如下进入自己建的容器 ssh -p XXXXX root10.XXX.XXX.XXX //按自己的宿主机端口写二、安装Conda(miniconda3) (…...
2023年美赛赛题思路分析
2023年的赛题A-F题的整体难度不算太难,难度在于数据的收集上。整体难度上来看,难度上F题难度最小,建议直接上手。本次先给大家分享一些数据网站,在对各题做简单的思路分析。1、美国国家海洋和大气管理局Homepage | National Ocean…...
[C++]服务器与客户端建立连接与检测断开的demo
该程序在IP127.0.0.1以及端口5000环境下测试 有一段时间没有在Windows下用C进行网络编程了,这段日子都在做QT的网络编程和OpenCV的图像识别。 今天重新写个Windows下C的,基于TCP的双端连接建立与断开检测的demo,巩固下自己Windows下的网络编程…...
包教包会vue3+ts状态管理工具pinia
一、Pinia介绍 定义:pinia是和vuex一样的状态管理工具 语法:和 Vue3 一样,它实现状态管理有两种语法:选项式API 和 组合式API 支持:vue2、typeScript、devtools 二、使用步骤 1.安装 pnpm add pinia yarn add pin…...
Generated columns cannot be used in COPY
错误如下DBD::Pg::db do failed: ERROR: column "transtype" is a generated columnsec., avg: 2520 recs/sec), REPORTSINTERMEDIATETABLE in progress.DETAIL: Generated columns cannot be used in COPY. at /usr/local/share/perl5/Ora2Pg.pm line 15125.FATAL: …...
Amazon S3简介
前言: 这段时间来到了某大数据平台,做平台技术底座封装和一些架构等等,有结构化数据也有非结构数据,涉及到很多技术,自己也私下花时间去研究了很多,有很多纯技术类的还是需要梳理并记录,巩固以及…...
MySQL索引类型——有五种
文章目录前言一、MySQL中的索引类型有以下几种1.1 普通索引1.1.1 直接创建索引1.1.2 修改结构的方式添加索引1.1.3 创建表的时候同时创建索引1.1.4 删除索引1.2 唯一索引1.2.1 创建唯一索引1.2.2 修改表结构1.2.3 创建表的时候直接指定1.3 主键索引1.4 组合索引1.5 全文索引1.5…...
CloudCompare 二次开发(5)——非插件中的PCL环境配置(均匀采样为例)
目录 一、概述二、CMakeLists.txt三、源码编译四、代码示例五、结果展示一、概述 在进行CloudCompare二次开发的时候,可以直接在CloudCompare的核心功能中添加自己的算法,比插件式的算法集成要方便得多。因此,这里主要记录CloudCompare非插件式二次开发配置PCL,并给出具体开…...
停车辅助系统的技术和变化
各种各样的停车辅助系统已经存在了很长时间,但用户经常在不知道什么技术以及它是如何工作的情况下使用它们。 今天我们依次来谈谈停车辅助系统是什么,怎么发展以及如何应用的。 1.手信号 您可能会想,“为什么手信号是停车辅助系统&#x…...
扬帆优配|日均客运量恢复,民航业加速复苏,外资买入2股超亿元
春运民航客运量康复至疫情前七成。 2月16日,民航局举行2月例行新闻发布会。会上介绍,自1月7日至2月15日,春运40天,民航运送旅客5523万人次,日均客运量138万人次,同比去年春运添加39%,康复至2019…...
【PyTorch】教程:torch.nn.ModuleDict
Containers-ModuleList CLASS torch.nn.ModuleDict(modulesNone) 将所有的子模块放到一个字典中。 ModuleDict 可以像常规 Python 字典一样进行索引,但它包含的模块已正确注册,所有 Module 方法都可以看到。 ModuleDict 是一个有序字典。 Parameters …...
Git、小乌龟、Gitee的概述与安装应用超详细(组长与组员多人开发版本)
目录 一、概述 1.什么是Git? 2.Git历史来源 3.Git的优点? 4.什么是版本控制? 5.版本控制工具种类? 6.Git工作机制 7.Git、小乌龟、Gitee、凭据管理器的简单介绍 二、Git下载安装 下载Git 安装Git 安装完成后查看版本 三、下载小…...
【java 高并发编程之JUC】高阶JUC特性总结
1 线程中断机制 1.1 什么是中断? 首先 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。 其次 在Java中没有办法立即停止一条线程,然…...
行业分析| 智能无人自助设备
智能无人自助设备运用二维码技术、音视频通信技术和AI智能技术等相结合,提供了无人超市、自动售货机、智能快递柜等。当下很多商业地区或社区,都放置了智能无人自助设备,不仅可以为商家节省时间和精力、提升运营环境,也可以为众多…...
使用契约测试得不偿失?试试契约先行开发
契约维护的难题 如今微服务凭借其灵活、易开发、易扩展等优势深入人心,不同服务之间的集成和交互日渐繁多且复杂。这些服务之间交互的方式是多样的,常见的有 HTTP 请求和消息队列。在它们交互的过程中,会有服务的版本演进,交互信…...
函数编程之Function
文章目录前言一、Function是什么?二、Function 怎么用?1.简单使用2.真正的强大之处总结前言 在java8之后,我已经习惯了开始用stream()方式编程,但是对于新引入的其他功能,还是不清楚,今天经历了一个编程问题后,让我对于Function() 这个函数有了新的认知; 一、Func…...
Vue 双向绑定原理
Vue2 双向绑定原理 mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来 劫持各个属性的 setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。 几个要点: 1&#…...
苏州网站建设自学/自己在家怎么做电商
3 IP/MAC欺骗的防范 3.1常见的欺骗***的种类和目的 常见的欺骗种类有 MAC欺骗、IP欺骗、IP/MAC欺骗,其目的一般为伪造身份或者获取针对IP/MAC的特权。当目前较多的是***行为:如Ping Of Death、syn flood、ICMP unreacheable Storm,另外病毒…...
wordpress进入后台显示500/洛阳网站seo
使用Chrome的开发者工具 怎样打开Chrome的开发者工具?【原文地址】http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.html你可以直接在页面上点击右键,然后选择审查元素:或者在Chrome的工具中找到:或者,你…...
厦门定制型网站建设/万网域名注册官网阿里云
内联函数 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数压 栈的开销,内联函数提升程序运行的效率 #define Fun(x,y) x*y #define N 10 int Mul(int x, int y) {return x*y; } int main() {cout <<…...
学校宣传策划方案/上海百度关键词优化公司
转自:http://www.sohu.com/a/161633191_465975我是 Momenta 的高级研发工程师胡杰,很高兴可以和大家分享我们的 SENet。借助我们提出的 SENet,我们团队(WMW)以极大的优势获得了最后一届 ImageNet 2017 竞赛 Image Clas…...
php淘客网站开发/长沙官网seo收费
题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法? 题目分析 (参考牛客网Daniel Lee 分享的)用归纳法归纳如下, (1ÿ…...
找人做彩票网站多少钱/my63777免费域名查询
我创建了一个Win32服务器 - 客户端应用程序,其中许多客户端连接到单个服务器,发送查询和 recv 响应 .它在许多安装中都能正常工作,但在其他一些安装中关闭了连接 . 客户端和服务器都报告远程主机已关闭连接 . 创建连接后的套接字操作顺序如下…...