在最近的一次活動中,有一位經理把我拉到一邊,對我說:「johanna,對於敏捷這東西,我總有些不太明白。顯而易見,並不是所有人都被100%利用了。」
「他們沒有被100%利用又怎麼樣呢?你覺得這有問題?」
「見鬼,是的。我付他們工資!因此,我想知道我會從他們身上獲得滿滿的價值!」
「如果我告訴你,你獲得的價值可能比你支付的要多,也許有1.5~2倍,你覺得怎麼樣?那樣你就開心了吧?」
那位經理平靜下來,然後轉向我,繼續問:「你怎麼知道的?」
我微笑著說:「以後再告訴你。」
有太多太多的經理相信「100%利用」的神話。那是一種信仰——每個技術人員在每一天裡的分分秒秒都必須被充分利用。這個神話的問題在於,人們沒有時間去創新,沒有靈感,也沒時間去探索。
更糟糕的是,還會出現僵局。在乙個人被100%利用的情況下,你在a專案上需要他的時候,他可能正在做著b專案。你們無法聚集起來開乙個會。你不能打一通**。你甚至沒有合理的時間去回覆郵件。為什麼呢?因為你對各種其他打擾已經應接不暇了。
我們為什麼會這樣?
回到早期的計算,機器比程式設計師要昂貴幾個數量級。在20世紀70年代,在我開始以程式設計師身份打工那會兒,那時的公司可能會給經驗極其豐富的程式設計師支付5萬美元的年薪。而對於那些剛剛從學校走出來的新手,公司支付的年薪可能不到1.5萬美元。我們當時覺得已經賺得非常多了!相比之下,公司可能每年花很多萬美元的錢去租賃機器,或者花數百萬美元買下機器。你可以看到,薪資水平與機器成本之間相去甚遠!
在電腦有那麼貴的時候,我們利用了機器時間的每一秒鐘。為了上機,我們需要登記。我們在桌上檢驗自己的工作。我們進行設計評審和**評審。我們珍惜上機時間的每一分鐘—沒錯,我們的工作常常受限於cpu的一分鐘時間。如果你想用更多的時間,那就預約下班時間吧,比如半夜2點~4點。
到20世紀70年代後期以及80年代,微型電腦的出現拉近了程式設計師薪水與電腦**之間的差距。不過,也只有當微型電腦的**真正下來了、並且個人電腦開始主導市場的時候,程式設計師的身價才變得比電腦貴多了去了。到那時候,很多人都覺得,讓程式設計師獨佔電腦的工作方式成本更低,這比設計評審、**評審或與其他人討論架構更有效。
到了20世紀90年代,儘管電腦、硬碟和記憶體的**持續**,程式設計師和測試人員的身價也變得越來越貴,我們中的一些人清楚地認識到,軟體開發更多是一種合作,而不只是程式設計師單獨面對電腦那麼簡單。這也便是為什麼watts humphrey和軟體工程研究所在90年代備受矚目的原因。不是因為人們喜歡繁瑣的流程,而是因為(特別是在乙個序列週期裡)你必須採取一些措施,以使得系統開發收穫更大的成功。很多管理者陷入了「100%利用」的思維泥潭。需要注意的是,「100%利用」的概念在當時被提出了沒多久,並且很受重視!
當一台單程序的電腦被完全利用的時候,請記住這意味著:它一次只能做一件事;它不能服務於任何中斷;它不能響應任何鍵盤輸入;它不能更新狀態;它只能一直處理下去,直到完成。
如果程式表現良好,並且不受限於i/o、記憶體或cpu,執行在一台單使用者、單程序的機器上,比如只有加減乘除功能的個人計算器,那也許還沒事。但只要你加入另外乙個使用者或者另乙個程序,你就麻煩了。(或者,如果程式表現不正常、沒能很好地完成,你也會陷入麻煩之中。)
現代的電腦就是那樣。現代電腦都是多程序的機器。
對於多程序的機器,如果一台電腦被完全利用,你會看到系統抖動,可能還會僵死。想一想高峰時期的公路,沒有一輛車動得了;這時候,公路是被100%利用了啊。但是,我們不想公路被100%利用。我們也不想讓眼前的電腦滿負荷執行。如果你的電腦被用到了50%~75%,你會感覺它變慢了。而高於85%時,電腦會有難以預期的表現。它們的生產力是不可預期的,你無法判斷會發生什麼狀況。
遺憾的是,人類也面臨同樣的問題。
為什麼100%利用不適用於人
現在,想一想我們自己。當我們在100%利用的狀態中時,我們根本沒有閒暇時間。我們在各種任務或干擾之間疲於奔命,沒時間思考。這時候,至少有兩方面的問題:難以避免的多工,以及沒有思考。
實際上,我們根本不是多工並行——只不過是快速切換而已。我們不像電腦;電腦在切換時,它們把記憶體裡的東西完美地拷貝到磁碟上,當需要換入的時候,能夠再次把資料讀進來。因為我們是人,我們不能完美地把我們腦子裡的東西備份出來,後續也無法再完美地恢復。因此,切換是有成本的,因為我們在處理其他事的時候必須記住之前腦子裡在想的東西。那也需要占用時間。
因此,這裡有乙個情境切換的問題,我們需要花費時間把腦子裡的東西換出去、換回來。所有這些時間和不完美會累加起來。因為我們是人,我們不能為各個任務完美地分配自己的時間。假設我們手上有3個任務,我們不能做到在每個任務上花費33%的時間——只要我們樂意,我們想在乙個任務上花多少時間就花多少時間,平均33%只是乙個假設罷了。
接著,讓我來解決100%利用中沒有思考的問題。如果你想讓大家考慮換一種新的工作方式,怎麼辦?如果你令他們滿負荷地工作,他們會嘗試嗎?沒機會!他們不會考慮,因為他們沒有時間。
因此,你讓大家機械地工作:用他們了解的最佳方式去服務於各種中斷、做盡量小塊的工作、做到足夠多就算通過。他們不會想辦法去提高。他們不會想辦法去幫助別人。他們不會嘗試創新。他們只是在想,「我怎樣才能從這堆積如山的工作中解脫出來?」這對他們來說是很恐怖的,對產品也不好,對與他們打交道的任何人都不好。
當你讓人們工作在100%利用的狀態,與你計畫讓他們每天大概只幹6小時的技術活比起來,你從他們那裡得到的工作成效會小得多。人們需要時間去閱讀郵件,去參加臨時的會議,休息一下,進行一些架構方面的討論,喝杯咖啡,或者做點別的什麼事。如果你為上午計畫一大塊的工作,為下午再安排幾個大塊的工作,並把會議的數量降到最低,技術人員會很好地完成分配給他們的工作。
如果你在乙個喜歡開會的組織裡工作,你甚至不能計畫每天6小時的技術活——你必須計畫得更少一點。會議在浪費人們的時間。
但不管怎麼樣,如果你按照100%利用來計畫,在整個組織範圍內完成的工作會少得多。你營造了乙個可怕的工作環境,這還是乙個沒有創新的環境。那不像是一條成功之道,是吧?
敏捷和精益讓神話破滅
敏捷和精益不會使「100%利用」煙消雲散,但它們讓神話破滅了。通過把所有的工作裝進backlog(乙個管理積壓工作的倉庫),這有助於管理層和研發團隊看清楚每個人應該做的事情,以及大家面臨著多大的挑戰。這很不錯!
一旦每個人可以把工作視覺化,你就能圍繞它開展工作了。也許某些工作確實與產品路線圖相關,但不必在這個迭代裡完成。也許有些工作是為另外乙個專案做的,應該被推遲到下乙個迭代週期。這很好——這就是專案組合管理。也許有些工作應該由某人來做,而不是這個團隊來做。這很好——相關管理者需要出面協調。
不管你做什麼,只有你看到了工作,你才能有所作為。只要你完全地把工作視覺化,你就能管理。
記住,如果你被100%利用,那就沒人能做事了。如果你想為你的組織貢獻實足的價值,你需要讓自己被「利用」到50%~60%。因為浪費思想(不管什麼思想)是件可怕的事。
怎樣有效利用時間?
總有人說 如果你把看電視的時間用來寫作,早就寫出一部 了!這話確實令人難以反駁 毫無疑問,把時間用在寫 上無疑要比消磨在看電視上更有意義。但是這個說法隱含了這樣乙個假設 時間是 可替換的 你可以輕易地用看電視的時間來寫作。但實際上並非如此。時間的 品質 也不盡相同。比方說,如果在搭地鐵時沒帶記事本,...
如何高效利用時間
拖延症 這個名詞近些年很火,似乎每個人都覺得自己的效率不高,很難集中注意力做好手頭的事,那我們究竟該如何提高自己的工作效率呢,大牛來告訴你 aaron swartz 寫過一篇很有名的文章,叫做 howto be more productive 這篇文章寫的實在是太好了,我看了好多遍,很贊同作者的觀點...
你是怎麼利用時間的?
作為一種資源,時間對每個人都是平等的。要想取得更大的成就,就得更有效地利用時間。對於這一點,相信大家都沒有異議。我不知道您是如何利用時間的,至少對於筆者而言,一直以來,都把時間看得很重 總是期望著自己能夠時時處於緊張的狀態,盡最大的可能從每一分一秒中榨取更多的價值。然而,實際情況卻大多都不如人意,很...