软件可扩展性:来自星巴克的经验

【编者按】本文作者 Weronika Łabaj 是Particular Software的开发人员。她专注于通过软件提供业务价值,探索新模式,应对挑战。在星巴克,她总是点中杯焦糖玛奇朵。

文章系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文:

星巴克通过扩展运营机制和劳动力,避免了较长的顾客等待时间。无独有偶,开发人员也可以这样做!

2004年,Gregor Hohpe发表了一篇很棒的文章——“Starbucks Does Not Use Two-Phase Commit.(星巴克不相信两阶段提交) ”当笔者在阅读时,突然想到自己大学时在星巴克的工作经历。多年以来,我逐渐意识到程序员也可以从这家著名咖啡连锁企业学到更多。

很多开发人员都想构建可扩展软件,但实际操作中却很难实现。当我们在处理各类任务时,经常会陷入某种陷阱,认为每项工作都同等重要,需要同等的资源,并应当根据预先定义的顺序同步完成。

事实证明其并非如此——至少在可扩展系统中并非如此,在星巴克也并非如此。

如何制作咖啡

在星巴克,制作咖啡涉及四个步骤。首先,顾客排队,在柜台点单,依据先到先服务原则。第二,员工(咖啡师)帮顾客下单,并接受付款。第三,开始准备饮品。第四,当饮品制作完成后,将其放在吧台上,并呼叫顾客姓名。

尽管整个模式听起来非常合理,但却很快会导致很长的队伍。一位员工在同一时间,只能处理一项任务,因此顾客在咖啡师按顺序制作饮品时,只能排队等候。如果想要服务更多的顾客,就需要扩展。我们来看看星巴克是如何做的。

扩展咖啡师

星巴克可以选择的扩展方式之一就是雇用“超级咖啡师”——非常能干,效率很高,非常聪明的咖啡师。 星巴克需要在他们的发展上投入巨资,优化他们工作的各个方面,不断提高他们的效率。在软件中,这种方案被称为向上扩展(垂直扩展)。

这种扩展的问题在于,员工的工作速度(和工作时间)是有限的。总有一天,即使是超级咖啡师也无法满足所有需求。一旦出现这种状况,顾客就会沮丧地离开店铺,可能再也不会回来。

同样的,我们优化软件的程度也是有限的。我们不可能买到200 GHz的CPU。即使最大的CPU是多核的,其每个芯片的最高速率也仅在3到4 GHz。

星巴克可以采取的另一种扩展方式,是改变工作结构,添加更多的普通员工,就如软件中的并行处理。当一位咖啡师接到订单后,另一位就开始准备。这样,第一位咖啡师就可以处理下一个订单,同时第一个订单在并行准备中。

你可能会认为,只有在需求量达到一定程度时,才应该考虑并行处理。事实上,并不是那么简单。不可能在我们需要的时候,就可以马上切换到并行处理。我们必须事先做好准备。

星巴克很清楚这一点。每开设一家新的门店,即便每个班次只有一位员工,但是并行处理的一切从一开始就准备好了。他们可以随时增添人手。

经验:如果我们构建的系统不支持并行处理,就无法轻易实现并行处理。

现在,让我们看看星巴克是如何实现这一切的。

从消息传递开始

如果你曾在星巴克点过咖啡,就会注意到杯子上的那些小框框里总是标有某些符号。这些符号是一种简写,帮助咖啡师快速了解饮品类型以及其它额外要求(例如奶油,奶泡等等)。

杯子,或者信息,是员工之间沟通的基础。它告诉咖啡师需要制作的饮品,而上面的符号提供饮品的细节。即使店内并不忙碌,而且只有一名员工服务顾客时,也仍然会在杯子上标注符号。

乍看起来,似乎有点多余。但是,如果突然有一大批顾客进入店内,那么后备员工能够马上提供帮助。无需任何额外的沟通,他们可以根据信息开始制作饮品。

经验:突然增长的需求并不可怕, 只要我们能够随时添加更多员工,进行分工。使用消息是方法之一。

分工解决

正如前文所述,整个咖啡制作流程可以由一位员工——即咖啡师完成。不过星巴克的默认流程则是由一位员工(即收银员)下单并接受付款,再由另一位员工(咖啡师)制作饮品。

通常来讲,整个流程中速度最慢的环节就是制作咖啡,这也正是为什么当店内很繁忙时,有多名咖啡师同时制作咖啡。他们往往会从一叠杯子中拿取杯子,平均分担任务。而这正是“Competing Consumers(竞争消费者)”模式的体现。

不过在某些场景下,这种方式也可能带来麻烦。举例来说,有三位咖啡师共同使用一台咖啡机与一台星冰乐机。有三位顾客点了咖啡,而第四位则点了一杯星冰乐。下订单的员工排列杯子,上面分别写有对应的符号。每位咖啡师拿取一个杯子准备制作饮品。第一位开始使用咖啡机制作饮品时,其他两位只能等待。

