微信号:YunTouTiao

介绍:云计算领域科技媒体:传播观点,传播价值;Web:www.yuntoutiao.com ,欢迎互动~~~

AWS CTO:别等待完美了,不断从错误中学习

2017-09-13 09:40 云头条

Amazon.com首席技术官Werner Vogels


“人只要奋斗,就会犯错。”德国大诗人歌德早在200多年前就已经知道这个了。他的这句名言放在今天依然适用,不过有一个重大的区别:光有奋斗还不够。你一定要比别人更快地奋斗。虽然力求完美没有什么不对,可在今天的数字化世界,再也无法等到自己的产品趋于完美,然后再提供给客户。如果这样,你就会落在市场同行的后头。


所以,如果你不能等待完美,那么到底应该怎么办呢?我认为,答案就是你在产品开发方面要积极尝试,接受一些尝试会失败的可能性。


凡是聆听过管理专家教诲或与他们共过事的人都知道他们的口头禅:失败是进步的必要部分。确实如此,但管理理论与实际现实之间常常存在着很大的差距。人们想要进行尝试,并从所犯的错误中学习。可是在忙碌的日常工作中,他们又没有足够的时间认真反思错误的根源、下一次采取什么样的不同做法。

解决办法就是找到一种防止错误不断出现的系统性方法。


从完美到反脆弱


寻找这样一种系统性方法时,你先要区分贵公司可能会出现的两种错误:技术错误和人类决策错误。好消息是,如果你知道如何有效地处理第一种错误,最后可能会更好地处理第二种错误,从而做出更合理的决策。金融数学家兼散文家纳西姆·塔勒布(Nassim Taleb)就这个问题提出了一个有趣的看法。他认为,错误其实非常有价值,因为错误带来了创新。他用“反脆弱”(anti-fragility)这个词来阐明其观点。今天的数字化商业模式需要频繁发布更小的版本来降低风险。这意味着,支撑这些新型商业模式的技术不仅仅要做到可靠稳定,它们还必须是“反脆弱”的。反脆弱技术的主要特点是,它可能“犯错误”,但又不会分崩离析。实际上,危机反而让反脆弱技术变得更好。


在亚马逊,我们也要求我们的系统和客户解决方案是反脆弱的,为此我们设计接受时间考验的系统。我们的系统必须能够不断完善,变得对失败有更强的适应力。由于从客户反馈和运行系统时可能遇到的任何故障模式中学习,我们的系统势必渐渐变得更强大、功能更丰富。


崇尚“反脆弱”理念的一家德国公司就是浩亭(HARTING),这家全球领先的公司专门为机器和设备提供重型可插式连接器。浩亭展示了在数字化世界,如何在思考质量标准的含义方面比同行领先一步。品质和信任是这家传统公司最重要的价值观,而工业4.0(Industry 4.0)和数字化转型自2011年以来就已经是该公司关注的两个重要领域。尽管一开始很难接受,但浩亭同时意识到错误是不可避免的。正因为如此,它改而采用敏捷开发方法。它还使用“最小化可行产品”方法,依赖微服务来开发软件。这样一来,浩亭就能更轻松地丢弃试验品、开发新产品。总之,浩亭的步伐变得更快了。


这可以从浩亭MICA上体现出来,这款边缘计算解决方案让旧的机器和设备能够实现数字化改造。连接器主体和硬件仍体现了浩亭追求完美的标准。而至于软件,目标是“够好”就行,因为微服务既不是成品,也不完美。因而可以很快地纠正错误决策和差错,系统可以更快地成熟起来,接近反脆弱状态。如果需求变化或有了更好的软件技术可以使用,每个微服务都可以丢弃,创建新的微服务。那样一来,就能提高速度,迅速使旧机器数字化,并遵循一种易于管理的成本框架,将它们连接到云。


错误没那么可怕


如果你想要像浩亭及其他公司那样变得反脆弱、非常强大,在尝试时就要积极寻找系统中的弱点。在一个不断发展的系统中,会发生各种各样的错误,你没法预测,系统需要扩展到未知领域时更是如此。所以,让你的系统面临不断的失败,并使用奈飞(Netflix)的Chaos Monkey这类工具,让子系统人为地失败。


如果你做了这一切,就会客观地对待贵公司的错误,将处理错误视作很平常的事。而错误成为“常态”后,谁都不会害怕冒险,敢于尝试新想法、新产品或新服务,看看客户对此有何反馈。那样一来,你可以迅速找到未来真正管用的解决方案。


在亚马逊,我们系统地、建设性地处理错误的方法名为“错误原因”(cause of error)分析法。它尽量避免找出“元凶”。相反,它将学到的经验记下来,得出最终改善系统可用性的行动。


