文/ThoughtWorks 肖然
精益對大家來說都不陌生了,無論是最開始提取的豐田制造原型,還是后面延伸出來的物流供應(yīng)鏈管理,再到近兩年頗為流行的精益創(chuàng)業(yè)(Lean Startup),都在不停刷新著“精益”這個概念技掏。最近也不乏把精益當(dāng)成“熱詞”來包裝的各種理論,以至于很多客戶建議我另外給“精益企業(yè)”取個名字项鬼。我一般都會禮貌回答說:看看精益房子(見下圖)吧哑梳,我們并沒有發(fā)明什么新東西。
(圖片來源于Six Lean Sigma - Learn | Teach | Impact )
當(dāng)然绘盟,精益房子所表達(dá)的架構(gòu)其實還蠻復(fù)雜的鸠真,也不是一兩篇文章可以論證的,日本和美國管理學(xué)界也沒有達(dá)成完全的一致龄毡。很多人的疑惑是咱們好歹是21世紀(jì)的新興產(chǎn)業(yè)吠卷,肯定跟上個世紀(jì)的汽車制造業(yè)有不同吧?還用精益思想合適嗎沦零?這里我來談?wù)勛约旱睦斫饧栏簦瑨伌u引玉。
精益思想為什么適合于咱們這個行業(yè)路操,在我看來有以下兩點:
- 追求快速價值交付的小批量生產(chǎn)模式
- 追求極致卓越的匠藝文化
追求快速價值交付的小批量生產(chǎn)模式
“這個誰都知道”疾渴、“這不等于白說嗎”、“這個太虛屯仗,來點干貨吧” ...
這些都是每次拋出這句時會收到的反饋搞坝。然后我反問,“能給我講一下你最近交付的一個功能掙了多少錢嗎魁袜?”一般這個時候?qū)Ψ綍乇芪艺嬲\的目光桩撮,嘴巴上說著“我們的系統(tǒng)很復(fù)雜敦第,一個功能太小了...”。那么我們再來看看各個崗位的績效考核吧店量?開發(fā)了多少條需求和測試出了多少bug申尼,橫比環(huán)比增長了多少都是報告中的常客垫桂。這里的“價值”被定義為了每個角色、每個人的階段輸出粟按,類似富士康流水線上生產(chǎn)一個iPhone零部件的工人诬滩,至于最后是iPhone 6還是7于這個工人其實并沒有太大關(guān)系,反正這批訂單200萬臺灭将,本周得搞定疼鸟,做的越多個人收入自然會更多。
上面的例子告訴我們庙曙,并不是所有的生產(chǎn)模式都是追求“小批量”的空镜,富士康在生產(chǎn)模式上是成功的,甚至是行業(yè)標(biāo)桿捌朴。而豐田制造當(dāng)年形成精益的生產(chǎn)模式吴攒,其核心是追求對市場變化的響應(yīng)力,即用戶一旦變了口味想開SUV砂蔽,我的轎車生產(chǎn)團(tuán)隊及流水線能夠很快調(diào)整開始生產(chǎn)SUV洼怔,并且我能夠通過這種能力快速驗證SUV的市場是不是真的。在這樣的生產(chǎn)模式下左驾,較之每個員工的資源利用率及輸出镣隶,我們更關(guān)心的是“需求”是否能夠在團(tuán)隊快速流動產(chǎn)出最后的產(chǎn)品,應(yīng)運(yùn)而生的是對生產(chǎn)批次小規(guī)墓钣遥化及人員跨職能的要求安岂。持續(xù)交付(Continuous Delivery)顯然是咱們這個行業(yè)對這小批量生產(chǎn)模式的總結(jié)。
當(dāng)然不用論證的是科技行業(yè)的市場是持續(xù)變化的帆吻,具有不確定性域那,所以邏輯上這種生產(chǎn)方式應(yīng)該是必須的,即使是所謂的后臺核心系統(tǒng)猜煮,其需求也不得不跟著所謂的前臺用戶需求變琉雳。很多人會說這個很自然啊,咱們拆了User Story做迭代不都是這樣嗎友瘤?那么有多少次大家會說“這幾個User Story關(guān)聯(lián)很緊翠肘,客戶都要,我一起開發(fā)(測試)了辫秧,效率高一些”束倍、“上線走流程麻煩死了,咱們還是一個月上線一次吧”、“所有都是Must Have绪妹,砍不下去了甥桂,PM上去磕客戶了” ...
當(dāng)然我們不否認(rèn)有的時候這些意見表達(dá)的可能是正確的選擇,但顯然邮旷,堅守這樣的生產(chǎn)方式就需要在這些時刻去思考是否大家真的都運(yùn)用了精益思想來指導(dǎo)自己日常的生產(chǎn)工作黄选。
這個時候可能會有大牛又跳出來拍一磚:”看吧,還是管理的人不懂精益婶肩!”
那么技術(shù)人員真的理解了“小批量”的含義嗎办陷?在你的內(nèi)心深處有理解包括TDD這樣的基礎(chǔ)技術(shù)實踐是在踐行精益“小批量”的價值觀嗎?用測試來描述一個業(yè)務(wù)小場景律歼,然后加以實現(xiàn)民镜,這種小步前進(jìn)的方式正是個人對精益思想的日常修煉!每個“小批次”業(yè)務(wù)場景實現(xiàn)后险毁,都要嚴(yán)格重構(gòu)制圈,追求代碼的極致簡潔,這又是我們接下來談的對”匠藝“的卓越追求畔况。那么環(huán)顧四方鲸鹦、環(huán)顧行業(yè),有多少工程師能夠堅持TDD呢跷跪?當(dāng)開發(fā)進(jìn)度緊張成為壓力的時候亥鬓,有多少人是選擇第一個放棄TDD,將“小批量”原則第一個放到褲兜里的呢域庇?嵌戈!
追求極致卓越的生產(chǎn)匠藝
回到富士康流水線上,一個殺馬特造型的青年在熟練地完成著iPhone屏幕的組裝听皿,他下意識地拿著工具鉗咯噔一下熟呛,熟練地把一個屏幕扣入了iPhone的背殼,時間不到10秒鐘尉姨,然后他開始重復(fù)循環(huán)庵朝。他的眼神好像有點游離,嘴角不時露出微笑又厉,腦子里在回憶著昨晚和兄弟們擼串時的高談闊論九府。他到崗1個月,第一天就學(xué)會了這道工藝覆致,除了有一次把屏幕扣反了侄旬,這一個月還沒出過啥問題。最近談戀愛花錢不少煌妈,他每天都工作10個小時儡羔,雖然辛苦但想到和女友的甜蜜時光還是覺得值宣羊。
上面對等的場景是一個蓬頭的程序員,對象(OO)也搞了5年了汰蜘,這次遇上了函數(shù)(FP)項目仇冯,于是“WTF”成了口頭禪,有時候在pair時忍不住說了還得道歉族操。最近code review出來問題很多苛坚,功能是沒問題了,但老是想著修改變量值色难。每天盯著屏幕的眼睛有幾根血絲泼舱,腦子里不時閃過無數(shù)馬匹從Monad身上壓過去,都上項目一個月了莱预,最近幾個User Story還是被QA揪出不少問題。雖然“心”苦项滑,這段時間還是覺得很充實的依沮,回家地鐵成了最好的思考地兒,有時候突然開悟枪狂,回家興奮著也想來個session危喉,當(dāng)然結(jié)果一般都是家人2次元的眼神。每每這個時候都希望第二天快點開始州疾,能夠去把代碼重構(gòu)了辜限,實踐一把自己在地鐵上的靈感。
上面的兩個場景很普通严蓖,在這兩個行業(yè)里可能比比皆是薄嫡。經(jīng)常我們會開玩笑說一個賣體力,一個賣腦力颗胡。但其實本質(zhì)的不同是生產(chǎn)者采用的生產(chǎn)方式的不同:在流水線上的殺馬特少年需要的是嚴(yán)格遵循制造工藝的每一道工序毫深,通過不停的重復(fù)形成機(jī)體的記憶;而程序員需要的是認(rèn)清自己認(rèn)知的局限性毒姨,通過不停的學(xué)習(xí)形成更好的解決方案哑蔫。好的流水線生產(chǎn)者能夠通過認(rèn)真練習(xí)、快速形成機(jī)體的記憶弧呐,使自己產(chǎn)出的效率和成功率都能夠達(dá)到一個高水平闸迷。好的程序員能夠通過刻意練習(xí)形成大腦的思維體系,從而能夠持續(xù)提升自己面臨新問題時的響應(yīng)力俘枫。由于豐田當(dāng)時的“特殊”市場環(huán)境腥沽,迫使其表面看是一個偏重于前者的流水線,但實際卻走出了一條持續(xù)學(xué)習(xí)和提高的文化之路鸠蚪,收獲了對市場需求變化的高響應(yīng)力巡球。
所以有人會說:“對嘛言沐!管理層都想著用熟練工,所以沒法有精益的文化了酣栈!”
咱們還是小處著手险胰,剛才談了TDD,現(xiàn)在談?wù)刾air矿筝。曾經(jīng)作為一名PM起便,我也為兩個人結(jié)對指著代碼論道半天非常惱火,雖然內(nèi)心萬馬奔騰窖维,但對“匠藝”的認(rèn)可還是阻止了我去拆散這對pair榆综,畢竟我清楚兩人確實是在討論重構(gòu)而非其它瑣事。當(dāng)然事實證明這對pair現(xiàn)在都是業(yè)界有名的敏捷和架構(gòu)專家了铸史,好歹也算是對我當(dāng)年苦難的回報鼻疮。
再次環(huán)顧四方、環(huán)顧行業(yè)琳轿,有多少工程師能夠堅持pair判沟,甚至code review?有多少人希望能夠在功能已經(jīng)實現(xiàn)的代碼之上持續(xù)追求卓越崭篡,而不是想著我自己干實現(xiàn)快一點好交差挪哄。至少這么多年的咨詢生涯所見者有限,令人慚愧的是code review成了咨詢需要去說服團(tuán)隊的日常工作之一琉闪。如果都沒有分享和交流迹炼,甚至是爭論,又哪里來的真正意義上對極致卓越的追求呢颠毙?
小結(jié)
上面兩點可能只是整個精益思想落地層面的兩個具體方面斯入,但就我個人的體會而言,要做到已經(jīng)非常困難了蛀蜜!即使在ThoughtWorks這樣對敏捷高度認(rèn)可和實踐的團(tuán)隊里咱扣,要堅持做也可謂是一件艱苦卓絕的事情。什么事情喊口號容易涵防,持之以恒的一萬小時是每個希望成為精益踐行者必須經(jīng)歷的磨練闹伪。“著眼長遠(yuǎn)”這一精益的另一基本原則送給還在堅持的同學(xué)們壮池。
更多精彩洞見偏瓤,請關(guān)注微信公眾號:思特沃克