我们可以通过分工,来避免这种状况。一种方式就是对信息进一步细化,分类处理。例如,我们都知道星巴克会利用杯子上的信息来表示需要准备的饮品类型。但是,这套系统还区分热饮和冷饮:热饮使用纸杯,冷饮使用塑料杯。当我们接到三份热咖啡订单,然后再接到一份星冰乐订单时,我们有三个纸杯和一个塑料杯。第一位咖啡师从纸杯中拿取一个,并开始制作。第二位咖啡师看到咖啡机正在使用, 因此拿取塑料杯,使用星冰乐机器。这样,就有两杯饮品在并行制作了。

这种分工,使咖啡师拆分任务,并行完成,被称为“细分”。

经验:事实证明,细分是有效扩展策略的一个关键因素。并非所有的工作都需要同等水平的扩展。能快速完成的小型任务可由单一员工完成,而高需求,更耗时的任务可由多位员工共同完成。通过细分,我们能够对每个任务实现独立扩展。

并非每项工作都同等重要

星巴克成功的原因之一,是对其员工进行培训,让他们意识到记住常客的重要性。比如,每天早上,那个为他的团队购买两杯超大杯美式和两杯大杯拿铁的男士。还有,每周三,那位点中杯焦糖玛奇朵,并在店内坐上一个小时读书的女士。

如果咖啡师在周三看见这位“中杯焦糖玛奇朵女士”进入店内,他们就会在她还未到达柜台前开始准备她最爱的饮品。顾客什么也不用说,就获得了想要的饮品,肯定会很开心。收银员已经知道她要点什么饮品,就可以寒暄几句,然后接受付款。在付款完成前,她的咖啡已经准备妥当,放在吧台上了。

你可以无法想象,星巴克顾客中的常客比例非常高。为他们带来最佳体验是很重要的。通常,他们获得饮品的速度要快于其他顾客。这让他们感觉受到了重视,并鼓励他们继续前来,也为公司带来更多价值。

经验:某些任务较其它任务更为重要。通过将标准任务构建成可重用的,独立的模块,我们可以轻松地修改流程,为更有价值的任务提供更好的服务。

并不是所有的错误都值得预防

在以上所有示例中, 星巴克员工都需要在顾客获得咖啡之前,确认他们已经付款。为了确保这一点,咖啡师们可以在交付咖啡之前要求顾客出示小票。然而,事实上,他们没有这样做。

星巴克发现,很少有顾客会在没有付款的情况下,去领取饮品。他们的分析显示,让咖啡师专注于完成订单才最重点,而不是关心偶尔丢失的咖啡。 如果有人碰巧拿走了你点的咖啡(通常是无心的),咖啡师会准备一杯新的给你。

经验:要构建可扩展系统,我们必须接受某些无可避免的错误。要完全避免这些错误,代价太高。我们应该快速检测问题,当它们发生时,及时弥补。

总结

看似简单的制作咖啡四步曲,演变成了一个有趣的业务流程。那些看似独特和罕见的任务,却是业务中的必要因素。

突然增长的需求,或错误,每天都可能发生很多次。设计一个可以良好应对这些状况的系统,需要考虑各种常见的情况。通常,首先想到的模型不能够解决这些问题。另外,也还需要考虑意外情况。比如,取消订单。

从星巴克的例子可以看出,如果我们采用简单的方案,那么业务将无法扩展,为更多顾客服务。随着顾客数量的增加,我们的服务水平将不断下降,最终导致顾客不再访问。因此,我们必须改变工作方式,满足增长的需求。最后,构建的系统不仅技术上可以扩展,还可以随着业务流程不断扩展。

本文转自 OneAPM 官方博客

原文地址:https://dzone.com/articles/what-starbucks-can-teach-us-about-software-scalabi

时间: 2024-08-31 09:58:02

软件可扩展性:来自星巴克的经验的相关文章

星巴克确认正在为Windows Phone开发软件

据外媒报道,巴西的Windows Phone用户很快就能迎来一个新福利了,应用户强烈要求,现在,星巴克终于决定开发一款WP版的官方软件了.星巴克在Twitter上确认了这一消息.推文大致意思如下:"你好!虽然星巴克软件现还不支持Windows Phone,但我们正在努力并很快改变这种情况." 这意味着巴西星巴克爱好者同时又在使用WP设备的话将很快也能用上官方提供的软件了. 届时,如果消费者还有Microsoft Band的话,则还能将星享卡添加到Band中进行使用.用户只需访问Micr

星巴克6.2亿收购高端茶商Teavana丰富产品

http://www.aliyun.com/zixun/aggregation/17197.html">北京时间11月15日上午消息,据彭博社报道,连锁咖啡店运营商星巴克周三宣布,将6.2亿美元现金收购有300家店面的高端散茶零售商Teavana控股公司,意在增强Teavana的全球存在,丰富产品组合. 由于快餐连锁店提供特制咖啡加剧竞争,星巴克力图扩大咖啡以为的业务,这次收购是星巴克最近一次努力.今夏星巴克1亿美元收购小型面点连锁店La Boulange,去年3000万美元收购鲜果汁生产

咖啡巨头星巴克的O2O实践及启示

