某次在星巴克等咖啡的時(shí)候侧戴,閑來(lái)無(wú)事開始觀察店員的的工作宁昭。可能是出于職業(yè)習(xí)慣酗宋,我開始觀察和分析星巴克的工作流程积仗。突然發(fā)現(xiàn)星巴克的咖啡交付過(guò)程很像一個(gè)敏捷軟件開發(fā)團(tuán)隊(duì)的交付過(guò)程。后來(lái)通過(guò)進(jìn)一步觀察和細(xì)聊蜕猫,發(fā)現(xiàn)星巴克的店面運(yùn)營(yíng)是一個(gè) DevOps 運(yùn)作的榜樣寂曹。
如果我們把星巴克的店員們看做是一個(gè)開發(fā)/運(yùn)維團(tuán)隊(duì),把咖啡的交付看作軟件的交付回右,把店面的基礎(chǔ)設(shè)施維護(hù)和清潔看作是運(yùn)維工作隆圆。我們就發(fā)現(xiàn)了一個(gè)很好的 DevOps 學(xué)習(xí)榜樣。
讓我們看看星巴克店面是如何做 DevOps 的翔烁。
星巴克咖啡交付團(tuán)隊(duì)的角色組成
在星巴克里渺氧,大家都相互稱對(duì)方為星伙伴。我個(gè)人理解是通過(guò)弱化職級(jí)稱謂提升每個(gè)人的責(zé)任心蹬屹。所有的店員分為四個(gè)角色:
店面主管(SS或IC):負(fù)責(zé)店面整體的管理侣背。
收銀:負(fù)責(zé)點(diǎn)單、推薦產(chǎn)品和收款慨默。
吧臺(tái):負(fù)責(zé)制作飲品贩耐。
CS:負(fù)責(zé)門店補(bǔ)貨,清理桌面厦取。
店面主管主要負(fù)責(zé)團(tuán)隊(duì)的任務(wù)安排憔杨,你可以把它當(dāng)做是 PM 或者 Scrum Master。在一切都井然有序的情況下蒜胖,他的工作和一般的員工是一樣的。只要他發(fā)現(xiàn)了臨時(shí)需要處理的情況抛蚤,他才會(huì)根據(jù)店面的資源來(lái)安排臨時(shí)性的工作台谢。
吧臺(tái)內(nèi)部分為三個(gè)部分:收銀點(diǎn)單區(qū)、咖啡制作區(qū)岁经、咖啡待取區(qū)朋沮,如下圖所示:
收銀點(diǎn)單區(qū)的店員根據(jù)客人的需求點(diǎn)單,然后記錄到咖啡杯上。
咖啡制作區(qū)的店員會(huì)根據(jù)杯子上的標(biāo)記制作飲品樊拓。
制作完成后的咖啡會(huì)放到咖啡待取區(qū)等客人來(lái)取纠亚。
所有的店員都具備所有的技能(全棧工程師),并通過(guò)標(biāo)準(zhǔn)化的考試上崗筋夏。你會(huì)看到在星巴克里有綠色圍裙和黑色圍裙蒂胞。黑色圍裙的咖啡師是經(jīng)過(guò)考試的,考試合格后會(huì)發(fā)黑色圍裙作為通過(guò)認(rèn)證的標(biāo)志条篷。
反思:你的工程師有標(biāo)準(zhǔn)化的技能考試嗎骗随?
星巴克咖啡交付團(tuán)隊(duì)的 DevOps 單向工作流
說(shuō)到 DevOps,不能不提到"三步工作法"赴叹。首先鸿染,我們要用到第一步——構(gòu)建端到端單向工作流——來(lái)觀察星巴克店面是如何構(gòu)建單向工作流的。
我們可以把交付一杯咖啡的流程和軟件開發(fā)的交付一個(gè)用戶故事的流程的關(guān)系做如下對(duì)應(yīng):
需求分析:和客人交流并記錄客人對(duì)咖啡的需求乞巧。
產(chǎn)品開發(fā):按照需求制作咖啡涨椒。
產(chǎn)品發(fā)布:制作完成并通知客人取咖啡。
基礎(chǔ)設(shè)施運(yùn)維:咖啡店面的日常清掃和補(bǔ)貨绽媒。
在這個(gè)基礎(chǔ)上蚕冬,我們看看一杯咖啡從點(diǎn)單開始,星巴克的持續(xù)交付流水線就是它設(shè)備的擺放順序些椒,確保杯子的單一方向流動(dòng)播瞳,避免返工和逆向流動(dòng)。
點(diǎn)單:雖然星巴克的咖啡是流水化工業(yè)制品免糕。但是也是存在定制的赢乓,比如類別、口味石窑、冷熱牌芋、大小。雖然顧客有需求松逊,但需求控制在一定范圍之內(nèi)(哪些做得到躺屁,哪些做不到)并且通過(guò)產(chǎn)品價(jià)位板告知顧客。
反思:你的團(tuán)隊(duì)能做什么经宏,不能做什么犀暑,什么時(shí)候做完,你是否對(duì)交付成果有信心烁兰?這些信心來(lái)自哪里耐亏?如果沒(méi)有信心,如何獲得信心沪斟?
標(biāo)記:在點(diǎn)單階段广辰,收銀會(huì)把客戶的每一個(gè)需求記錄到杯子上,包括顧客的姓名。星巴克咖啡采取的是“預(yù)付費(fèi)”(先付費(fèi)再生產(chǎn))而非“后付費(fèi)”(先生產(chǎn)再買單)的方式择吊。這些記錄是對(duì)一杯咖啡需求驗(yàn)收標(biāo)準(zhǔn)的分解李根。通過(guò)杯子大小來(lái)控制每個(gè)需求點(diǎn)的驗(yàn)收和用量。
反思:你的團(tuán)隊(duì)開發(fā)需求時(shí)是否把每個(gè)驗(yàn)收條件記錄下來(lái)并且在不同的階段控制質(zhì)量和用時(shí)几睛?
制作:每個(gè)帶著記號(hào)的咖啡杯就是一個(gè)格式化的需求文檔房轿。上面詳細(xì)的記錄了這個(gè)顧客的需求,并且這些需求可以驗(yàn)證枉长。每杯咖啡都有標(biāo)準(zhǔn)的驗(yàn)收樣例和工序冀续,所以每個(gè)店員都知道完成的標(biāo)準(zhǔn)是什么。這樣必峰,即便不是點(diǎn)單的店員洪唐,看到杯子上的記號(hào),也能做出符合顧客驗(yàn)收條件的咖啡吼蚁。此外凭需,每個(gè)杯子上都會(huì)有顧客姓名的標(biāo)記,以免點(diǎn)錯(cuò)單肝匆。
反思:你的團(tuán)隊(duì)需求文檔中的信息是否可以做到無(wú)解釋交接粒蜈?
出品:星巴克“完成”的定義是“顧客拿到了咖啡”,而不是“咖啡制作完畢”旗国。如果顧客沒(méi)有確認(rèn)拿到的咖啡符合需求枯怖,是沒(méi)有完成的。如果顧客對(duì)咖啡不滿意能曾,是可以要求重做的度硝。這時(shí)候,會(huì)由專門的店員負(fù)責(zé)重新制作咖啡寿冕,直到顧客滿意為止蕊程。
反思:你的軟件開發(fā)流程中“完成”的定義是開發(fā)完成?測(cè)試完成驼唱?還是上線發(fā)布完成藻茂?
制作區(qū)運(yùn)營(yíng):星巴克從點(diǎn)單開始,到制作咖啡過(guò)程中所有的設(shè)備玫恳、物料辨赐、衛(wèi)生等都要每天維護(hù)使之保持最佳使用狀態(tài)。這些基礎(chǔ)設(shè)施的使用都是高可用且可以按需伸縮的:兩個(gè)收銀機(jī)京办、兩臺(tái)咖啡機(jī)——如果一臺(tái)壞了掀序,有另外一臺(tái)備份。默認(rèn)情況下只使用一臺(tái)臂港,如果到了忙時(shí)兩臺(tái)才會(huì)同時(shí)使用。這一切都要通過(guò)星巴克店面的看板信號(hào)機(jī)制來(lái)動(dòng)態(tài)協(xié)調(diào)。
反思:你的軟件交付基礎(chǔ)設(shè)施和人員是否具備動(dòng)態(tài)協(xié)調(diào)的能力审孽?為什么县袱?
星巴克咖啡交付的看板系統(tǒng)
當(dāng)我們構(gòu)建了單向的價(jià)值流之后,來(lái)看看星巴克是如何應(yīng)用 DevOps 第二工作法——構(gòu)建快速反饋的佑力。
首先式散,從上述流程中,我們可以看到星巴克的四個(gè)積壓隊(duì)列(Backlog)打颤,分別是:點(diǎn)單隊(duì)列暴拄、待制咖啡隊(duì)列、制作中咖啡隊(duì)列编饺、待取咖啡隊(duì)列乖篷。
這四個(gè)隊(duì)列構(gòu)成了星巴克咖啡交付的看板系統(tǒng),每個(gè)環(huán)節(jié)都是一個(gè)單獨(dú)的隊(duì)列透且,并且通過(guò)不同的看板可視化積壓情況撕蔼。
點(diǎn)單隊(duì)列
如果你正在點(diǎn)單,收銀員會(huì)在你猶豫的時(shí)候幫你推薦秽誊。然后它會(huì)記下你姓名鲸沮,咖啡的類別和定制化的要求。并記錄在杯子上锅论,放到待做咖啡隊(duì)列讼溺。
一般星巴克的店面都會(huì)有兩個(gè)收銀臺(tái)。平常的情況下只有一名星伙伴收銀最易。如果有客戶在收銀機(jī)排隊(duì)怒坯,就是需求分析資源不足的信號(hào),收銀臺(tái)需要補(bǔ)人耘纱。收銀臺(tái)補(bǔ)人的原則是把兩個(gè)人看作一個(gè)單位敬肚,如果超出了 2.5 個(gè)單位。收銀臺(tái)需要再補(bǔ)充另外一個(gè)人束析。如果兩個(gè)收銀還是不夠艳馒,值班主管會(huì)讓一個(gè)伙伴拿著點(diǎn)單卡(如下圖)提前記錄客人需要。這樣可以節(jié)約在收銀臺(tái)前的時(shí)候员寇,客人選擇和猶豫時(shí)耽誤的時(shí)間弄慰。
這樣就避免了點(diǎn)單隊(duì)列(需求分析)的積壓。
待做咖啡杯隊(duì)列和飲品制作流水線
此時(shí)待做咖啡隊(duì)列就是一個(gè)個(gè)打上標(biāo)記的空杯子蝶锋。當(dāng)空杯子數(shù)量超過(guò)5個(gè)陆爽,吧臺(tái)里就需要有第二個(gè)人參與咖啡的制作,以減少待做隊(duì)列里的積壓扳缕。
簡(jiǎn)單的說(shuō)慌闭,一杯標(biāo)準(zhǔn)的意式咖啡會(huì)包括三個(gè)環(huán)節(jié):
- 制作濃縮咖啡(Espresso)别威。
- 制作奶沫。
- 混合并添加糖漿/冰塊等配料驴剔。
在這三步中省古,第一步制作濃縮咖啡是需要等待的,在這期間星伙伴可以選擇同時(shí)做其它的咖啡丧失、制作奶沫或者增加配料豺妓。所以,咖啡不是一杯一杯交付的布讹,而是一批一批交付的琳拭。
這樣就減少的咖啡制作(開發(fā))的積壓。
待取咖啡杯隊(duì)列
當(dāng)咖啡做完后描验,會(huì)加上蓋子白嘁,咖啡師會(huì)根據(jù)杯子上的標(biāo)記呼喚顧客的姓名。如果堆積的咖啡比較多挠乳,就會(huì)有一名星伙伴在咖啡待取區(qū)权薯,通過(guò)呼叫客人的名字專門負(fù)責(zé)向客人交付咖啡。
這樣就減少了咖啡待取區(qū)(發(fā)布部署)的積壓睡扬。
店內(nèi)外桌面隊(duì)列
嚴(yán)格的說(shuō)盟蚣,店內(nèi)的桌面的收拾是定時(shí)的。星巴克會(huì)有專門的伙伴卖怜,定時(shí)的來(lái)清理店面桌子上的咖啡杯和餐盤屎开。這個(gè)角色就是我們之前說(shuō)的 CS。由于店面內(nèi)的清潔并不需要及時(shí)響應(yīng)马靠,所以只需要定時(shí)批量清潔就可以奄抽。
他們會(huì)采用定時(shí)器(上圖左一胸口夾著的東西)來(lái)記錄循環(huán)時(shí)間和需要做的事情,就相當(dāng)于一個(gè)定時(shí)任務(wù)隊(duì)列甩鳄。并且通過(guò)把工作任務(wù)分類逞度,任務(wù)清單可以確保每個(gè)步驟沒(méi)有遺漏。
反思:你有維護(hù)清單嗎妙啃?是否是定時(shí)任務(wù)檢查的档泽?
動(dòng)態(tài)的減少各環(huán)節(jié)積壓
從上文我們看到,任何一個(gè)隊(duì)列的積壓都是一個(gè)信號(hào)揖赴,這樣的信號(hào)系統(tǒng)在使得每個(gè)人各司其職馆匿,無(wú)需主管協(xié)調(diào)。讓店員能夠及時(shí)的處理積壓燥滑,無(wú)論需求積壓(制作咖啡的量)有多大渐北,都保保證穩(wěn)定的產(chǎn)出。店面主管的作用就是時(shí)刻看住這五個(gè)隊(duì)列铭拧,是否需要臨時(shí)進(jìn)行資源調(diào)配:
顧客隊(duì)列就是看板赃蛛,如果待點(diǎn)單的隊(duì)列很長(zhǎng)恃锉,就需要補(bǔ)充人員去收銀臺(tái)。
吧臺(tái)內(nèi)每個(gè)空的咖啡杯就是看板呕臂,如果空著的咖啡杯很長(zhǎng)淡喜,那就說(shuō)明需要有人來(lái)制作咖啡。
咖啡待取區(qū)也是看板诵闭,如果堆積的咖啡很多就需要有人來(lái)提示客戶取咖啡。
桌面就是看板澎嚣,沒(méi)有人在座位上疏尿,且前面堆積了咖啡杯,就需要去清理掉易桃。
一般來(lái)說(shuō)褥琐,星巴克在非高峰時(shí)段保持五個(gè)店員:
1~2個(gè)店員負(fù)責(zé)收銀
1~2個(gè)店員負(fù)責(zé)制作咖啡
1 個(gè)店員負(fù)責(zé)叫顧客取咖啡
1 個(gè)店員負(fù)責(zé)清理店內(nèi)的桌面和地面
星巴克分為上午班和下午班,各8個(gè)小時(shí)晤郑。他們會(huì)在高分期安排換班敌呈,而且換班有1-2個(gè)小時(shí)的重疊,這個(gè)時(shí)間內(nèi)星巴克的店面最多只有10 個(gè)人以應(yīng)對(duì)高峰期的客流造寝。
星巴克店員每個(gè)人都熟悉端到端全部的工作磕洪,任何一個(gè)人都可以頂替任何一個(gè)環(huán)節(jié),在單一環(huán)節(jié)內(nèi)高效產(chǎn)出诫龙。為了避免單一環(huán)節(jié)工作枯燥析显,則需要進(jìn)行輪崗。這樣签赃,每個(gè)星巴克店員在不同的工作任務(wù)中慢慢樹立起了整體觀念谷异。
此外,每個(gè)人會(huì)在8個(gè)小時(shí)的工作時(shí)間內(nèi)休息2次锦聊。并且根據(jù)需要可以在4個(gè)不同的崗位中輪換歹嘹。以保證每個(gè)人都能對(duì)每個(gè)步驟的操作熟練。
反思:你是否制定了相應(yīng)的輪崗機(jī)制讓每個(gè)團(tuán)隊(duì)成員體驗(yàn)不同交付環(huán)節(jié)的工作孔庭?
星巴克咖啡交付的自動(dòng)化基礎(chǔ)設(shè)施
星巴克的意式咖啡機(jī)和別處的咖啡機(jī)是不同的:咖啡豆的豆倉(cāng)尺上、研磨、出品意式濃縮在一臺(tái)機(jī)器上史飞。打奶沫的拉桿也是只有兩檔:開和關(guān)尖昏。
而大多數(shù)的意式咖啡機(jī)是和磨豆機(jī)分離的,制作意式濃縮前需要經(jīng)歷磨粉构资、壓餅抽诉、萃取、去渣吐绵、沖洗 5 個(gè)步驟迹淌。相較于傳統(tǒng)的咖啡機(jī)的磨粉河绽、壓餅、控制奶沫雖然缺少了定制性唉窃。但針對(duì)于大多數(shù)非專業(yè)的客群耙饰,這些標(biāo)準(zhǔn)和固定化的出品已經(jīng)能滿足需求。這樣的自動(dòng)化基礎(chǔ)設(shè)施可以保證出品的穩(wěn)定性纹份。
反思:你是否分析了自己的交付流程的每一個(gè)動(dòng)作苟跪?你是否擁有了自動(dòng)化基礎(chǔ)設(shè)施來(lái)降低技能的門檻并保證穩(wěn)定的質(zhì)量?
星巴克咖啡交付團(tuán)隊(duì)的自我學(xué)習(xí)和改進(jìn)
制定目標(biāo)的時(shí)候都有獎(jiǎng)勵(lì)和懲罰蔓涧,懲罰的內(nèi)容很簡(jiǎn)單件已,就是做最臟最累的工作:按照店面的整潔規(guī)范打掃,這被稱之為深度清潔元暴。并且不會(huì)讓懲罰成為一種精神負(fù)擔(dān)和壓力篷扩。
反思:你是否可以通過(guò)把“提升熟練程度”當(dāng)做一種替代的考評(píng)機(jī)制來(lái)提升團(tuán)隊(duì)成員的專業(yè)程度?
如果你下一次去星巴克茉盏,也許能嘗試帶著 DevOps 的眼睛去發(fā)現(xiàn)其中的秘密鉴未。
參考
我是顧宇,是一名在埃森哲工作的職業(yè)咨詢師鸠姨。我目前專注于產(chǎn)品服務(wù)設(shè)計(jì)铜秆、敏捷軟件開發(fā)、DevOps 讶迁、云計(jì)算以及應(yīng)用架構(gòu)領(lǐng)域的技術(shù)和實(shí)踐落地羽峰。熱愛(ài)閱讀、寫作添瓷、旅行和健身梅屉。具有強(qiáng)大的好奇心的經(jīng)濟(jì)學(xué)和腦科學(xué)愛(ài)好者,喜歡結(jié)交不同領(lǐng)域的朋友鳞贷,一起體驗(yàn)并分享世界上未知的美好坯汤。
歡迎關(guān)注我的公眾號(hào):顧宇的研習(xí)筆記
本作品采用知識(shí)共享署名-禁止演繹 4.0 國(guó)際許可協(xié)議進(jìn)行許可