写点什么

Codeweavers 的丰田模式

  • 2017-11-01
  • 本文字数:3210 字

    阅读完需:约 11 分钟

Codeweavers 在开发中将丰田模式与极限编程、持续交付相结合,支持频繁的小版本发布。关于采用丰田模式,Paul Boocock 提出的建议是,从阅读开始,理解理念,并开始教别人。

Paul Boocock 是 Codeweavers 的学科带头人,他在 Agile Cambridge 2017 大会上介绍了 Codeweavers 如何运用丰田模式的原则。InfoQ 正以 Q&A、概述、文章的形式对此次大会进行报道。

InfoQ 采访了 Boocock,了解他们为什么决定使用丰田模式、他们如何持续集成、如何将丰田模式应用于支持服务、他们运用丰田模式的经验教训以及丰田模式给他们带来了什么好处。

InfoQ:在 Codeweavers,你们为什么决定开始使用丰田模式?

Paul Boocock:我们从 2007 年开始就一直在践行敏捷技术,在短暂使用 Scrum 后,我们很快转向了极限编程(XP)和持续交付(CD)。随着敏捷之旅的继续,我们开始采用各种理念,包括精益和看板,它们把我们引向了丰田生产体系。虽然表面上看,那全是和生产汽车有关,但是,如果深入研究一下,尤其大野耐一的著作,你很快就会看到,如何将这些原则应用到各种各样的生产中,我们在阅读有关丰田生产体系的内容时,发现许多与我们的软件交付方式类似的东西。后来,丰田模式采用了丰田生产体系提出的指导方针,为我们确定工作方式提供了 14 条可以视为指明灯的原则。我们采用的仍然是一种极限编程的方法,但在我们遇到复杂的问题需要做决策时,丰田模式可以为我们提供帮助。

不久之前,我们遇到了一个问题,生产环境服务器出现了更多的异常。问题并不明显,只是偶尔会在我们没有料到会以那种方式被使用的代码路径中出现。从表面上看,我们可能会想到由一个开发小组来处理这个问题,或者在会上制定一个行动方案,把它指派给某个人来做进一步的研究。那种想法对我们没用;丰田模式教给我们两件事,我们不会把这些作为可行的选项。首先,“通过不断的反省(hansei)和持续的改进(kaizen)变成一个学习型组织”告诉我们要深入研究;我们必须找出问题的根本原因,以便可以改进。看到异常增加,一种做法可以是修复空引用和超时,但是我们一开始为什么留下了这些东西?为什么有这些缺陷的代码会进入生产环境?为什么我们没有第一时间停下来修复这些问题?这样“问五次为什么”可以帮助我们发现问题的根源,而不只是考虑最初的问题。第二,“团队精神胜于一切”;因此,我们不能将这个责任推给某个人或某个开发小组来解决。我们必须让整个团队协调一致,从而保证我们将来不会再犯同样的错误,实际上,一个人的速度比其他人快通常会导致系统变慢。在这个例子中,根本原因让我们了解到,我们的团队已经对异常和超时出现时监控屏幕上的噪音“免疫”了,它们慢慢地增加,通过监控并不能明显地觉察到问题日益严重以及它们有什么影响。我们做出了调整,使用新方法设计了我们的在线监控屏幕(增加了颜色和声音),这样,我们不仅能够更清晰地看到平台哪个地方出现了错误,还能通过声音更清晰地了解问题得不到解决可能产生的后果(监控并显示从本地向线上部署的次数、每小时部署次数以及 HTTP 错误代码应答)。

InfoQ:是什么让丰田模式的原则这么有价值?

Boocock:每天,我们都需要做出各种选择,如果没有任何帮助,那么我们可能被那些模棱两可的事情弄得不能正常工作。这就是类似丰田模式这样的思想给我们提供帮助的地方,我们把这些理念作为指导方针和基本原则。我们非常倚重的一种理念是,当我们遇到问题时,“问五次为什么”,我们希望找出根本原因;在使用这项技术之前,我们发现自己处于那种典型的情景中,我们寻找问题的解决方案,而不是找出并消除根本原因。我们把这项技术用在了各方面的业务上,不管是查找当前流程中存在的问题,还是探究生产环境的服务故障,或者思考为什么某个东西按照预期的方式执行。另外一个核心理念是“消除浪费”,我们主要是将这个理念应用在软件的持续交付方式上——从减少构建时间和开发项目库存到不在数月之前做一次性计划。还有其他的理念,比如,“团队精神胜于一切”以及“接力棒之妙”改变了我们的协作文化,避免因为特定团队成员的速度是其他人的两倍造成翻船(这是一个很棒的类比,一个团队在划船,如果其中一个人比其他人划的快就会降低到达目的地的速度,因为那样船会跑偏,其他人得设法保持前进方向或为此作出补偿)。

