以视频分析为主要载体的人工智能算法在泛安防场景中是怎样落地的?>> 了解详情
写点什么

使用试验和数据创新并构建客户真正使用的产品

  • 2016 年 2 月 05 日
  • 本文字数:3929 字

    阅读完需:约 13 分钟

Jan Bosch 是瑞典哥德堡查尔姆斯理工大学的软件工程系教授和软件中心主管。在 Bits&Chips Software Engineering 大会上,他做了一场题为“从意见到事实,构建客户真正使用的产品”的主旨演讲,并举办了“通往天堂的阶梯:用于商业成功的持续集成和部署”定期讲座。InfoQ 将报道本次会议的新闻和文章。

InfoQ 就如下内容对 Bosch 进行了采访:企业能够从提高交付速度中得到的好处,导入敏捷和 DevOps 后,组织的下一步措施,使用试验进行创新,用于试验的实践和组织如何更具创新性。

InfoQ:你能解释企业如何从提高交付速度中获益?它为什么重要?

Bosch:尽管许多企业花费了很多时间专注战略,并多次尝试对行业“预测未来”,但事实上行业中许多现有企业都错过了发展。无疑,特别在欧洲许多人将诺基亚作为错失良机,被新进入者淘汰的典型例子。诺基亚通常被视为例外和异常值。然而,对财富 500 强名单研究显示 2000 年 52% 入榜企业如今都从名单上消失了。所有的企业都有战略和长期预测,但是仍未能错过市场的潮汐变化。通过对多家企业的研究,和我在行业生涯中的主动经历,我意识到企业的关键区别在于减少识别客户需求和在市场上拥有可用的能够解决该需求的解决方案之间的时间。应对快速变化的客户需求的敏捷和响应能力需要“速度需求”。

InfoQ:许多企业都采用了敏捷,而现在 DevOps 很热门。你觉得下一个是什么?

Bosch:基于我们的研究,我们开发了一个模型,叫做“通往天堂的阶梯”(参见 Continuous Software Engineering 一书)。这个模型基于较长一段时间内跟数十家企业的合作和跟踪随着时间推移开发实践在这些企业的演进。在模型中,组织从传统典型的瀑布式或者迭代开发方法开始。下一步,企业在 R&D 团队中采用敏捷开发实践,但是其它组织保持不变。敏捷团队通常会表达缺乏对所写软件验证能力的不满,并走向第三阶段:持续集成。一旦持续集成成功,企业总会有一个该软件的生产质量版本,然后企业会进展到下一步骤,持续部署步骤。在这个阶段,因为新软件的频繁部署不允许 R&D 和运营组织之间传统、缓慢的交接,所以 DevOps 成为重要的组织原则。这就要求同一团队负责开发和运营职责。

然而,很少有人意识到持续部署是达到目的的手段,其本身并不是目标。真实目标是它允许企业接近不同的开发模型:持续部署能够实现 A/B 和分割测试的使用,也能够实现其他定量测试方法,向客户展示新功能的相关性。这允许企业与客户采用通过假设驱动试验驱动的开发模型,而不是传统需求驱动的开发方法。其如此重要的原因是因为我们和其他研究表明典型软件系统中超过一半的特性从来未被使用过。这些特性可以认为是浪费,一开始就不应该开发。我们需要一个开发模型在构建这些特性时完整的开发工作被提交前清除这些特性。我们已经开发了一些模型且适用这一开发阶段,比如“R&D 作为创新试验系统”。

InfoQ:你如何组织 R&D 作为创新试验系统?

Bosch:在迈向 R&D 作为创新试验系统这一阶段的过程中,与之相关联的重点区域是产品管理与产品开发之间的关系。传统上来讲,产品管理侧重于构建什么,产品开发侧重于如何构建。这种分割能够满足可预测和变化缓慢市场中的组织。但不幸的是,越来越少的市场能够满足这一要求。此外,使用这一传统模型的企业其运行模式是:只有客户明确要求新特性或者产品的时候,新特性和产品才能得到充分的优先级。有时这会在客户需求出现和客户能够口头表述需求之间出现严重的时间滞后。客户需求出现跟客户能够表达出需求之间的时间就是市场新进入者扰乱现有企业的最佳时机。