从根源到创新


这个方法首先需要解决错误,为此要分析直接的根源,采取措施来缓解破坏,尽快恢复初始运行状态。但是我们并不满足于这个结果。我们更进一步,试图从事件中获取最大的洞察力。一旦各方面对客户来说又正常了,这个过程随之开始。


我们的错误原因分析法的一个关键要素是问5个“为什么?”问题(这个方法起源于制造业的质量控制)。这很重要,因为它查明了问题的根源。


以一个网站为例:上周五它为什么宕机?网站服务器报告超时。为什么超时?因为我们的网站服务超载,无法处理庞大流量。为什么网站服务器超载?因为我们没有足够的网站服务器来处理高峰期间的所有请求。为什么我们没有足够的网站服务器?因为我们在规划时没有考虑到可能出现的需求高峰。为什么我们在规划时没有考虑到需求高峰?等到这一圈下来,我们知道到底发生了什么事情、到底哪些客户受到影响。然后,我们就能够制定出确保特定的错误不会再发生的行动方案。


运用这种错误原因分析法常常让我们得以找到突破性的创新,就像纳西姆·塔勒布说的那样。解决方案Auto Scaling就是这么发出来的,起因是某一群客户遇到了网站上的流量波动性极大这个难题。某个网站上的负载增加后,Auto Scaling会自动启动一台额外的网站服务器,以处理数量增加的请求。相反,负载减小后,Auto Scaling关闭不需要的网站服务器,以节省成本。


它表明了这一点:企业组织不要被表面上的成功蒙蔽了。对于商业模式而言如此,对于系统开发同样如此。如果你想在复杂的环境中保持敏捷灵活,只能走这条路,哪怕这意味着离开舒适区。如果我们将这些想法代入到组织环境,这三个方面可能值得考虑:


1. 拥抱错误,将错误视作事实


杰夫·贝索斯曾这样说过亚马逊:“我认为我们是世界上最欢迎失败的公司。”这激励着我们的很多人大胆尝试,发现错误,并将其转变成创新成果。这番声明鼓励你的工员积极寻找错误,并将其转变成创新。而且,员工发现错误后,要给予奖励。我们从亚马逊的开发工作中学到的一点是,你需要始终透过错误的表面看问题。我们的一些最好产品是从错误中诞生的。


2. 坦然面对不完整的信息


德国公司向来有着力求尽善尽美的传统。然而在数字化世界,你在这些原则上需要宽松一点。技术变化太快了,你也需要快速变化。即使拥有的信息不如你希望的那么完整,也要做出决定。杰夫·贝索斯在最近写给股东的信中这样写道:“如果拥有了你希望拥有的全部信息的70%左右,也许就要做出决定。如果你等到拥有90%的信息再决定,那么在大多数情况下为时太晚。另外,无论怎样,你都需要善于迅速识别和纠正错误的决定。如果你善于调整方向,犯错的后果可能不如你想象的那么严重,而动作太慢的后果确实很严重。”


3. 推崇学习的重要性


我强调了公司公司需要有一种系统性方法来处理错误。但只有你的方法是整个公司文化的一部分,它才奏效。确保你了解自己的DNA,知道员工的所思所想。如果你的员工确实有理由担心如果犯了错误,会给自己带来不好的影响,那么公开赞扬产品开发方面的尝试,鼓励员工找到错误将只是一句空话。


这就需要领导层培育和打造日复一日得到践行的勇于尝试的文化。


无论公司提出什么样的方法,以便从错误中系统性地学习,都让它们在数字化世界有望更好地竞争。这将给以它们自由和勇气,敢于将系统、解决方案和商业模式提升到一个更高的水平。


相关阅读:

AWS CTO:解读首选 MXNet 做为 AWS 的深度学习框架的原因

AWS CTO对过去十年的总结:十条军规

Amazon CTO高调公布AWS数据中心设计方案

亚马逊 CTO:云架构师都应该知道的六大定律


 
云头条 更多文章 摆好“云”姿势,技术视角看苹果发布会 SaaS在蚕食基础设施世界! 行尸走肉:注定淘汰的 IT 工作 MEAN vs LAMP:争夺你的下一个编程项目! 因华为技术人员误操作,80万南宁移动用户数据丢失
猜您喜欢 五十块能得到什么 | 我给你整个阿里移动技术世界 2016第五届iWeb峰会城市巡回广州站 圆满落幕 浅谈快速发展中的企业存在的数据污染问题 揭秘MIUI视频从0到千万用户的迭代 平安金融壹账通测试技术周报(第四十九期)