這是一個思考過很久的問題。 其實不僅是德國,也包括日本這個精工細作的製造強國,以及英法和其他歐洲國家,在軟體方面他們的表現都不是很亮眼。只有美國在這方面獨佔鰲頭。最近在網上看了一個在德國公司工作的美國工程師寫的親身感受。他講了一些看法,那就是,與大家普遍感受到德國在軟體業的表現不甚突出的印象相反,德國的軟體業堅如磐石,有著優良的設計和製作,在各種情況下都能運行得非常好,其產品就像他們生產的雙立人廚具,是值得信賴的。
我認識的一位朋友,學文科出生,在IT方面做事,主要是軟體的使用者。他曾講過一個故事。他們公司用德國軟體公司SAP的軟體來設計商業流程。據說這套軟體總共為使用者設計了八千多種運行模式,不管是使用者想到的,或者沒有想到的,這套軟體都為你考慮周全了。你總是能夠從中找到剛好適合你的那一款。SAP就像一台萬能機床, 車鉗刨銑鑽,樣樣都能。它包羅萬象,就像玄幻小說里的戒指儲物空間,予取予奪,應有盡有。因此用SAP來做你自己的工作,只需要往選中的那一款模式里加參數就行了。SAP這樣的設計和使用這簡直就是一件酷炫的事情。這算不算軟體設計的最高境界,想想可能也差不離了。
其實,不只SAP, 十幾年前,藍色巨人IBM轉行,要成為以提供一攬子方案為核心的服務型公司,他們提出的一個口號就是,今後的程序開發,門檻會很低,不用接受嚴格的程序開發的學習和訓練,任何非程序員,像商務人員,推銷員,項目經理,部門主任,甚至總裁董事會主席,只要你懂business logic,就能編程。你只需往軟體里的各種表格里填數據,程序在背後就給你產生好了。這是多麼令人遐意的事。這不成了跟傻瓜相機一樣的傻瓜程序嗎?就象生產線的入口送進去的是帶毛的豬,出口出來的已經是可以上桌燙火鍋的梅林午餐肉罐頭了!為了這個事情,IBM鼓動客戶從他們那裡以高薪聘請專家現場指導。明眼人一看就知道,這顯然是以賺取服務費為目的。到最後,也是一場鬧劇。
至於SAP到底怎麼樣, 我沒有親身體驗,不敢妄下結論。即便就如我那位朋友說的那麼神奇,用好它,也不是一蹴而就的事情,前提是你必須了解這SAP軟體的方方面面,熟讀範本,就像操練蜀山劍俠傳裡面的兵書秘籍那樣,要做到瞭然於胸。 他聲稱,考SAP程序員的資格,不容易。人要像施樂複印機一樣把那幾本厚厚的使用手冊印入腦海里,想象一下這是多麼痛苦的事情!這也是為什麼SAP 程序員每小時二,三百美元的時薪還有點供不應求的原因。作為聽眾,我問了一句,那這世界上有沒有SAP設計時還沒發現,或者還沒發生,而且他們還沒有考慮到的情況呢?他回答到,SAP工程師聰明絕頂,東西南北,古今中外,上窮碧落下黃泉,前三皇后五帝,沒有不知,沒有不曉, 什麼事能逃過他們的法眼?只有你想不到,沒有他們不知道。德國人是綜合歸納集大成者,馬克思這個德國人寫出了共產黨宣言, 資本論,差不多一百七十年過去了。斗換星移,白駒過隙,沒看見共產黨的徒子徒孫們,繞著圈子在那裡轉來轉去,像無頭蒼蠅一樣,自己轉不出什麼名堂,不還在老祖宗馬克思的故紙堆里找答案嗎?
好,閑話少說,書歸正傳。既然德國人這麼令人恐怖, 但是那為什麼德國又不處在軟體行業的頂峰呢? 據這位美國去的工程師說,德國人做事認真,嚴謹,一絲不苟,按部就班。按北方人的話說,就是有點「軸」。他們做什麼都要盡善盡美,精益求精。他們設計製作一個應用程序,不管是工業用,科技用,電子商務用,還是普羅大眾社交用,不問青紅皂白,一上來就是打中規中矩的陣地戰,十八般武器都要搬出來,按人的說法,就是殺雞也要用牛刀,高射炮也要用來打蚊子;事無巨細,把所有可能發生的,或者說將要發生的情況都要納入考慮之中,儘可能讓產品普適和萬能。如果不令人滿意,就再追加時間和金錢,人力物力,直到每一個環節都無可挑剔。可想而知,信心爆棚,花銷也會爆表。這樣的設計和製作方式,會有多少產品能夠如期完成和上市,能夠產生盈利,並在市場上贏得一席之地? 會有多少這樣的產品不變成鬍子工程,爛尾工程?這就像胎死腹中 ---- 一個懷了二十個月的胎兒,還有存活的希望嗎?
一言以蔽之,這第一個問題,就是德國生產軟體的方式,周期太長,規模太大,眉毛鬍子一把抓,自己把自己搞困頓了。 德國人這種大包大攬, 捨我其誰的做派,時不時讓人領教夠多了。這裡允許我舉一個例子。大家都知道,打開車的前蓋,引擎裡面有一根Timing Belt。這條皮帶是有壽命的,開上6萬到10萬英里,就必須要更換。這是一件不得已而又令人無可奈何的事情。花上六七百塊錢不說,還不知道它什麼時候斷掉,是一個安全隱患。德國的一些車廠,比如Audi,從2005 年開始,開始使用一種叫Timing Chain來取代Timing Belt (奇怪的是,Timing Chain 發明在Timing Belt 之前)。據廠家聲稱,這種裝置會一勞永逸地解決Timing Belt 的問題,一般可以在15萬到20萬英里,也就是車的壽命里程里,不再需要更換它了。可以說這是一個終極方案,典型的德國工程的做派。可是實際使用下來,仍舊不能做到永不更換 - 它照樣會壞,而且壞了,可能會報銷整個引擎。其修理費可能是更換Timing Belt所花的十倍以上。因此這種想永遠解決問題的方式有時並不能解決問題,而只能把問題搞複雜。
題外話:人間三月芳菲盡。室外春日白亮耀眼,照理室內應感到這可貴的陽光溫暖至心。可是真正的內里仍是一片冰封的雪原和料峭的春寒。蔓延全世界的病毒正在肆掠無忌,經濟正在下行,股票市場正在跌停,失業正在增加,苦難什麼時候才是盡頭。自我放逐,已經困在家裡多日,滿眼滿耳,看來聽來,都是不好不好,很不好的壞消息。怎麼才能聳身一搖,讓自己的思緒,暫時跳出這不眠不休,無窮無盡的壞消息之外。沒有辦法,多去想想其它的事情,就是平常,或者說以前正常的時候我們在想的事情。這就是我寫這篇短文的用意。人適應了黑暗,人的眼晴就應該尋找曙光。在這特別的人間三月,讓我們的心撐起生的希望!