溫伯格的軟體管理學:系統化思考(第1卷)
 傑拉爾德‧溫伯格(Gerald M. Weinberg)/著,
 曾昭屏/譯
 經濟新潮社出版
 售價:650元

我只是個受害者
我在1956年曾預言FORTRAN這種程式的壽命撐不過三年,而這只是我的職業生涯中所犯下的諸多重大錯誤中的第一個。讓我告訴你我是如何差一點就鑄下另一個更大錯誤的故事。

失敗與成功之間的區別
在1961年,我任職於IBM的系統研發中心時,負責帶領一批學生所做的研究案是專門探討那些已宣告失敗的軟體開發專案。學生訪談過的專案經理有一打,歸納出造成每一個專案失敗的所有因素。我仔細研讀這些因素後發現,它們唯一的共同點就是運氣不好。諸如電腦中心鬧水災、感冒大流行、在緊要關頭掛頭牌的員工離職、暴風雪來襲、程式的原始檔受損、甚至還遇上大地震。顯然,這些專案經理個個都是自然界定律的受害者。

學生寫了篇報告把這個既驚人又令人沮喪的發現給記錄下來。我拿來稍事修改,加了些我自己的看法,並打了幾通電話給雜誌社的編輯徵詢他們的意見。有一個編輯問我為什麼不用較正面的語氣來談談所有的成功專案有何共同的因素。

「我們沒有去研究任何成功的專案。」我說。

「那麼,你們怎麼知道那些專案沒有遇上運氣不好的事呢?」(喀嗒)

那個「喀嗒」是他的電話斷線也是──在千分之一秒後──我的大腦回過神來的聲音。我們立刻抽回那篇報告,另外找了一組學生針對成功的專案再做一次類似的調查。這些專案中的每一個,同樣的,也都遇到過某種天然的災害,但是卻有完全不同的結果。
尤其讓人訝異的是,電腦中心同樣遭火災侵害之後這兩種機構有截然不同的反應。有一個專案就宣告徹底失敗,而別的專案卻能恢復過來,差別就在處置方式的不同:

1. 所有原始程式的備份早已在公司外的某地另行存放,因而未同遭火災波及。而失敗的專案雖也有做備份,但未定時照規定執行。

2. 硬體用的都是標準架構,因此受損的部分可毫不考慮就加以更換。但失敗的專案卻為了省下幾千美金而使用「接近標準」的硬體。

3. 專案的全體成員都有意願也有能力全力投入並加班工作來做善後處理、檔案回復、以及專案文件的整理等。但失敗的專案則有大約兩成的員工拿這場火災做為另謀他職的機會和藉口。

4. 既然無論如何一切都得重新開始,成功的專案趁機找顧問來幫忙,利用這場火災做為重新改組的契機。但在失敗的專案中,大家所能看到的唯一機會是,可以把火災發生前眾人都認為難以卸除的失敗責任一股腦兒都推給這場大火。

簡言之,會造成不同結果的倒不是事件的本身,而是他們對於該事件所做的反應。成功專案的反應是承認自己走霉運,然後擔起復原的責任,甚至抓住機會利用這場災難所帶來的一些優勢。反之,失敗專案則逮到讓自己裝成受害者的機會。正如某位經理所說的:「我又能做什麼呢?整個辦公室都燒成了灰燼。」

受害者的語調
從那次之後,我再也沒有接過其他電腦中心遭回祿的顧問案,可是,當然還是有許多遭遇其他麻煩的專案找我去幫忙。在這些顧問案的期間,我總是會注意去聽經理人員的口中是否出現受害者的語調。若我聽到任何的一句,我就與這些自我宣稱的受害者共同製作一份效應圖,並將所有可能需要人為控制的時間點都清楚地標示出來。

一段典型的受害者語調即一個經理會說:「專案的時程落後,我也無能為力,因為布魯克斯定律說我不可能增加人手而不使專案落後得更多。」讓我們來檢查看看該如何把受害者的語調化為控制者的語調。

愛黛拉是一個專案經理,她在加派工作人員之後發現專案進度開始落後。此時,愛黛拉還是可以繼續加派工作人員,但這麼一來將會造成一個正向的反饋迴路,若是沒有管理階層的干預就不會出現這樣的迴路,如同我們在圖6-4中所看到的。當他們找我去幫忙時,我做的第一件事就是向愛黛拉說明,為什麼她所做出的決定就是讓事態惡化的元兇。這個做法說服她不再繼續加派人手,但我想要表達的還不止於此。

