有人說,溫伯格就是Tom DeMarco在《最後期限》這部小說中曾經提到的一位著作等身的顧問,受主角邀請協助解決專案中所遭遇的衝突。我認為這樣的猜想,十分具有信服力。溫伯格可以說是軟體工程界的超級明星,除了入選計算機名人堂之外,他的著作量也相當驚人而且受到歡迎。他不僅有十分豐富的軟體開發實務經驗,長期擔任顧問工作,也讓他對軟體開發及管理在視野上有更寬闊的了解及體認。

而《溫伯格的軟體管理學第1卷,系統化思考》即是他累積多年的實務、教學,以及顧問的經驗,針對如何有效的管理軟體專案,所總結下來的心得及系統性方法。

高品質軟體工作中缺一不可的三大能力

溫伯格認為,對於高品質的軟體工作而言,有三項能力缺一不可:

一、有能力觀察並解讀結果。
二、即便身處十分複雜的人際關係中,仍有能關照全局的行為。
三、有能力了解複雜的情況。

為了說明如何建立這三項重要的能力,溫伯格規畫三本以軟體管理為主軸的系列書。而本書的主題,正是瞄準了最後一項能力的建立──有能力了解複雜的情況。

建立了解複雜情況的能力

有能力了解複雜的情況對軟體專案而言,為什麼是重要的?

不能了解所處的情況,就不能據以進行事先的規畫。不能了解所處的情況,就不能評估目前所遭遇到的問題及困境,以及即將面對的風險,因而不能針對問題及困境提出矯正的措施,也不能針對即將面對的風險,提早做出因應措施。不能了解所處的情況,就不能評估矯正措施所帶來的回饋,是否如我們所預期的修正問題,協助我們擺脫困境,讓專案的進行,回到我們想要的前進動線之上。

我們不能妥善地管理專案,經常是因為我們對專案所面臨的現況一無所知,或者是不知道所採取的行動,是否對專案產生了預期中的控制效應。本書希望介紹一個系統性的思考方式,協助我們透過這個思考方式,來了解專案所處的複雜情境,而清晰的了解,正是好的管理的第一步。

基於軟體次文化模型的系統性思考方法

在這本書中強調的是思考,而且是系統性的思考。

溫伯格的系統性思考方法是怎麼一回事呢?溫伯格以人類學中參與式觀察的方式為基礎,觀察員工的言行,也觀察同一機構中不同部門間言行一致的情況,把所有機構中言行一致的程度加以分類,得出了第一個模式:「渾然不知型」,並且以此為基礎,找出其他五種模式:

● 渾然不知型:我們都不知道我們正循著一個過程在做事。
● 變化無常型:我們全憑當時的感覺來做事。
● 照章行事型:我們凡事皆依照工作慣例(除非我們陷入恐慌)。
● 把穩方向型:我們會選擇結果較好的工作慣例來行事。
● 防範未然型:我們會參照過往的經驗制定出一套工作慣例。
● 全面關照型:人人時時刻刻都會參與所有事務的改善工作。

這樣的模型,基本上和我們所熟知的CMMI成熟度模型有點類似,但溫伯格特別強調,他不使用「成熟度」這個字眼,是因為這個字眼隱含著價值的判斷,暗示著人們模式愈成熟愈好。但溫伯格卻認為,「追求不必要的完美並不是成熟,而是幼稚。」模式只有合適或不合適,端視環境及需求而定。

透過觀察判斷模式

分類模型的建立有助於了解我們所要思考的標的,因為當一個機構表現出某一分類的特質時,這個機構的行為就會像是這分類下機構的表現。所以,倘若能夠透過觀察,將某機構歸於某一分類時,便能預期這個機構本身的特性,以及這個機構接收到控制的刺激時,會有什麼樣的反應。

我的看法是,模型中的每一種分類,都是理想上的純粹分類,沒有任何一個機構完全符合這分類的特性,因為也沒有任何一個機構是完全相同,但至少同一類的機構在大方向上會有共同的特性這是無庸置疑的。

