在最近的一次活動(dòng)中,有一位經(jīng)理把我拉到一邊,對(duì)我說(shuō):“Johanna,對(duì)于敏捷這東西,我總有些不太明白。顯而易見(jiàn),并不是所有人都被100%利用了?!?/p>
“他們沒(méi)有被100%利用又怎么樣呢?你覺(jué)得這有問(wèn)題?”
“見(jiàn)鬼,是的。我付他們工資!因此,我想知道我會(huì)從他們身上獲得滿滿的價(jià)值!”
“如果我告訴你,你獲得的價(jià)值可能比你支付的要多,也許有1.5~2倍,你覺(jué)得怎么樣?那樣你就開(kāi)心了吧?”
那位經(jīng)理平靜下來(lái),然后轉(zhuǎn)向我,繼續(xù)問(wèn):“你怎么知道的?”
我微笑著說(shuō):“以后再告訴你?!?/p>
有太多太多的經(jīng)理相信“100%利用”的神話。那是一種信仰——每個(gè)技術(shù)人員在每一天里的分分秒秒都必須被充分利用。這個(gè)神話的問(wèn)題在于,人們沒(méi)有時(shí)間去創(chuàng)新,沒(méi)有靈感,也沒(méi)時(shí)間去探索。
更糟糕的是,還會(huì)出現(xiàn)僵局。在一個(gè)人被100%利用的情況下,你在A項(xiàng)目上需要他的時(shí)候,他可能正在做著B(niǎo)項(xiàng)目。你們無(wú)法聚集起來(lái)開(kāi)一個(gè)會(huì)。你不能打一通電話。你甚至沒(méi)有合理的時(shí)間去回復(fù)郵件。為什么呢?因?yàn)槟銓?duì)各種其他打擾已經(jīng)應(yīng)接不暇了。
我們?yōu)槭裁磿?huì)這樣?
回到早期的計(jì)算,機(jī)器比程序員要昂貴幾個(gè)數(shù)量級(jí)。在20世紀(jì)70年代,在我開(kāi)始以程序員身份打工那會(huì)兒,那時(shí)的公司可能會(huì)給經(jīng)驗(yàn)極其豐富的程序員支付5萬(wàn)美元的年薪。而對(duì)于那些剛剛從學(xué)校走出來(lái)的新手,公司支付的年薪可能不到1.5萬(wàn)美元。我們當(dāng)時(shí)覺(jué)得已經(jīng)賺得非常多了!相比之下,公司可能每年花很多萬(wàn)美元的錢(qián)去租賃機(jī)器,或者花數(shù)百萬(wàn)美元買(mǎi)下機(jī)器。你可以看到,薪資水平與機(jī)器成本之間相去甚遠(yuǎn)!
在電腦有那么貴的時(shí)候,我們利用了機(jī)器時(shí)間的每一秒鐘。為了上機(jī),我們需要登記。我們?cè)谧郎蠙z驗(yàn)自己的工作。我們進(jìn)行設(shè)計(jì)評(píng)審和代碼評(píng)審。我們珍惜上機(jī)時(shí)間的每一分鐘—沒(méi)錯(cuò),我們的工作常常受限于CPU的一分鐘時(shí)間。如果你想用更多的時(shí)間,那就預(yù)約下班時(shí)間吧,比如半夜2點(diǎn)~4點(diǎn)。
需要注意的是,那時(shí)候珍稀的不只是上機(jī)時(shí)間,還有內(nèi)存。在那古老的歲月里,我們的內(nèi)存只有256字節(jié),代碼是用匯編語(yǔ)言寫(xiě)的。我們的代碼要分頁(yè)。如果你有一段程序超過(guò)一頁(yè),你得在一頁(yè)的末尾轉(zhuǎn)移到另一頁(yè)有空的地方,以便于換入。(這常常需要手工完成。噢……我一點(diǎn)也不懷念那個(gè)舊年代!)
到20世紀(jì)70年代后期以及80年代,微型電腦的出現(xiàn)拉近了程序員薪水與電腦價(jià)格之間的差距。不過(guò),也只有當(dāng)微型電腦的價(jià)格真正下來(lái)了、并且個(gè)人電腦開(kāi)始主導(dǎo)市場(chǎng)的時(shí)候,程序員的身價(jià)才變得比電腦貴多了去了。到那時(shí)候,很多人都覺(jué)得,讓程序員獨(dú)占電腦的工作方式成本更低,這比設(shè)計(jì)評(píng)審、代碼評(píng)審或與其他人討論架構(gòu)更有效。
到了20世紀(jì)90年代,盡管電腦、硬盤(pán)和內(nèi)存的價(jià)格持續(xù)下跌,程序員和測(cè)試人員的身價(jià)也變得越來(lái)越貴,我們中的一些人清楚地認(rèn)識(shí)到,軟件開(kāi)發(fā)更多是一種合作,而不只是程序員單獨(dú)面對(duì)電腦那么簡(jiǎn)單。這也便是為什么Watts Humphrey和軟件工程研究所在90年代備受矚目的原因。不是因?yàn)槿藗兿矚g繁瑣的流程,而是因?yàn)椋ㄌ貏e是在一個(gè)串行周期里)你必須采取一些措施,以使得系統(tǒng)開(kāi)發(fā)收獲更大的成功。很多管理者陷入了“100%利用”的思維泥潭。需要注意的是,“100%利用”的概念在當(dāng)時(shí)被提出了沒(méi)多久,并且很受重視!
譯者注:Watts Humphrey(1927—2010)在軟件工程領(lǐng)域享有盛譽(yù),被美國(guó)國(guó)防軟件工程雜志《CrossTalk》評(píng)為影響軟件發(fā)展的十位大師之一。他在IBM工作了27年,負(fù)責(zé)管理IBM全球產(chǎn)品研發(fā)。離任后,受美國(guó)國(guó)防部委托,加入卡內(nèi)基·梅隆大學(xué)軟件工程研究所(SEI),領(lǐng)導(dǎo)SEI過(guò)程研究計(jì)劃,并提出了能力成熟模型(CMM)思想。在CMM浪潮席卷軟件工業(yè)界之時(shí),他又力推個(gè)人軟件過(guò)程(PersonalSoftware Process,PSP)和團(tuán)隊(duì)軟件過(guò)程(TeamSoftware Process,TSP),成為軟件開(kāi)發(fā)人員和開(kāi)發(fā)團(tuán)隊(duì)的自修寶典。他的著作頗豐,《軟件工程規(guī)范》、《個(gè)體軟件過(guò)程》、《軟件制勝之道》等都已成為經(jīng)典。
當(dāng)一臺(tái)單進(jìn)程的電腦被完全利用的時(shí)候,請(qǐng)記住這意味著:它一次只能做一件事;它不能服務(wù)于任何中斷;它不能響應(yīng)任何鍵盤(pán)輸入;它不能更新?tīng)顟B(tài);它只能一直處理下去,直到完成。
如果程序表現(xiàn)良好,并且不受限于I/O、內(nèi)存或CPU,運(yùn)行在一臺(tái)單用戶(hù)、單進(jìn)程的機(jī)器上,比如只有加減乘除功能的個(gè)人計(jì)算器,那也許還沒(méi)事。但只要你加入另外一個(gè)用戶(hù)或者另一個(gè)進(jìn)程,你就麻煩了。(或者,如果程序表現(xiàn)不正常、沒(méi)能很好地完成,你也會(huì)陷入麻煩之中。)
現(xiàn)代的電腦就是那樣?,F(xiàn)代電腦都是多進(jìn)程的機(jī)器。
對(duì)于多進(jìn)程的機(jī)器,如果一臺(tái)電腦被完全利用,你會(huì)看到系統(tǒng)抖動(dòng),可能還會(huì)僵死。想一想高峰時(shí)期的公路,沒(méi)有一輛車(chē)動(dòng)得了;這時(shí)候,公路是被100%利用了啊。但是,我們不想公路被100%利用。我們也不想讓眼前的電腦滿負(fù)荷運(yùn)行。如果你的電腦被用到了50%~75%,你會(huì)感覺(jué)它變慢了。而高于85%時(shí),電腦會(huì)有難以預(yù)期的表現(xiàn)。它們的生產(chǎn)力是不可預(yù)期的,你無(wú)法判斷會(huì)發(fā)生什么狀況。
遺憾的是,人類(lèi)也面臨同樣的問(wèn)題。
為什么100%利用不適用于人
現(xiàn)在,想一想我們自己。當(dāng)我們?cè)?00%利用的狀態(tài)中時(shí),我們根本沒(méi)有閑暇時(shí)間。我們?cè)诟鞣N任務(wù)或干擾之間疲于奔命,沒(méi)時(shí)間思考。這時(shí)候,至少有兩方面的問(wèn)題:難以避免的多任務(wù),以及沒(méi)有思考。
實(shí)際上,我們根本不是多任務(wù)并行——只不過(guò)是快速切換而已。我們不像電腦;電腦在切換時(shí),它們把內(nèi)存里的東西完美地拷貝到磁盤(pán)上,當(dāng)需要換入的時(shí)候,能夠再次把數(shù)據(jù)讀進(jìn)來(lái)。因?yàn)槲覀兪侨?,我們不能完美地把我們腦子里的東西備份出來(lái),后續(xù)也無(wú)法再完美地恢復(fù)。因此,切換是有成本的,因?yàn)槲覀冊(cè)谔幚砥渌碌臅r(shí)候必須記住之前腦子里在想的東西。那也需要占用時(shí)間。
因此,這里有一個(gè)情境切換的問(wèn)題,我們需要花費(fèi)時(shí)間把腦子里的東西換出去、換回來(lái)。所有這些時(shí)間和不完美會(huì)累加起來(lái)。因?yàn)槲覀兪侨?,我們不能為各個(gè)任務(wù)完美地分配自己的時(shí)間。假設(shè)我們手上有3個(gè)任務(wù),我們不能做到在每個(gè)任務(wù)上花費(fèi)33%的時(shí)間——只要我們樂(lè)意,我們想在一個(gè)任務(wù)上花多少時(shí)間就花多少時(shí)間,平均33%只是一個(gè)假設(shè)罷了。
接著,讓我來(lái)解決100%利用中沒(méi)有思考的問(wèn)題。如果你想讓大家考慮換一種新的工作方式,怎么辦?如果你令他們滿負(fù)荷地工作,他們會(huì)嘗試嗎?沒(méi)機(jī)會(huì)!他們不會(huì)考慮,因?yàn)樗麄儧](méi)有時(shí)間。
因此,你讓大家機(jī)械地工作:用他們了解的最佳方式去服務(wù)于各種中斷、做盡量小塊的工作、做到足夠多就算通過(guò)。他們不會(huì)想辦法去提高。他們不會(huì)想辦法去幫助別人。他們不會(huì)嘗試創(chuàng)新。他們只是在想,“我怎樣才能從這堆積如山的工作中解脫出來(lái)?”這對(duì)他們來(lái)說(shuō)是很恐怖的,對(duì)產(chǎn)品也不好,對(duì)與他們打交道的任何人都不好。
當(dāng)你讓人們工作在100%利用的狀態(tài),與你計(jì)劃讓他們每天大概只干6小時(shí)的技術(shù)活比起來(lái),你從他們那里得到的工作成效會(huì)小得多。人們需要時(shí)間去閱讀郵件,去參加臨時(shí)的會(huì)議,休息一下,進(jìn)行一些架構(gòu)方面的討論,喝杯咖啡,或者做點(diǎn)別的什么事。如果你為上午計(jì)劃一大塊的工作,為下午再安排幾個(gè)大塊的工作,并把會(huì)議的數(shù)量降到最低,技術(shù)人員會(huì)很好地完成分配給他們的工作。
如果你在一個(gè)喜歡開(kāi)會(huì)的組織里工作,你甚至不能計(jì)劃每天6小時(shí)的技術(shù)活——你必須計(jì)劃得更少一點(diǎn)。會(huì)議在浪費(fèi)人們的時(shí)間。
但不管怎么樣,如果你按照100%利用來(lái)計(jì)劃,在整個(gè)組織范圍內(nèi)完成的工作會(huì)少得多。你營(yíng)造了一個(gè)可怕的工作環(huán)境,這還是一個(gè)沒(méi)有創(chuàng)新的環(huán)境。那不像是一條成功之道,是吧?
敏捷和精益讓神話破滅
敏捷和精益不會(huì)使“100%利用”煙消云散,但它們讓神話破滅了。通過(guò)把所有的工作裝進(jìn)Backlog(一個(gè)管理積壓工作的倉(cāng)庫(kù)),這有助于管理層和研發(fā)團(tuán)隊(duì)看清楚每個(gè)人應(yīng)該做的事情,以及大家面臨著多大的挑戰(zhàn)。這很不錯(cuò)!
一旦每個(gè)人可以把工作可視化,你就能?chē)@它開(kāi)展工作了。也許某些工作確實(shí)與產(chǎn)品路線圖相關(guān),但不必在這個(gè)迭代里完成。也許有些工作是為另外一個(gè)項(xiàng)目做的,應(yīng)該被推遲到下一個(gè)迭代周期。這很好——這就是項(xiàng)目組合管理。也許有些工作應(yīng)該由某人來(lái)做,而不是這個(gè)團(tuán)隊(duì)來(lái)做。這很好——相關(guān)管理者需要出面協(xié)調(diào)。
不管你做什么,只有你看到了工作,你才能有所作為。只要你完全地把工作可視化,你就能管理。
記住,如果你被100%利用,那就沒(méi)人能做事了。如果你想為你的組織貢獻(xiàn)實(shí)足的價(jià)值,你需要讓自己被“利用”到50%~60%。因?yàn)槔速M(fèi)思想(不管什么思想)是件可怕的事。
聯(lián)系客服