当前位置: 首页 > news >正文

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多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品&#xff1b…...

【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) &#xff08…...

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…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...