InfoQ:你们是如何做持续交付的?

Boocock:我们在整个代码库中只提供一个 trunk 流(没有分支);这使得我们的集成更频繁,库存更少。每次提交到 trunk,都会构建和测试受影响的应用程序,然后放入部署队列。我们不创建分支,我们倡导频繁的小版本发布,经常只发布一行代码。我们之所以能够这么做,是因为我们遵循丰田的自动化理念,即具备人类智慧的机器。我们的整个交付管道几乎都是自动化的,本地开发机器上的一次提交 10 到 15 分钟就可以进入到生产环境。然而,如果有什么出了问题,我们的交付平台也能立即突出显示,停止所有工作,帮助我们消除所有缺陷,不让他们到达生产环境。这就是丰田生产体系中经常提到的 Jidoka。

InfoQ:在 Codeweavers,你们如何将丰田模式应用于支持服务?

Boocock:我们的支持团队在很大程度上是受客户驱动的,而生产平准化一直都是挑战。最近,我们在考虑通过运用丰田生产体系的理念提升我们的客户支持水平。在过去的 12 个月里,我们的支持团队有一个有趣的发展,已经从 3 个人的团队发展成了 8 个人的团队;这种增长提出了新的挑战,因为我们相信,员工的成长会提升组织的价值,在 Codeweavers,这会给那些理解我们的理念并且能够教给别人的人造成压力。增长为团队带来了其他的挑战,在客户支持方面,要敢于和通常是常识的传统思想做斗争,我们知道并且一直是这样做的。客户支持很容易陷入专业化,专门有人做某个领域的支持,其他人做其他领域,但是,如果每个人都具备所有领域的技能,那么团队的整体工作就会容易许多;在一个汽车制造厂里,对于汽车生产而言,一个学过如何喷漆的电焊工比一个只学过电焊的人更有用。我们设法把这个理念宣贯给我们的支持团队,确保他们有一个广泛的知识面,熟悉平台的所有方面,这样,团队成员就可以互相帮助。专业化仍然很重要,但团队协作更重要,就像许多体育运动一样。尝试一些新东西,帮助支持团队均分工作,这真得很重要;这有助于提升整个团队的速度,让团队更有凝聚力。

InfoQ:你们在运用丰田模式时有什么经验教训?

Boocock:我了解到,西方传统的工作方式并一定是最好的,分批作业(增加库存)和大规模生产非常浪费,显然,频繁的小版本发布(想下 XP 和 CD)是正确的前进方向。我已经采用了让我可以更好地与团队共事的工作方法,确保我的工作负担是可持续的。对我而言,一个重大的变化是关注单件流,就是一次只做一件事,直到把这件事做完;我觉得这样效率更高,而且,当我把卡片移到完工栏时,我获得了更大的动力。

InfoQ:丰田模式为 Codeweavers 带来了什么好处

Boocock:Codeweavers 交付高质量的可工作软件的速度一直让我吃惊。让这一切成为可能的其中许多想法都是从来自丰田的那些原则中产生的。关于交付工作,那是一种很棒的思维方法,而且最终使 Codeweavers 成为一个很棒的工作场所。《丰田模式》一书中有这样的描述“丰田一直都能生产出质量最好的汽车,缺陷比任何竞争对手都少,而他们所用的工时更少,库存更低,占地面积是竞争对手的一半。”Codeweavers 似乎也从采用丰田模式的实践中获得了这种好处。

InfoQ:如果有组织希望使用丰田模式,您有什么建议吗?

Boocock:开始时先读下相关著作。一旦你开始理解这种理念,就把它教给别人。对我而言,有三本著作很重要:艾利·高德拉特的《目标》、大野耐一的《丰田生产方式》和杰弗瑞的《丰田模式》。阅读这些著作并不是银弹,有时候,这些理念可能看不上并不鲜明,难以理解,但是,Codeweavers 已经证明,这些理念和原则可以帮助企业转型,从一年向客户发布几次软件,转变成一天发布一百多次。

