一、思想各不相同,行為卻是一樣的
中國的程序員多數貧寒而有大志,看到國產軟件行業凋敝,拯救中國軟件業的愿望便由此生根發芽。但是,我越做就越失望。
為什么?因為胡說八道胡亂指揮“項目經理”的太多,有寡不敵眾的感覺嗎?不是的。胡亂指揮的人的確多,什么中文軟件,什么自主知識產權,什么扶持軟件產業,什么硅谷夢想,的確寡不敵眾。
但這根本不重要!反過來,即使這個社會人人都是比爾.蓋茨,安迪.葛洛夫,對中國的軟件業的繁榮也于事無補!
對“振興民族軟件業,知識救國”的失望,是因為我越來越意識到:人的思想和行為是兩回事,人的思想可以有很大的差別,但他們的行動都是一樣的。
去買麥當勞,您很想守秩序排隊,還想隔得很開,不要身貼身——身貼身完全沒必要。但如果是那樣,您就一直遠遠站著吧,所有人都以為您只是在等人。
排隊的好處他們不懂嗎?可能不懂,但是即使懂,好象您自己就懂,但您也照樣得擠進去。不擠不得食。您和他們的思想境界或許有巨大的差異,但身歷其境,您的行動跟他們的都是一樣的。你或許曾經遲疑,那你就已經吃虧。
相信每個讀者都遇到過��“項目經理”們都宣稱要在項目實施軟件工程。什么ISO90002,CMM,RUP。但行動上呢?他們的真實去做的是其實是很小的,仍然是無文擋,無控制,無注釋的“三無產品”。如果幫助他們更徹底地履行他們的誓言,好意告訴他們,瀑布式的做法風險很大,軟件需求必須定義清楚,團隊必須溝通,他們就會拿出合同說時間不等人過期要罰款。
說,可以有很多套;做,則只有一套。思想上,大家可以天馬行空,各執己見,亂說一通,然后一口咬定——不要緊,沒代價。但是,如果付諸行動,則要承受扎扎實實的損失?陬^上我們勢必要跟對手過不去,但行動上我們很難跟自己的錢包過不去。結果,在一定的約束條件下,可觀察的人的行為都是非常相近的,至少比起他們內心想法的差異而言是如此。正因如是,思想上的偽劣商品,比實物世界的偽劣商品多得多!
二、“做了什么”有別于“為什么那么做”
我們永遠不知道BILL.GATES那么作為什么便獲得了成功,說“不知道”,那是因為很多失敗的人也是那么做的。有人想模仿微軟的成功經驗,但無數失敗的人也是那么做的,而另外很多不那么做的人卻也同樣取得了成功。
我們不知道微軟的開發方法為什么能使得WINDOWS獨步天下?是霸權,是壟斷,是市場的需求?我們不知道。我們只知道,只有那樣,開發的成本才會最低,開發的質量才會很高。
貧窮的印度為什么會有那么好的軟件工程和軟件管理?是他們會英語,是政府扶持,是勞動力便宜?我們不知道。我們只知道,在那樣條件下,要靠軟件來發展國民經濟,那么CMM是軟件出口的前提,好的軟件管理是公司賺取利潤的保證。至于這些不懂軟件技術的印度項目經理為什么會發現并堅持這個選擇,我們不知道。
應該開誠布公地告訴讀者:軟件工程不知道怎樣把一個好的idea變成舉世聞名的軟件。要成功,那么運氣、努力和經驗,市場環境,就缺一不可,但是,軟件工程既沒有興趣、也沒有能力逐一掂量這些因素、逐一對這些因素論功行賞。軟件工程只是指出一個軟件企業要符合什么條件才更有機會在競爭中生存和發展。但怎樣才能達到這個點,軟件工程就束手無策,無言以答。
軟件工程是解釋軟件開發過程行為的經驗科學。它解釋的對象是可觀察的企業的行為,而不是不可觀察的企業管理人員的動機、愿望、理想、觀點和感受。軟件工程只是解釋——也僅能解釋——一個成功的軟件企業“做了什么”,而無法解釋——也沒有興趣解釋——一個成功的軟件企業“怎么會這么做了”。
這類似于我們知道一個奧運冠軍是怎樣的,但這種知識跟如何才能訓練出一個奧運冠軍是兩回事;我們知道誰誰誰是諾貝爾獎得主,但這有別于要我們培養一個諾貝爾得主;我們知道一個健康、聰明的男嬰是怎樣的,但如何才能生育一個健康、聰明的男嬰,則是另外一回事。
三、通向繁榮之路漫漫
一個在大學教書的軟件工程教授的言論,與他如果擔任的項目經理和軟件企業老板時的行為,是有很大不同的。孰好孰壞不是我們這里討論的目的,我只是指出人們的行為依賴于他所處的約束條件,而與他的或許五花八門的觀點和理想沒有多大的關系。
不良的軟件企業管理為什么會施行?這往往是在特定約束條件下,人們角逐自身利益的結果。他們要那樣做,才去尋找自圓其說的理由,而不是他們先找到合理的理論后,才根據這個理論來行事。我們常常會顛倒了前后因果。是企業管理者想趕工期,才選擇了“三無開發”,而不是有了項目經理有了“三無開發”才說服老板加快進度。不是軟件企業的老板不知道“瀑布式開發”風險巨大才搞瀑布式開發,而是他們為了生計必須這樣做,才選中了那些早就被徹底駁倒的理論和至今一知半解的項目管理者。不是BILL.GATES精通了軟件工程才發財,而是他發了財后,軟件專家才出來說:“那就是軟件工程,象他那樣就能發財!
Rational公司的軟件工具盛行于世界,還邀請微軟ORACLE來助陣,但我們的項目經理們聽進去了他多少?
大批的專家去印度,愛爾蘭,以色列,去學習考察軟件企業的管理,但是我們軟件產業作坊式生產今天改觀了多少?
華為,金碟邀請IBM,微軟來出謀劃策,即使這些計謀都是正確的,但那也不比建議搞定信息產業部來的更好。人在江湖,知易行難!
我們絕大多數人都懂得牛頓定律,但這一知識除了幫助我們更好地理解世界外,并沒有對我們的個人生活產生多大的幫助。我們走路尚且沒有跌倒,我們拋起兒子尚且不會忘記接住,恐怕不能歸功于對牛頓定律的認識。是的,牛頓定律在工程技術方面極大地改善了我們的生活,但那是因為我們有足夠的資源,可供反復試驗的緣故。
但軟件工程卻沒有那么幸運。軟件工程給我們帶來了前所未有的智力上的樂趣,我們一旦掌握了軟件工程的基本原理,我們就能象走路、騎車、游泳、說話一樣自然地運用,用來理解軟件開發中的現象。但我們每個企業的發展的順流逆流,卻似乎有著它本來的走向。
在另一方面,人們卻不能象做物理試驗那樣廉價地在一個企業中做軟件工程的試驗。一個軟件企業管理理念的成敗,往往不取決于它理論上是否成立,而只能取決于企業家、政治家、程序員與經理、官員,客戶的共同博弈。
軟件工程能幫多大忙?
軟件工程確實提高了個人在軟件能力上的洞察力,但它無力支配各種現實力量的角逐。
文章來源于領測軟件測試網 http://www.kjueaiud.com/