本書的一大重點,便是幫助軟體經理人員在模式之間進行轉換,例如從變化無常型轉變成為照章行事型,或從照章行事型轉變成為把穩方向型。要達成這個目的,得要從機構中人員思考和溝通方式著手,藉以判斷你所屬機構究竟屬於何種模式。

例如,在照章行事型的機構中,「會利用統計的技術,但幾乎總是誤用或誤解了原意」。好比會有經理人員宣稱,開發小組未能投注更多時間在需求和設計上的原因,是因為開發小組花了65%的時間在除錯工作上。

也許透過度量,除錯工作真的占去了開發65%的時間,但這並不是無法在需求或設計上投注更多時間的真正原因。當你所屬組織的人員,呈現出此類的思考方式時,即意謂著你所屬的組織是屬於照章行事型。

透過模式決定改變的方式

了解目前處於那一個模式後,下一步便是要判斷目前所處的模式是否夠好。同樣,溫伯格建立了一個方法,藉著評估顧客的要求以及問題的要求,我們可以找出我們在一個二維空間的位置,並且判斷出應該停留不動,或是往那一個方向移動。

找出了希望改變的方向後,要怎麼進行改變呢?同樣的,溫伯格透過建立管理的控制模式來達成這一個目的。控制是採取一些行為,加一些力道,當然,組織會針對這施力有所反饋,也許朝著你想要的結果發展,但也許不會。為了系統性的分析,溫伯格發展出利用效應圖來分析這動態系統變化的方法,協助我們分析如何施加管理的力道,使得整體方向朝著我們想要的結果前進。

全面且系統性的管理軟體專案

基於上述的基礎,溫伯格在本書中探索了如何與客戶互動、缺陷的模式,以及壓力的模式。

開發軟體的最終目的,在於提供客戶軟體產品或服務,應如何保持與客戶的關係,是軟體管理的重要議題。缺陷在軟體開發工作中始終如影隨形,軟體開發不可能沒有錯誤,這使得我們更應該針對錯誤進行管理。

軟體開發工作,也和任何其他工作一樣,都需要面對壓力,甚至因為軟體專案管理的難度,使得想要趕上開發期限的團隊及成員,都面臨著更大的壓力。如何面對壓力,甚至管理壓力,溫伯格同樣提供了他的方法。

透過系統性思考,建立「問題解決模型」

做為一本軟體管理學的書籍,本書提供了許多管理上的實踐守則及論點。但我認為,最大的價值並不在這些守則,而是在於本書所建構的系統性方法。

本書最大的特色在於它試著去建立起一個模型,然後將各種管理上可能會遭遇的問題,好比品質的問題、面對客戶需求的問題、面臨各式壓力的問題,都放到模型中去探討。雖然書中將軟體次文化分為6種類型,但重點並不在於它究竟被分為多少種類型,或是每一類型的特質為何,重點是在於你必須建立起模式、分類,並標示出每一種類型的典型特性。接著就能透過這個建立起來的模型做為平臺,來檢視、分析每種類型在各種情況下的可能情況。

在軟體管理工作中,具體的實踐方法,是一個可能會持續改變的事情,因為產業的生態、從業人員的文化、公司之間競爭的模式等,都是時時刻刻持續變化的因子。沒有什麼恆久不變、始終一體適用的實踐方法。倘若只留意到本書中,這些令人玩味同時也頗具價值的實踐守則,而忽略了核心價值所在,是相當可惜的一件事情。

如果讀者在讀後能掌握作者所欲表達的系統性思考方法,如能加以演化,就有機會可以演變出適合於自己應用情境的實踐方式。

 

溫伯格的軟體管理學:系統化思考(第1卷)

傑拉爾德.溫伯格/著

曾昭屏/譯

經濟新潮社出版

售價:650元

 

《作者簡介》

王建興

清華大學資訊工程系的博士研究生,研究興趣包括電腦網路、點對點網路、分散式網路管理、以及行動式代理人,專長則是Internet應用系統的開發。曾參與過的開發專案性質十分廣泛而且不同,從ERP、PC GAME到P2P網路電話,都在他的涉獵範圍之內。

熱門新聞

Advertisement