文/ThoughtWorks 肖然
精益對(duì)大家來說都不陌生了,無論是最開始提取的豐田制造原型,還是后面延伸出來的物流供應(yīng)鏈管理,再到近兩年頗為流行的精益創(chuàng)業(yè)(Lean Startup),都在不停刷新著“精益”這個(gè)概念。最近也不乏把精益當(dāng)成“熱詞”來包裝的各種理論,以至于很多客戶建議我另外給“精益企業(yè)”取個(gè)名字。我一般都會(huì)禮貌回答說:看看精益房子(見下圖)吧,我們并沒有發(fā)明什么新東西。
(圖片來源于Six Lean Sigma - Learn | Teach | Impact )
當(dāng)然,精益房子所表達(dá)的架構(gòu)其實(shí)還蠻復(fù)雜的,也不是一兩篇文章可以論證的,日本和美國管理學(xué)界也沒有達(dá)成完全的一致。很多人的疑惑是咱們好歹是21世紀(jì)的新興產(chǎn)業(yè),肯定跟上個(gè)世紀(jì)的汽車制造業(yè)有不同吧?還用精益思想合適嗎?這里我來談?wù)勛约旱睦斫猓瑨伌u引玉。
精益思想為什么適合于咱們這個(gè)行業(yè),在我看來有以下兩點(diǎn):
- 追求快速價(jià)值交付的小批量生產(chǎn)模式
- 追求極致卓越的匠藝文化
追求快速價(jià)值交付的小批量生產(chǎn)模式
“這個(gè)誰都知道”、“這不等于白說嗎”、“這個(gè)太虛,來點(diǎn)干貨吧” ...
這些都是每次拋出這句時(shí)會(huì)收到的反饋。然后我反問,“能給我講一下你最近交付的一個(gè)功能掙了多少錢嗎?”一般這個(gè)時(shí)候?qū)Ψ綍?huì)回避我真誠的目光,嘴巴上說著“我們的系統(tǒng)很復(fù)雜,一個(gè)功能太小了...”。那么我們?cè)賮砜纯锤鱾€(gè)崗位的績效考核吧?開發(fā)了多少條需求和測(cè)試出了多少bug,橫比環(huán)比增長了多少都是報(bào)告中的常客。這里的“價(jià)值”被定義為了每個(gè)角色、每個(gè)人的階段輸出,類似富士康流水線上生產(chǎn)一個(gè)iPhone零部件的工人,至于最后是iPhone 6還是7于這個(gè)工人其實(shí)并沒有太大關(guān)系,反正這批訂單200萬臺(tái),本周得搞定,做的越多個(gè)人收入自然會(huì)更多。
上面的例子告訴我們,并不是所有的生產(chǎn)模式都是追求“小批量”的,富士康在生產(chǎn)模式上是成功的,甚至是行業(yè)標(biāo)桿。而豐田制造當(dāng)年形成精益的生產(chǎn)模式,其核心是追求對(duì)市場變化的響應(yīng)力,即用戶一旦變了口味想開SUV,我的轎車生產(chǎn)團(tuán)隊(duì)及流水線能夠很快調(diào)整開始生產(chǎn)SUV,并且我能夠通過這種能力快速驗(yàn)證SUV的市場是不是真的。在這樣的生產(chǎn)模式下,較之每個(gè)員工的資源利用率及輸出,我們更關(guān)心的是“需求”是否能夠在團(tuán)隊(duì)快速流動(dòng)產(chǎn)出最后的產(chǎn)品,應(yīng)運(yùn)而生的是對(duì)生產(chǎn)批次小規(guī)模化及人員跨職能的要求。持續(xù)交付(Continuous Delivery)顯然是咱們這個(gè)行業(yè)對(duì)這小批量生產(chǎn)模式的總結(jié)。
當(dāng)然不用論證的是科技行業(yè)的市場是持續(xù)變化的,具有不確定性,所以邏輯上這種生產(chǎn)方式應(yīng)該是必須的,即使是所謂的后臺(tái)核心系統(tǒng),其需求也不得不跟著所謂的前臺(tái)用戶需求變。很多人會(huì)說這個(gè)很自然啊,咱們拆了User Story做迭代不都是這樣嗎?那么有多少次大家會(huì)說“這幾個(gè)User Story關(guān)聯(lián)很緊,客戶都要,我一起開發(fā)(測(cè)試)了,效率高一些”、“上線走流程麻煩死了,咱們還是一個(gè)月上線一次吧”、“所有都是Must Have,砍不下去了,PM上去磕客戶了” ...
當(dāng)然我們不否認(rèn)有的時(shí)候這些意見表達(dá)的可能是正確的選擇,但顯然,堅(jiān)守這樣的生產(chǎn)方式就需要在這些時(shí)刻去思考是否大家真的都運(yùn)用了精益思想來指導(dǎo)自己日常的生產(chǎn)工作。
這個(gè)時(shí)候可能會(huì)有大牛又跳出來拍一磚:”看吧,還是管理的人不懂精益!”
那么技術(shù)人員真的理解了“小批量”的含義嗎?在你的內(nèi)心深處有理解包括TDD這樣的基礎(chǔ)技術(shù)實(shí)踐是在踐行精益“小批量”的價(jià)值觀嗎?用測(cè)試來描述一個(gè)業(yè)務(wù)小場景,然后加以實(shí)現(xiàn),這種小步前進(jìn)的方式正是個(gè)人對(duì)精益思想的日常修煉!每個(gè)“小批次”業(yè)務(wù)場景實(shí)現(xiàn)后,都要嚴(yán)格重構(gòu),追求代碼的極致簡潔,這又是我們接下來談的對(duì)”匠藝“的卓越追求。那么環(huán)顧四方、環(huán)顧行業(yè),有多少工程師能夠堅(jiān)持TDD呢?當(dāng)開發(fā)進(jìn)度緊張成為壓力的時(shí)候,有多少人是選擇第一個(gè)放棄TDD,將“小批量”原則第一個(gè)放到褲兜里的呢?!
追求極致卓越的生產(chǎn)匠藝
回到富士康流水線上,一個(gè)殺馬特造型的青年在熟練地完成著iPhone屏幕的組裝,他下意識(shí)地拿著工具鉗咯噔一下,熟練地把一個(gè)屏幕扣入了iPhone的背殼,時(shí)間不到10秒鐘,然后他開始重復(fù)循環(huán)。他的眼神好像有點(diǎn)游離,嘴角不時(shí)露出微笑,腦子里在回憶著昨晚和兄弟們擼串時(shí)的高談闊論。他到崗1個(gè)月,第一天就學(xué)會(huì)了這道工藝,除了有一次把屏幕扣反了,這一個(gè)月還沒出過啥問題。最近談戀愛花錢不少,他每天都工作10個(gè)小時(shí),雖然辛苦但想到和女友的甜蜜時(shí)光還是覺得值。
上面對(duì)等的場景是一個(gè)蓬頭的程序員,對(duì)象(OO)也搞了5年了,這次遇上了函數(shù)(FP)項(xiàng)目,于是“WTF”成了口頭禪,有時(shí)候在pair時(shí)忍不住說了還得道歉。最近c(diǎn)ode review出來問題很多,功能是沒問題了,但老是想著修改變量值。每天盯著屏幕的眼睛有幾根血絲,腦子里不時(shí)閃過無數(shù)馬匹從Monad身上壓過去,都上項(xiàng)目一個(gè)月了,最近幾個(gè)User Story還是被QA揪出不少問題。雖然“心”苦,這段時(shí)間還是覺得很充實(shí)的,回家地鐵成了最好的思考地兒,有時(shí)候突然開悟,回家興奮著也想來個(gè)session,當(dāng)然結(jié)果一般都是家人2次元的眼神。每每這個(gè)時(shí)候都希望第二天快點(diǎn)開始,能夠去把代碼重構(gòu)了,實(shí)踐一把自己在地鐵上的靈感。
上面的兩個(gè)場景很普通,在這兩個(gè)行業(yè)里可能比比皆是。經(jīng)常我們會(huì)開玩笑說一個(gè)賣體力,一個(gè)賣腦力。但其實(shí)本質(zhì)的不同是生產(chǎn)者采用的生產(chǎn)方式的不同:在流水線上的殺馬特少年需要的是嚴(yán)格遵循制造工藝的每一道工序,通過不停的重復(fù)形成機(jī)體的記憶;而程序員需要的是認(rèn)清自己認(rèn)知的局限性,通過不停的學(xué)習(xí)形成更好的解決方案。好的流水線生產(chǎn)者能夠通過認(rèn)真練習(xí)、快速形成機(jī)體的記憶,使自己產(chǎn)出的效率和成功率都能夠達(dá)到一個(gè)高水平。好的程序員能夠通過刻意練習(xí)形成大腦的思維體系,從而能夠持續(xù)提升自己面臨新問題時(shí)的響應(yīng)力。由于豐田當(dāng)時(shí)的“特殊”市場環(huán)境,迫使其表面看是一個(gè)偏重于前者的流水線,但實(shí)際卻走出了一條持續(xù)學(xué)習(xí)和提高的文化之路,收獲了對(duì)市場需求變化的高響應(yīng)力。
所以有人會(huì)說:“對(duì)嘛!管理層都想著用熟練工,所以沒法有精益的文化了!”
咱們還是小處著手,剛才談了TDD,現(xiàn)在談?wù)刾air。曾經(jīng)作為一名PM,我也為兩個(gè)人結(jié)對(duì)指著代碼論道半天非常惱火,雖然內(nèi)心萬馬奔騰,但對(duì)“匠藝”的認(rèn)可還是阻止了我去拆散這對(duì)pair,畢竟我清楚兩人確實(shí)是在討論重構(gòu)而非其它瑣事。當(dāng)然事實(shí)證明這對(duì)pair現(xiàn)在都是業(yè)界有名的敏捷和架構(gòu)專家了,好歹也算是對(duì)我當(dāng)年苦難的回報(bào)。
再次環(huán)顧四方、環(huán)顧行業(yè),有多少工程師能夠堅(jiān)持pair,甚至code review?有多少人希望能夠在功能已經(jīng)實(shí)現(xiàn)的代碼之上持續(xù)追求卓越,而不是想著我自己干實(shí)現(xiàn)快一點(diǎn)好交差。至少這么多年的咨詢生涯所見者有限,令人慚愧的是code review成了咨詢需要去說服團(tuán)隊(duì)的日常工作之一。如果都沒有分享和交流,甚至是爭論,又哪里來的真正意義上對(duì)極致卓越的追求呢?
小結(jié)
上面兩點(diǎn)可能只是整個(gè)精益思想落地層面的兩個(gè)具體方面,但就我個(gè)人的體會(huì)而言,要做到已經(jīng)非常困難了!即使在ThoughtWorks這樣對(duì)敏捷高度認(rèn)可和實(shí)踐的團(tuán)隊(duì)里,要堅(jiān)持做也可謂是一件艱苦卓絕的事情。什么事情喊口號(hào)容易,持之以恒的一萬小時(shí)是每個(gè)希望成為精益踐行者必須經(jīng)歷的磨練。“著眼長遠(yuǎn)”這一精益的另一基本原則送給還在堅(jiān)持的同學(xué)們。
更多精彩洞見,請(qǐng)關(guān)注微信公眾號(hào):思特沃克