查看英文原文 The Toyota Way at Codeweavers

2017-11-01 19:001329
用户头像

发布了 1008 篇内容, 共 393.2 次阅读, 收获喜欢 345 次。

关注

评论

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

M2M场景之客户端凭证模式|OIDC & OAuth2.0 认证协议最佳实践系列 【4】

Authing

OAuth 2.0 Oauth OIDC

XMind2023思维导图软件 完美永久激活版 支持M1/M2

理理

XMind下载 XMind思维导图 XMind2023新功能 XMind永久激活版

英特尔持续耕耘锐炫显卡:累计21次驱动更新,支持XeSS游戏达50+

E科讯

抖音超火的文本生成图像的软件AI Photo for mac直装版

理理

AI Photo下载 AI Photo破解版 文本到图像生成器 超火的抖音软件推荐

海量数据运维要给力,GaussDB(for Cassandra)来助力

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Desktop Goose for Mac(抖音桌面宠物鹅) v0.22激活版

理理

mac软件下载 抖音桌面宠物鹅 桌面宠物软件推荐 Desktop Goose mac破解版

Tomcat 安装与启动

Andy

华秋硬创 | 全国科技工作者日,致敬每一位科技创新者!

华秋电子

速来!TDengine 六周年线上生日趴,“送”周边大礼包啦

爱倒腾的程序员

时序数据库 ​TDengine taosdata

软件测试/测试开发丨Web自动化测试常见控件交互方法

测试人

波司登云原生微服务治理探索

阿里巴巴云原生

阿里云 微服务 云原生

OpenMLDB v0.8 新功能:离线引擎数据源支持 Amazon S3

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

UniFi USW-Flex 室内-室外 POE 交换机

HoneyMoose

支持神经滤镜Photoshop 2023 (ps 2023)Mac v24.5/24.6b中文激活

真大的脸盆

Mac Mac 软件 ps神经滤镜 photoshop神经滤镜

从Google、创业再到字节跳动,我在开源领域的实践与思考

开源雨林

创业 字节跳动 开源治理

2天时间3个面试,百度进了3面!

王中阳Go

golang 职场 面经 求职面试 提高效率

Flink CEP 在抖音电商的业务实践|电商行业实践专栏上线

Apache Flink

大数据 flink 实时计算

【mac/win】navicat安装破解教程 Navicat 16 中文下载

理理

Navicat Premium破解版 Navicat Premium16 navicat数据库 好用的数据库软件

云原生数据库厂商拓数派加入龙蜥社区,打造多样化的数据底座

OpenAnolis小助手

开源 操作系统 龙蜥社区 CLA 拓数派

SeaTunnel毕业!首个国人主导的数据集成项目成为Apache顶级项目

Apache SeaTunnel

大数据 开源 数据集成 国产开源 Apache SeaTunnel

凝心聚力,共创未来 | 2023 开放原子全球开源峰会 OpenCloudOS 社区年会即将启幕

开放原子开源基金会

开源 云原生技术 OpenCloudOS 社区

一分钟跑出 AI 图像的生成平台

CODING DevOps

AI Cloud Studio 云端IDE

RustChinaConf 2023官网上线,精彩议题早知道

Mike Tang

火山引擎DataLeap的Catalog系统搜索实践 (二):整体架构

字节跳动数据平台

元数据 catalog DataLeap 文档检索

开源赋能 普惠未来|TKEStack诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源 开放原子开源基金会 开放原子全球开源峰会

创建编辑音频Audition 2022(AU2022)中文破解安装

理理

AU2022破解安装教程 Audition 2022下载 Audition 2022中文版 Adobe AU

百度商业AI技术创新大赛火热进行中,携手专家大咖一起创新为更好!

百度Geek说

人工智能 AIGC 企业号 5 月 PK 榜

索信达“数据资产管理解决方案”全解析

索信达控股

探索云原生技术发展与应用实践,赋能企业数字化转型 | 2023开放原子全球开源峰会云原生分论坛即将启幕

开放原子开源基金会

开源 云原生

Arm NN 成功适配 openEuler Embedded,提供高性能神经网络推理能力

openEuler

Linux 操作系统 openEuler risc-v embedded

Codeweavers的丰田模式_精益_Ben Linders_InfoQ精选文章