圖8-2(編註:圖略)顯示我是如何將圖6-4(編註:圖略)加以重新繪製,以利用它來向愛黛拉強調在某些地方是由她所控制的。
人為決定的時點是在既不妨礙有經驗員工之工作也不增加協調工作之負擔的前提下找出增加人手的方法。找出這樣的方法是愛黛拉的責任,不過這還是一個容易解決的問題。一旦她認清事實上自己並不是一個無助的受害者,她就採取一些步驟來控制「新進人員之數量」對「已完成之具生產力的工作」所產生的效應。首先,她指派部分的新進人員去:

審查設計和程式碼
修改專案的相關文件
設計測試案例
當其他的工作人員有需要時幫忙打雜

這麼一來,雖然她繼續添加新人(這麼做是出於她自己的選擇,如圖8-3(編註:圖略)中灰色的方塊所示),但她讓新人的效應成為正向的(如圖8-3(編註:圖略)中白色的人為控制方塊所代表的)。在這麼做的同時,愛黛拉還在有經驗人員的身上增加了一些工作的負擔,不過對此她是有控制的,她發出嚴格的命令,規定未取得她的同意前任何人不得去找有經驗人員討論問題。這種對於「新進人員之數量」對「待完成之工作總量」所產生之效應做局部的控制,可由圖8-3(編註:圖略)中灰白各半的符號來表示。

簡言之,愛黛拉挑起「創造屬於自己的定律」的重責大任,一如圖8-3(編註:圖略)中的那個新效應圖所展現的。與此相反,如果你偏愛自然定律的確定感,我可以推薦你一條與人類行為有關的定律,它同樣具有那種天然的可預測性。不論何時當你說出
「那件事我做不到」,你所說的將永遠是對的。不過麻煩的是,有時你會變成一個沒用的受害者。

我不想再聽到任何那類負面的講法
即使經理人員願意對自己所採取的控制行動負全責,他們還是會做不好,除非他們擁有正確的觀察結果且據以採取行動。正確的觀察不會無端發生,唯有費心將管理階層做決定的工作做好方能達到。
彼得是個軟體開發的經理,表面看來他對軟體的開發過程還算了解,可是在處理因程式品質不良而造成的危機時,他卻不斷地做出不當的干預。調查過彼得所負責的幾個專案後,我們發現他那些不當決定的起因倒不是他的判斷力不好,而是他所得到的與軟體品質真實狀態有關的資訊,容易使人產生錯誤的解釋。

造成資訊品質欠佳的原因又是什麼呢?當專案開始出現品質的問題時,因為害怕將問題如實以報不知會造成怎樣不可測的惡果,這使得人們寧可採取會破壞報告正確性的行動。例如,測試工程師會把所找出的問題當場即予解決,而不循正式管道把問題報告出來。其次,測試小組的負責人在做問題的歸類時會把問題的嚴重性做向下修正。第三,程式設計師在改正過好幾個程式的錯誤後,在報告上卻寫成只因有一個程式上的錯誤而造成許多軟體功能失常的現象。程式設計小組的負責人會盡量把許多軟體功能失常的現象都歸類為「顧客對文件的解讀錯誤」或「作業系統上的毛病」。這樣的分類法會分散人們的注意力,不把矛頭對著程式設計小組。最後,專案經理會將軟體的故障報告(trouble report)加以「調整」,朝「最有利的」方向來解釋。

這些做法會產生一堆嚴重誤導他人的報告。沒有哪個控制者能夠以這樣的報告為基礎而做出有智慧的干預行動。為了向彼得展示我們所認為的真實情況,我們畫出圖8-4的正向反饋迴路。

圖8-4.對於如實報告壞消息所可能產生的後果若心存畏懼,將導致刻意去扭曲軟體的故障報告之行為,使得經理不大可能去採取有意義的干預行動。如此一來對於不良的品質會造成一個正向的反饋迴路。

彼得看到這張效應圖後,他的反應是用受害者的語氣說出:「這個嘛,如果這就是真實的情況,我也束手無策。你看,在這個迴路中並沒有人為決定的時點。當有一大堆問題的時候,一般人自然而然就會對如實以報心生畏懼,此外,如果他們是真的害怕了的話,他們總是會找出辦法讓事情能夠變得好看些。如果我拿到的報告是不正確的,也沒有什麼事是讓我做了之後可顯示我的優秀,而我如果原本就不是一個優秀的經理,品質問題必然會一個接一個的出現。因此,照你自己所訂的模型來看,我是卡在一個正向的反饋迴路裡出不來了。」

