当软件失去灵魂
??? 記得有這么一句廣告詞:“軟件以用為主”。這句廣告詞的背后傳達了時下人們對于軟件的一種普遍的認識和價值取向:軟件是而且僅是一種工具。不僅軟件的普通用戶或者高級用戶,就算是軟件供應商也對軟件持這樣一種價值觀。功用或者功能似乎成了軟件的全部。且看我們在做軟件需求的時候,重中之重就是對功能需求的完整把握。衡量一個系統或者軟件的成功與否的唯一標準就是是否全部實現了用戶的需求,實現需求所要的功能成了軟件的最高目標。這一標準作為唯一的線索,不僅在貫穿在開發的過程中,甚至貫穿了軟件的整個生命周期中。功用性的要求成了懸在開發人員和軟件公司頭頂的一把斯巴達克之劍,而其他的因素似乎成了一種可有可無的或者并不是特別重要的因素,程序員們每天就背負著這樣的十字架生活著。國外的軟件在這方面情況可能還不是很嚴重,然而國產的軟件和國產的程序員們似乎無一例外能夠逃脫這個宿命的詛咒。
?????? 難道軟件的價值就僅僅是這些嗎?軟件是否應該有自己的靈魂呢?軟件的靈魂應該是什么呢?當一個軟件沒有或者失去靈魂又會是什么呢?如果軟件應該有自己的靈魂,那么應該創造一種什么樣的靈魂呢?如果軟件應該有自己的靈魂,那么應該如何來體現呢?
?????? 我想所有熱愛軟件的人都會承認其實軟件系統是有著鮮活的生命的。也許你還記得大學一本教程里這樣的一句話:“如果電腦是軀體,那么軟件就是軀體里流動的血液。”正是因為有了軟件,計算機的世界里才會如此絢爛多姿,虛擬的世界才會如此引人入勝。既然軟件是有生命的,如果這個生命偏偏是沒有靈魂的,那么這又是怎樣的一種生命呢?是鬼片里的聽話的僵尸嗎?還是阿拉丁神燈里受咒語驅馭的那個有著巨大法力的魔鬼呢?如果將軟件比喻成一個女人,一個非常迷人而性感的女人,(我想這個比喻對于程序員而言是合適的,中國大部分都是男性程序員,有的愛編程的人就經常將軟件比喻為自己的老婆)然而她卻沒有一點自己的思想,也就是說沒有內在美,那么作為程序員的我們是否還會喜歡甚至癡迷的喜歡和執著的追求她呢?我想即使是埃及艷后您也不會喜歡她,也許和她發生***,你還是十分歡喜的。(我說這個比喻是受當前紅的發紫的、中央電視臺百家講壇的名角易中天教授講述美學的一本書的啟發)。既然如此我想你肯定會承認軟件應該是有靈魂的,這個靈魂不是別的,就是軟件本身所體現出來的獨特的思想。不過你也可以不承認軟件應該有自己的靈魂,譬如男人都喜歡漂亮的女人,但喜歡不一定都愛女人,就如有專門玩弄女人的男人,這個世界也覺得存在專門玩弄軟件的程序員。性變態的還喜歡奸尸,在軟件的世界里是否有這樣的程序員呢?我不知道。強奸一個沒有靈魂的軟件我想應該是在沒有多少樂趣。然而我們的程序員生活也許或多或少都陷入這樣的令人作嘔的境地里,也許是我們覺醒的太少而渾不自知罷了。我這樣說也許有些夸張,如果招致您的雞蛋,我想我是不會躲避的。
?????? 且看一個典型的軟件過程,一個完全沒有精神生活的軟件過程。一個銷售人員在一番掙扎和爭斗以后,在一群支持和決策人員的群策群力之下,某個公司終于在眾多的投標者中脫穎而出了,項目拿到了,合同簽訂了,第一筆啟動資金到帳了,軟件開始在一個本不該死的企業里實施了,公司上下一片喜悅,項目負責人馬上確定了,項目小組馬上成立了,系統分析人員馬上趕赴企業開始進行需求調研了,需求報告很快寫好了,概要設計馬上寫好了,詳細設計馬上搞定了(或者就在原來的設計上改改就好了),任務迅速分配下去,程序員們馬上就如上了發條的時鐘開始coding了,軟件終于如期寫完了(國內的軟件項目好像從來沒有這樣的事),試運行結束了,項目結束了,最后一筆款打回了,又可以開慶功宴了。這就是我們的生活。沒有人會去想一個軟件或者一個項目應該有什么樣的靈魂,我們只需要制造一堆肉交付給用戶就可以了。也許有人會說軟件開發的過程中實在太忙,根本沒有時間去想這件事情,譬如一個患了性饑渴的男人或者女人,眼里只有白花花的一團,根本就沒有時間去想她或者他是否有內在美一樣。
?????? 前幾天在博客園看到幾篇文章,討論中國人不重視技術的問題,從某個側面來說他們如盧彥先生、Sir Torrylee講的都很有道理,甚至很有見地,然而我總覺得觀念決定生活,而境界決定質量。我們的程序員是很重視技術的,然而這個技術我覺得應該打個引號,在我的理解中這個技術應該是技巧,我常常聽人說解決了某個問題是如何如何的興奮,如何如何的具有快感,仿佛一邊寫程序一邊手淫一樣,對于技巧的追求確實是可以給我們以某種快感,然而現在讓我回憶起當年的這樣的快樂,我覺得簡直就是在對軟件意淫。對于所謂技術的追求充其量不過是對奇巧淫技的追求。我覺得對于技術的追求應該是在創新上面,而絕對不是對現有技術的掌握上。譬如炒菜,如果你從來沒有炒過菜,突然一下可以煎魚了(比如我到現在都不會煎魚,曾經有一次煎到只剩下魚刺,以后再也不敢煎魚了),當然是可以樂不可支,然而煎魚是一件多么古老的技術,也許將魚煎的特別應該算一門技術吧。也許正是因為對所謂技術的狂熱使我們失去了思考的興趣,而用戶的眼球有時候也往往導致我們設計軟件的偏差,如會花費大量的時間將界面做的十分華麗,表面看起來真的如一個貴婦人一樣,受水平和審美能力的限制,軟件的界面往往搞的花里胡哨,就像一個在身上胡亂穿衣服的女孩一樣,自己也覺得很美,而旁人或許就會作嘔。軟件的表代替了軟件的里,這是一件多么可悲的事情。如果這個軟件由你親手設計和實現,不知道你心里會是什么滋味。
?????? 我常常很羨慕國外的作者對于某個技術的享受的心情。在C++的經典的著作中,我們能發現,他們將C++技術當作一種生活,在COM技術的經典著作里,也常常將COM技術比喻為COM生活。我很慚愧,我總在想為什么我不能有那種享受技術的心情,為什么我不能達到那樣的境界?日復一日,年復一年,我是在度過那樣的生活!!是在重復過去的所有生活!!有的時一個人的時候直覺一片酸心。
?????? 那么我們應該怎么做呢?我提出幾點看法供大家扔雞蛋。
1.?首先每個人都要提高自己的情趣,提高對軟件的情趣。雖然盧彥先生等反對不要重視技術,但是我仍然要說不要太重視技術,除非你是在創造技術,我覺得我們首先要真正了解什么才是真正的軟件,對于這個問題的認識的深度,我覺得是決定了我們可能達到的技術的高度。譬如大家都喜歡的比喻,首先要練好內功,然后才可以練習拳腳功夫,最后才可以達到摘葉傷人的境界。如果對軟件本身的特性都認識不清楚,就開始寫軟件,我想那也往往是花架子或者說一輩子都不可能成為武林高手。當然這個修為是需要時間的。寫在最前面是要提醒我們他的重要性。我們很多程序員包括我自己都是開始對軟件什么都不了解的情況下就開始堆代碼的,寫出來的是什么可想而知了,現在很多公司招聘程序員以后往往不會做這些方面的培訓,不去提高程序員對軟件的認識提高對軟件的把握能力,做出來的系統也就可想而知了。
2.?充分了解你的軟件的行業特征。每一種軟件都會為一種行業提供一個解決方案,特別是管理系統軟件,其特征更是十分的明顯。如果不了解行業的特征,要做出符合行業的東西簡直是胡扯,然而我經常聽有的程序員說,當我做完某個系統以后我就成了那個行業的專家了,我覺得那簡直是在放屁。不管哪個行業都存在其博大精深的地方。如果做完一個系統就成了專家,那全世界的專家比不是專家的都多。
3.?充分提煉你的軟件體現出來的管理思想。目前存在很多的管理系統,比如ERP、MRP、MIS、PDM、PLM。每一種管理軟件實質上都是建立在一整套哲學觀念之上的。如果對這些管理思想沒有一個很好的認識,做出來的軟件也絕對不會深刻的體現出這些思想,可怕噩夢就是管理軟件沒有管理思想,其結果也就是一對軟件功能的堆砌,有什么靈魂可言呢?
??????? 愛你的軟件就給她一顆靈魂,她會因為有靈魂而更可愛!
【Reprinted from http://www.cnblogs.com/yanrongpi/archive/2006/07/17/453337.html】
轉載于:https://www.cnblogs.com/GT_Andy/archive/2009/04/07/1922105.html
總結
- 上一篇: java 蓝桥杯 基础练习 FJ的字符串
- 下一篇: zkCli使用手册