團(tuán)隊(duì)的開(kāi)發(fā)人員撇開(kāi)需求沉浸在想象中的“完美”程序中;測(cè)試人員迷茫的點(diǎn)擊著按鈕試圖搞明白這到底是個(gè)什么功能;設(shè)計(jì)師造出了沒(méi)有盡頭的樓梯,更糟的是,客戶愛(ài)上了這個(gè)設(shè)計(jì);團(tuán)隊(duì)領(lǐng)導(dǎo)四處救火,力有不逮。種種跡象表明,我們得打破分工帶來(lái)的壁壘,建設(shè)全功能團(tuán)隊(duì)——大多數(shù)人能完成大多數(shù)種類工作的團(tuán)隊(duì)。
在一次閑聊中,女友的母親說(shuō)起實(shí)習(xí)大夫必須輪崗一年才會(huì)進(jìn)行分科學(xué)習(xí),我質(zhì)疑道:“對(duì)于致力于心臟病治療的醫(yī)生來(lái)說(shuō),他豈不是在不相干的學(xué)習(xí)上浪費(fèi)了一年時(shí)間么?”,她母親笑著說(shuō):“不這么作,你怎么確信病人的確患有心臟病呢?”。不知道為什么,我眼前突然浮現(xiàn)出這樣的場(chǎng)景?測(cè)試人員在怯生生的詢問(wèn):“這是一個(gè)缺陷么(而不是操作系統(tǒng)/瀏覽器的限制)?”。
亞當(dāng)·斯密于1973年在描述大頭針工廠的專業(yè)化生產(chǎn)時(shí)提出了社會(huì)分工的好處:提高熟練程度、減少任務(wù)切換時(shí)的開(kāi)銷、便于機(jī)器的應(yīng)用。我們似乎可以非常自然得推導(dǎo)出重復(fù)設(shè)計(jì)、重復(fù)編碼、重復(fù)測(cè)試可以增加相應(yīng)崗位員工技術(shù)熟練度,提升效率,并由此提升企業(yè)的盈利能力。
然而市場(chǎng)的不斷變化讓重復(fù)生產(chǎn)的美夢(mèng)不在,切換任務(wù)變得越來(lái)越頻繁。IT公司不是大頭針工廠,知識(shí)工作者畢竟有別與體力勞動(dòng)者,在勞動(dòng)主體發(fā)生變化的過(guò)程中有兩件事情的差異被放大了:一是局部?jī)?yōu)化與整體優(yōu)化的差異,二是正確的做事與做作正確的事情的差異。
有一道數(shù)學(xué)題,假設(shè)每個(gè)開(kāi)發(fā)人員每天可以完成一個(gè)功能,測(cè)試人員每天可以測(cè)試2個(gè)功能,團(tuán)隊(duì)由3名開(kāi)發(fā)人員和1名測(cè)試人員組成,那么一周內(nèi)通過(guò)測(cè)試的功能最多為多少個(gè)?
大多數(shù)人的第一反應(yīng)是5(天)x2(功能/天)=10功能,下面的表格會(huì)告訴你,由于負(fù)載不均衡,測(cè)試人員在周一沒(méi)有功能可測(cè),團(tuán)隊(duì)其實(shí)無(wú)法在一周內(nèi)交付10個(gè)功能。
表一)
那么我們改變一下條件,假設(shè)團(tuán)隊(duì)中有4個(gè)開(kāi)發(fā)人員,并且開(kāi)發(fā)人員可以參與測(cè)試,結(jié)果會(huì)怎樣呢?
表二)
我們最終能夠交付13點(diǎn),產(chǎn)量提高了60%, 如果我們只留下三名全能人員:
表三)
居然比3個(gè)開(kāi)發(fā)人員和1個(gè)測(cè)試的人員組合還多交付兩個(gè)功能!
我們當(dāng)然有理由質(zhì)疑第二題的假設(shè):“開(kāi)發(fā)人員可以勝任測(cè)試人員的職位”。又或者繼續(xù)討論迭代二的數(shù)據(jù)變化。我對(duì)此的的回答是:
第一,以我的觀察來(lái)看開(kāi)發(fā)人員之所以不進(jìn)行測(cè)試工作,不是能力不允許,而是主觀上認(rèn)為測(cè)試工作是簡(jiǎn)單、重復(fù)而枯燥的,不愿意作??陀^上開(kāi)發(fā)人員們比較貴也更難于培養(yǎng),組織層面不允許這樣的“浪費(fèi)”。
對(duì)測(cè)試工作的偏見(jiàn)客觀上促成了大量不具備技術(shù)能力的人選擇測(cè)試工程師作為職業(yè),而技能不足則一步導(dǎo)致了測(cè)試工作傾向于簡(jiǎn)單重復(fù)。測(cè)試人員在很大程度上無(wú)法判斷什么是正確的事情(作正確的事),從而更傾向于熟練的按照腳本進(jìn)行操作(正確的做事)。
第二,我的關(guān)注點(diǎn)不在交付8點(diǎn)還是10點(diǎn),我希望這個(gè)例子能夠引發(fā)大家對(duì)于均衡生產(chǎn)的思考。
軟件的需求和實(shí)現(xiàn)可以被細(xì)化,但它畢竟不是大頭針,需求和實(shí)現(xiàn)間往往呈現(xiàn)出關(guān)聯(lián)與依賴,換言之,局部效率的增加無(wú)法直接轉(zhuǎn)換為整體效率的增加。而整體效率的優(yōu)化往往依賴于均衡生產(chǎn)(參考表三),即消除生產(chǎn)的波峰(過(guò)度生產(chǎn))和波谷(生產(chǎn)不足),避免任務(wù)時(shí)松時(shí)緊,松時(shí)生產(chǎn)力浪費(fèi)(周一時(shí)專職測(cè)試人員),緊時(shí)加班加點(diǎn),粗制濫造。
我傾向于認(rèn)為亞當(dāng)·斯密對(duì)勞動(dòng)分工論述的假設(shè)是:需求穩(wěn)定,簡(jiǎn)單生產(chǎn)。對(duì)于IT領(lǐng)域來(lái)講,這些假設(shè)還成立么?
擰螺絲的卓別林
不難發(fā)現(xiàn),對(duì)分工以及個(gè)體效率的迷信已經(jīng)深刻