彼得說的也有部分的道理。如果圖8-4是一個完整的動態圖,他的確是無法可救了。不過一個經理總是有辦法在系統裡添加一些東西而製造出一個嶄新的圖型。我們兩人合力,弄出了如圖8-5所顯示的效應圖,其中增加了一種可能性,那就是經理人員(或許在無意間)會懲罰為品質問題提供正確量測數據的那些人,並將這類的反饋稱為「負面的講法」。此一做法還會製造出另一個反饋迴路,即再度強化人們對於「交出一份情況看來不妙的報告」與生俱來的恐懼。

圖8-5.經理對於「品質的問題報告」的一種可能反應就是去懲罰報告者。另一不同的做法是對正確的報告給予獎勵,這麼做或許無法讓畏懼之心消弭於無形,但卻有助於使畏懼之心受到控制。

雖然這第二個反饋迴路看起來似乎會讓事情變得更糟,但它確實提供了一個人為決定的時點,使得「更糟」或「更好」都能受到控制。經理人員對於提供「正確但令人感到不快的資訊」的那些人不必然要施以懲罰。如果對報信者施以懲罰會導致資訊系統的癱瘓,何不採取一些步驟來扭轉這樣的效應,並對正確的報告給予獎勵呢?將這類懲罰的效應加以扭轉後會創造一個具穩定效果的負向反饋迴路,不但可防止對正確報告的天生恐懼,又使情況不致完全失控。

我希望我能夠向讀者報告說彼得立刻就將這個錯誤的情況矯正過來了,但是他怎麼可能做到呢?如我們所見,像這樣的非線性情況是不容易被扭轉的。信任要建立起來得花上許多年的工夫才可能,但要將之摧毀殆盡卻只需片刻。彼得真心的展開一個管理階層的訓練方案,特別著重在溝通的技巧。他自己第一個報名參加,樹立了一個良好的典範。

我在彼得的公司擔任顧問好長一段時間,長到足以親耳聽到他改變了自己在不經意間所用的強烈語言,但還不足以親眼見到他在去除模式2「視負面講法為禁忌」的工作上是否成功。正如在所有以恐懼為主要變數的場合中,預防工作比起治療工作當然要容易上十六倍。人們很容易就會落入對自己上司會做出最壞反應的恐懼之中,因此,並不需要力量強大的動態圖即可引爆這種恐懼的情緒。

在接下來的幾章中,我們將會再舉出許多的例子來說明,像這類無意識或無深度知識的管理決策方式會製造出正向的反饋迴路,並因此而導致難以挽救的無生產力狀態。更重要的是,我們也將看到,能夠做出有意識、有深度知識之決策的經理人員是如何製造負向的反饋迴路,並因此而終於恢復原有的生產力──或許還能夠防止相同的情況下一次不再發生。

我以為我做的是對的

人們經常會根據錯誤的干預模型來採取行動。他們以為他們做的是對的,但其實不然。更糟的是,有時人們還會把干預模型給弄反了。他們以為自己做的是對的,但其實他們所做的卻完全錯誤。在此提供一個讓人發笑的故事,故事中我扮演的就是愚蠢的受害者角色:

丹妮與我買了一個有兩個控制器的電毯,讓我們的老骨頭免受內布拉斯加州的嚴寒之苦。我們買回家的頭一個晚上,它竟然罷工,害得我倆飽受折磨。我們把它拿回Sears百貨公司,售貨員說他很樂於替我們換個新的。不過,他先徵詢我們是否可讓他先檢查一下控制器。之後,他向我們證明兩個控制器不小心給接反了,導致如圖8-6中的效應圖。

圖8-6.有雙重控制開關的電毯若是接反了會如何。

此動態圖並不是一個受害者的動態圖,而是取決於我們所採取的有意識行動為何,但此行動所根據的「電毯實際是如何在運作」之模型不巧是錯的。我的模型說:「當我把我的控制器調低,我這一邊的床會變得較冷。」丹妮的模型說:「當我把我的控制器調高,我這一邊的床會變得較暖。」這兩個模型本可以運作得很好,應該讓我們兩人都感到舒適才對,唯一的例外是控制器給接反了。於是,系統的動態圖進入一種失控的狀態,一路朝著電毯所可能帶來最大的不舒適狀態前進。