所以我们不能坐等客户上门要特性或者产品,我们不能在“如果我们构建此特性或者产品,他们就会使用”的假设下构建特性或者产品。那么我们如何发现最有价值的特性或者产品提供给客户?答案是要么与客户基于领域中已经部署的产品这一背景不断地试验,要么通过其它试验方法不断试验。组织方法是将产品管理和产品开发聚集到同一个团队。虽然这是基本敏捷方法的规范,但是许多企业中产品负责人是一名技术人员,例如架构师或者高级工程师,而不是真正面对客户的人员。每个敏捷开发团队(满足亚马逊 2-pizza 规则)同样包含肩负产品经理角色的人。同时,团队提出假设与客户一起测试,然后开发和执行这些试验。这可能会导致特性从产品中撤回,因为客户反馈不温不火。或者,基于客户使用产品的数据,与产品管理的需求规范相比,可能特性仅仅需要部分实现,但是特性已经充分开发了。此外,可能导致特性的实现与团队原假设非常不同,因为客户反馈显示需要这一特性。最后,当然一些特性的实现可能完全按照说明,因为团队正确预测了客户最迫切的需求。

这种工作方式的重点在于(1)产品管理和开发参与团队,(2)产品管理和开发都要拥抱此工作方式带来的不确定性并且(3)建立一种数据胜过意见的文化。

InfoQ:你能举例说明使用数据来决定构建或者不构建什么?

Bosch:在 Web 2.0/SaaS 领域,这是规范,并且数家企业在 SaaS 领域花费了更多的精力重新实现已经开发了的特性,从而弄清楚替代实现方案能不能带来更好的商业成果。例如,对于电子商务网站,就是客户进入网站完成事务的汇率。一些我共事的企业如今开始在实现阶段和实现后更加严格地评估特性,从而决定该特性是否应该保留在产品中还是应该去除。此外,在嵌入式系统领域,有很多企业在特性已经开发后去除特性的案例,因为其增加的复杂性超过了特性提供的价值。不幸的是,由于保密约束,我不能分享这些特性细节。

InfoQ:在产品开发中使用这种方法,你能获得什么好处?

Bosch:正如我之前提到的,在典型软件系统中有一半到三分之二的特性从未或很少被使用。试想一下,我们可以腾出 R&D 资源的 50%,因为我们只构建客户真正、真正想要的功能,这些功能会为客户产品增加价值。再想一下,这 50% 的 R&D 资源可以分配给现有产品新特性和全新产品的创新和试验。这对任何组织竞争地位的影响将是惊人的。这给采用这种方法的企业带来的关键好处是:在投资回报率方面,极大地提升了 R&D 投资的精度。在软件中心( www.software-center.se ),我们积极地与伙伴公司合作研究这一机会,包括爱立信,沃尔沃,Saab,杰普逊(波音)和众多其他的公司。例如,在一些研究中,我们确实与哥德堡的一家企业合作,我们度量“服务启动”的频率,即特性使用的次数。如下图所示,只有很少的特性使用非常频繁。许多特性从未或者很少使用,并可能被认为是浪费。

InfoQ:组织可以部署哪种实践用于试验?你能举例说明吗?

Bosch:有很多实践组织可以采用并从中获益,但是这里我将重点介绍三种实践。首先,组织面向客户的交流被显著拓展。传统上来讲,R&D 人员从来不会面对客户,除非在客户现场出现意想不到的问题。如果 R&D 团队被认为应该对有价值的、新客户功能提出有见地的假设,那么他们需要理解客户的实际情况和产品的部署。这需要 R&D 人员在客户和客户现场花费时间。不仅仅是一些人,而是每个人每年至少要在客户身上花费一些时间。这似乎是一个昂贵的运动,但增进理解和客户同理心的价值远远超过其成本。例如,我以前的一个雇主,要求企业所有员工每年至少在客户那花费一天时间,在他或者她的工作日跟踪客户。

其次,企业需要适应数据驱动的工作方式。这需要测量现有的和新的产品,以便确定特性使用情况。我们的研究表明所有我们合作的企业收集了大量的数据,但是这些数据主要用于故障排除。R&D 不具备访问权,即使 R&D 具备,团队也没有使用可用的数据。用 Edwards Deming 话说,我们需要“我们信仰上帝;其他所有人请用数据说话”的文化。

第三,大多数组织工作在功能筒仓(functional silo)的环境下,跨筒仓的协作是缓慢、令人沮丧和充满失败的。对于渴望敏捷和数据驱动的企业而言,产品管理和开发有效地一起工作是不够的。整个组织,从销售和市场到发布和交付团队都需要有效地一起工作。这需要摆脱传统的官僚组织机构,转向授权、自我管理的团队,并提供前所未有的自治。在管理文献中,有一连串新奇的出版物在探索个体自我管理和自我导向的组织,和没有层级、老板、强制性内部决策过程情况下组织的运营。相反,这些组织已经发现了新的机制,用于协调组织内的工作,并且被大众视为结构化组织的下一阶段。一个众所周知的例子是 Valve,一家负责 Dota,Portal 和 Half-Life 的游戏公司,一路心甘情愿地建立自我管理。

