軟體工程能幫多大忙? (轉)

gugu99發表於2008-05-24
軟體工程能幫多大忙? (轉)[@more@]

一、思想各不相同,行為卻是一樣的

中國的員多數貧寒而有大志,看到國產行業凋敝,拯救中國軟體業的願望便由此生根發芽。我但是,我越做就越失望。

為什麼?因為胡說八道胡亂指揮“專案經理”的太多,有寡不敵眾的感覺嗎?不是的。胡亂指揮的人的確多,什麼中文軟體,什麼自主智慧財產權,什麼扶持軟體產業,什麼矽谷夢想,的確寡不敵眾。

但這根本不重要!反過來,即使這個社會人人都是比爾.蓋茨,安迪.葛洛夫,對中國的軟體業的繁榮也於事無補!

對“振興民族軟體業,知識救國”的失望,是因為我越來越意識到:人的思想和行為是兩回事,人的思想可以有很大的差別,但他們的行動都是一樣的。

去買麥當勞,您很想守秩序排隊,還想隔得很開,不要身貼身——身貼身完全沒必要。但如果是那樣,您就一直遠遠站著吧,所有人都以為您只是在等人。

排隊的好處他們不懂嗎?可能不懂,但是即使懂,好象您自己就懂,但您也照樣得擠進去。不擠不得食。您和他們的思想境界或許有巨大的差異,但身歷其境,您的行動跟他們的都是一樣的。你或許曾經遲疑,那你就已經吃虧。

相信每個讀者都遇到過“專案經理”們都宣稱要在專案實施軟體工程。什麼ISO90002,CMM,RUP。但行動上呢?他們的真實去做的是其實是很小的,仍然是無文擋,無控制,無註釋的“三無產品”。如果幫助他們更徹底地履行他們的誓言,好意告訴他們,瀑布式的做法風險很大,軟體需求必須定義清楚,團隊必須溝通,他們就會拿出合同說時間不等人過期要罰款。

說,可以有很多套;做,則只有一套。思想上,大家可以天馬行空,各執己見,亂說一通,然後一口咬定——不要緊,沒代價。但是,如果付諸行動,則要承受紮紮實實的損失。口頭上我們勢必要跟對手過不去,但行動上我們很難跟自己的錢包過不去。結果,在一定的條件下,可觀察的人的行為都是非常相近的,至少比起他們內心想法的差異而言是如此。正因如是,思想上的偽劣商品,比實物世界的偽劣商品多得多!  

二、“做了什麼”有別於“為什麼那麼做”

我們永遠不知道BILL.GATES那麼作為什麼便獲得了成功,說“不知道”,那是因為很多失敗的人也是那麼做的。有人想模仿的成功,但無數失敗的人也是那麼做的,而另外很多不那麼做的人卻也同樣取得了成功。

我們不知道微軟的開發方法為什麼能使得獨步天下?是霸權,是壟斷,是市場的需求?我們不知道。我們只知道,只有那樣,開發的成本才會最低,開發的質量才會很高。

貧窮的印度為什麼會有那麼好的軟體工程和軟體管理?是他們會英語,是政府扶持,是勞動力便宜?我們不知道。我們只知道,在那樣條件下,要靠軟體來發展國民經濟,那麼CMM是軟體出口的前提,好的軟體管理是公司賺取利潤的保證。至於這些不懂軟體技術的印度專案經理為什麼會發現並堅持這個選擇,我們不知道。

應該開誠佈公地告訴讀者:軟體工程不知道怎樣把一個好的a變成舉世聞名的軟體。要成功,那麼運氣、努力和經驗,市場環境,就缺一不可,但是,軟體工程既沒有興趣、也沒有能力逐一掂量這些因素、逐一對這些因素論功行賞。軟體工程只是指出一個軟體企業要符合什麼條件才更有機會在競爭中生存和發展。但怎樣才能達到這個點,軟體工程就束手無策,無言以答。

軟體工程是解釋過程行為的經驗科學。它解釋的是可觀察的企業的行為,而不是不可觀察的企業管理人員的動機、願望、理想、觀點和感受。軟體工程只是解釋——也僅能解釋——一個成功的軟體企業“做了什麼”,而無法解釋——也沒有興趣解釋——一個成功的軟體企業“怎麼會這麼做了”。

這類似於我們知道一個奧運冠軍是怎樣的,但這種知識跟如何才能訓練出一個奧運冠軍是兩回事;我們知道誰誰誰是諾貝爾獎得主,但這有別於要我們培養一個諾貝爾得主;我們知道一個健康、聰明的男嬰是怎樣的,但如何才能生育一個健康、聰明的男嬰,則是另外一回事。

三、通向繁榮之路漫漫

一個在大學教書的軟體工程教授的言論,與他如果擔任的專案經理和軟體企業老闆時的行為,是有很大不同的。孰好孰壞不是我們這裡討論的目的,我只是指出人們的行為依賴於他所處的約束條件,而與他的或許五花八門的觀點和理想沒有多大的關係。

不良的軟體企業管理為什麼會施行?這往往是在特定約束條件下,人們角逐自身利益的結果。他們要那樣做,才去尋找自圓其說的理由,而不是他們先找到合理的理論後,才根據這個理論來行事。我們常常會顛倒了前後因果。是企業管理者想趕工期,才選擇了“三無開發”,而不是有了專案經理有了“三無開發”才說服老闆加快進度。不是軟體企業的老闆不知道“瀑布式開發”風險巨大才搞瀑布式開發,而是他們為了生計必須這樣做,才選中了那些早就被徹底駁倒的理論和至今一知半解的者。不是BILL.GATES精通了軟體工程才發財,而是他發了財後,軟體專家才出來說:“那就是軟體工程,象他那樣就能發財。”

Rational公司的軟體工具盛行於世界,還邀請微軟來助陣,但我們的專案經理們聽進去了他多少?

大批的專家去印度,愛爾蘭,以色列,去學習考察軟體企業的管理,但是我們軟體產業作坊式生產今天改觀了多少?

華為,金碟邀請IBM,微軟來出謀劃策,即使這些計謀都是正確的,但那也不比建議搞定資訊產業部來的更好。人在江湖,知易行難!

我們絕大多數人都懂得牛頓定律,但這一知識除了幫助我們更好地理解世界外,並沒有對我們的個人生活產生多大的幫助。我們走路尚且沒有跌倒,我們拋起兒子尚且不會忘記接住,恐怕不能歸功於對牛頓定律的認識。是的,牛頓定律在工程技術方面極大地改善了我們的生活,但那是因為我們有足夠的資源,可供反覆試驗的緣故。

但軟體工程卻沒有那麼幸運。軟體工程給我們帶來了前所未有的智力上的樂趣,我們一旦掌握了軟體工程的基本原理,我們就能象走路、騎車、游泳、說話一樣自然地運用,用來理解軟體開發中的現象。但我們每個企業的發展的順流逆流,卻似乎有著它本來的走向。

在另一方面,人們卻不能象做物理試驗那樣廉價地在一個企業中做軟體工程的試驗。一個軟體企業管理理念的成敗,往往不取決於它理論上是否成立,而只能取決於企業家、政治家、程式設計師與經理、官員,客戶的共同博弈。

軟體工程能幫多大忙?軟體工程確實提高了個人在軟體能力上的洞察力,但它無力支配各種現實力量的角逐。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1004506/,如需轉載,請註明出處,否則將追究法律責任。

相關文章