丹妮與我二人所擁有的模型都與電毯實際是如何在運作恰恰相反。當她感到過冷的時候,就調高她的控制器以試圖改善狀況。這麼一來害得我變得太熱,而我的模型又要求我將我的控制器調低,這個動作實際上卻導致丹妮那邊變得更冷。因此,到了最後,她打算使自己再暖一些的行動實際上卻導致一種回力棒(自食惡果)的效應,比起完全不做任何事,這些動作反而會使她變得更冷。

我實在忍不住要將我的不舒適全都怪罪丹妮(而她則想怪罪給我),不過,在這樣的系統裡,若問誰在控制誰是毫無意義的。若真要說是誰,就是當初把控制器接上電毯的那個人在控制每一個人,不過,更正確的說法可能是,是我們的無知在掌控。或許這正是為什麼怪罪他人是許多模式2機構的一大特色。

當然,這條線路接反了的電毯可忠實呈現出模式2的軟體機構中許多真實情況的模型。再舉一例,聯合雪茄租賃公司正努力試圖要朝模式3邁進。例如,他們採納了吉爾伯(Gilb)的進化式的方法來開發一個訂單輸入系統。聯合雪茄租賃的某些內部顧客對於其微型專案的品質並不滿意,且對於加強系統功能的新版本要延遲到下一個微型專案才出得來也感到很不高興。他們催促開發人員要加快交貨的腳步。這些人同時還要求應有更多的功能,尤其是復原的功能,因為軟體經常會無緣無故就掛了。他們在心中也暗忖,既然已經多等了這麼久的時間,單單為了這份耐性他們就該有更多的功能以為回報。

開發部門為了讓所有的新功能可如期交貨,於是在下一個微型專案中任由品質下滑。顧客用了錯誤的模型來模擬軟體的開發工作,從此事得到了證明,並隨著下一個微型專案又開始另一個新的循環。(參考圖8-7。)

圖8-7.軟體開發人員和顧客之間有可能就像電毯內部的線路一樣完全接反了。

聯合雪茄租賃極力想走出這樣的困境,方法是採行三大策略:教導雙方明瞭如圖8-7所示的動態學模型;讓雙方看清楚彼此確實都有屬於自己的控制點,只是他們將這些控制點給弄反了;協商出一段時間來培養彼此的互信,在此期間內顧客減少施壓,而開發人員則削減願意承諾的功能並延長交貨的時間。此策略最後得以成功,要歸功於聯合雪茄租賃採用了微型專案的做法,因為沒有哪個行動的規模會大到讓任何一方不願接受的程度。

有一個程式設計師向我建議,只要他的主管們願意把他們所做的每一個管理上的決定都顛倒過來,那麼他們在管理工作上就會有優異的表現。不幸的是,這不太容易做到。電毯的回力棒現象是希臘神話故事中最常出現的主題,這要比電毯或軟體的問世還要早數千年。伊底帕斯(Oedipus)的父親想要避免自己在預言中的死亡;但他所採取的行動卻再再導致了他的死亡。伊底帕斯一心想要找出真相,而他所採取的行動卻讓他盲目。為了避免這種回力棒的現象,你必須了解什麼是反饋效應,以及你該如何去對付它。(本文摘錄自第8章)

《作者簡介》拉爾德‧溫伯格(Gerald M. Weinberg)
是美國軟體工程界大師級的人物。在40多年的軟體業生涯中,他曾任職於IBM、Ethnotech、水星計畫(美國第一個載人太空計畫),並曾任教於多所大學。他更是傑出的軟體專業作家和軟體管理思想家,因對技術問題與人性問題所提出的創新思考法而為世人所推崇。1997年,溫伯格因其在軟體領域的傑出貢獻,入選為美國計算機博物館的「計算機名人堂」成員。他也榮獲J.-D. Warnier獎項中的「資訊科學類卓越獎」,此獎每年一度頒發給在資訊科學領域對理論與實際應用有傑出貢獻的人士。

溫伯格共寫了30幾本書,包括《顧問成功的祕密》、《你想通了嗎?》、《領導的技術》(以上皆由經濟新潮社出版)、《程式設計的心理學(25週年紀念版)》、《探索需求》、一共四冊的《溫伯格的軟體管理學》等,這些著作主要涵蓋兩個主題:人與技術的結合;人的思維模式、思維習慣與解決問題的方法。在西方國家,溫伯格擁有大量忠實的讀者群。溫伯格現為Weinberg and Weinberg顧問公司的負責人。

熱門新聞

Advertisement