InfoQ:如果组织希望变得更具备创新性,你能提供一些建议吗?

Bosch:有三件事我想解释清楚。

首先,创新需要个体有时间专注创新。因此,100% 甚至更多地分配你的员工,然后告诉他们去创新仅仅是一种假象。一些硅谷公司已经制度化了员工可以自由支配自己 10-20% 的时间。如果你想利用组织内每个人的创新能量,你需要给他们这样做的空间。

其次,许多创新思想都扼杀于内部反馈和典型的高层领导驱动的选择过程。原则应该是创新思想只有在拥有足够大的客户反馈样本表明缺乏该思想的支持的情况下才应该放弃。测试棒应该是客户,而不是组织内 HIPPOs(薪水最高人的意见)的意见。

最后,建立一种文化:尝试创新思想并接受不符合最初假设的可能性。我不喜欢关注失败,有人觉得领导喜欢,但是因为尝试没有成功的事情而在组织内惩罚员工是扼杀创新文化最快速的方法。当然,我们喜欢能够给企业带来重大好处的创新,但是得到这一成果的唯一方法是尝试更多的想法和创新,并基于客户的反馈选择其中的想法和创新。

关于受访者

Jan Bosch是瑞典哥德堡查尔姆斯理工大学的软件工程系教授和软件中心主管。此前,他是硅谷 Intuit 和芬兰诺基亚的副总裁。他还积极担任领头企业的顾问和创业领域的董事会成员。更多有关他背景的信息可以参考他的网站: www.janbosch.com

查看英文原文: Using Experiments and Data to Innovate and Build Products Customers Actually Use

2016 年 2 月 05 日 17:181193
用户头像

发布了 92 篇内容, 共 17.4 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

2021年,有哪些堪称神器的Python工具包?

Jackpop

Python GitHub

深入了解Spring之Spring Batch框架

邱学喆

数据分片 spring-batch Tasklet 流式任务

用mysql模拟实现消息队列

黄双鹏

#架构实战营

从反脆弱角度谈技术系统的高可用性

JAVA前线

高可用 高可用架构 反脆弱

抖音打击刷量控评行为:数据造假是互联网行业的毒瘤

石头IT视角

Ansible Playbook - 01

耳东@Erdong

ansible 7月日更 ansible Playbook

探秘RocketMQ事务机制,如何保证消息零丢失

慕枫技术笔记

Java RocketMQ 后端

11款开发者必备插件,第1款简直神器!

Jackpop

chrome 开发

机器学习

i30M

缓存穿透与击穿问题原理与解决方案

JAVA前线

Java 缓存 缓存穿透 缓存击穿 CAS

让区块链为“三张牌”赋能

CECBC区块链专委会

GIS坐标系测绘原理:大地水准面/基准面/参考椭球体/EPSG/SRI/WKT

zhoulujun

GIS

架构实战营 模块八作业

netspecial

架构实战营

【HikariCP技术专题】原理和使用介绍(原生态开发使用)

浩宇天尚

HikariCP 7月日更 HikarCP使用 数据源连接池

模块八:设计消息队列存储消息数据的 MySQL 表格

ifc177

设计消息队列存储消息数据的 MySQL 表结构

小荷才露尖尖角

架构实战营

Python打包有没有更好的软件了啊

IT蜗壳-Tango

7月日更

架构实战营 模块 8 课后作业

༺NPE༻

模块七:王者荣耀商城异地多活架构设计

ifc177

在线IEEE浮点二进制计算器工具

入门小站

工具

真的有落地的数据中台么?

escray

学习 极客时间 7月日更 数据中台实战课

在分布式中如何优化大数据存储结构

喵叔

7月日更

MySQL事务分析

卢卡多多

事务 事务隔离 7月日更

Linux之chmod命令

入门小站

Linux

实时个性化推荐(三十六)

数据与智能

算法 推荐系统

密码学系列之:memory-bound函数

程序那些事

加密解密 密码学 程序那些事

再谈BOM和DOM(6):dom对象及event对象位值计算—如offsetX/Top,clentX

zhoulujun

DOM event对象

再谈BOM和DOM(7):HTML DOM Event 对象属性及DOM事件详细列表

zhoulujun

DOM DOM事件

数字人民币发展的动因、机遇与挑战

CECBC区块链专委会

金融机构数字化转型进行时:隐私计算技术成香饽饽,多家银行已开展试点应用

CECBC区块链专委会

自建开发工具系列-Webkit内存动量监控UI(五)

Tim

typescript js 转 ts tsx tsconfig

使用试验和数据创新并构建客户真正使用的产品-InfoQ