品途网近日在研究美国餐饮企业O2O化时发现,星巴克(Starbucks)作为一家老牌的咖啡企业不仅在线下拥有极佳的口碑,而且其积极利用互联网打造品牌形象,积累了相当多的成功案例及经验.品途网发现,和星巴克线上(online)高效承担了品牌营销.产品销售及客户关系管理三重作用相比,国内餐饮同行大多还处在O2O初级试水阶段.品途网通过对星巴克的O2O实践进行整理,以期给国内餐饮O2O从业者特别是本土餐饮企业一些有益启示. 一.星巴克O2O实践历程 星巴克成立于1971年,通过快速扩张,到1992年6

星巴克为什么不做广告

这篇是我写给<中国经营报>长三角版首期的文章,去年底应编辑的稿约,匆匆在星巴克里炮制出来的.一不留神又给星巴克做了义务广告,正如所有这个品牌的各种各样的免费宣传员一样.文章是想通过星巴克解释一个道理:品牌认知度其实与大规模的广告并无直接的逻辑关系---- 星巴克励志故事取代广告? 作者:徐雷 最近在上海乘坐地铁的人都会在地铁线的视频上看到一部名为<晴天日记>的"连续剧".该剧情节并不复杂,女主角李晴喜欢乘地铁.喝咖啡,更喜欢帮助别人,经常用博客记录身边的人与事.

根据星巴克得到的启示

一.星巴克O2O实践历程 在1971年,星巴克成立了,在快速扩张之后,到1992年6月,其在纳斯达克上市时,星巴克已经是世界上最大的咖啡企业之一.在其CEO霍华德•舒尔茨的领导下之,一方面,客户体验方面星巴克格外重视,力求提供最好的咖啡及咖啡消费环境;在另一方面,星巴克也十分注重利用互联网来营造线上社区为其整体品牌形象服务,用来配合和促进线下(Offline)门店的销售.星巴克接受新事物速度相对来说谁比较快的,从1998年开始其互联网之路逐步展开. 1.建立网上社区,使线上为线下服务. 品途咨询

星巴克CEO舒尔茨教给我们的12条商业经验

以下是你可以从美国增长最快的咖啡品牌身上汲取的经验.作者:约翰•兰普顿(JohnRAMPTON)1971年,一家咖啡馆在西雅图历史悠久的派克市场开业了.现在,这家以<白鲸记>中亚哈船长的大副命名的小咖啡馆,已经成为世界上最大的咖啡馆.凭借在65个国家拥有超过2.1万家专卖店,星巴克成为美国增长最快的公司之一.公司从1994年的425家门店猛增至2013年的19767家.而且,没有迹象表明它有任何减速的计划.那么,这个品牌究竟是如何经历了如此惊人的增长?在这里,我们可以从星巴克及其大无畏的领导人

7P营销组合与顾客经验模式——解开星巴克经验之谜

成长背景 --轻柔的音乐声中,飘来阵阵地咖啡香味.阿拉伯风味的摩卡(Mocha)?或是意大利的卡布其诺(Cappuccino)?顾客喝着一杯杯香醇的爪哇咖啡,或沉思.或看书.或谈天-.这就是星巴克咖啡店的写照,地点可能是纽约或维也纳,也可能在上海或台北.今天,更有可能从北京到伦敦,或从上海到纽约,它无所不在,因为星巴克这位咖啡巨人的触角,正伸向世界各地快速地蔓延着-- 2001年,星巴克的展店脚步首度跨入欧洲大陆,在瑞士苏黎世开出欧洲第一店,不久,又进入已拥有300年以上咖啡馆历史和「咖啡文化」

星巴克最年轻CI玩魔兽世界训练领导力

顶着<财富>500强公司中最年轻CIO的光环,吉列特一直在训练自己的领导力.如何训练?每周玩六七个小时的<魔兽世界>.崇拜者把史蒂芬·吉列特(Stephen Gillet,星巴克CIO)视为未来零售业信息化的摩西,批评者则将痴迷于网络游戏的他斥之为无知堕落.入主公司2年后,吉列特依然备受争议. 吉列特其人 游戏并不代表颓废,如果你认识吉列特的话.在外人眼中,求学期间的他对学业并不苛求,倒是极有耐心地经营自己的虚拟世界,并且成为一个魔兽世界顶级公会的首领可惜的是,这并不能写进求职简历

解密星巴克未来 CEO:16 年微软老兵,曾主导收购雅虎

12 月 1 日,星巴克创始人兼 CEO 霍华德·舒尔茨宣布将在 2017 年 4 月 3 日正式卸任 CEO 一职,接替他的,将是星巴克目前的总裁首席运营官凯文·约翰逊. 令人意想不到的是,约翰逊于 2015 年加入星巴克,至今不到两年的时间:而且他之前还是科技界的资深人士. 数十年的科技老兵 约翰逊出生于 1960 年,他毕业于美国新墨西哥州州立大学:获得学士学位之后,他于 1981 年进入 IBM 公司,担任其系统整合和咨询业务的软件工程师. 1992 年,约翰逊离开 IBM 并加入微软,