當軟體失去靈魂
記得有這麼一句廣告詞:「軟體以用為主」。這句廣告詞的背後傳達了時下人們對於軟體的一種普遍的認識和價值取向:軟體是而且僅是一種工具。不僅軟體的普通使用者或者高階使用者,就算是軟體**商也對軟體持這樣一種價值觀。功用或者功能似乎成了軟體的全部。且看我們在做軟體需求的時候,重中之重就是對功能需求的完整把握。衡量乙個系統或者軟體的成功與否的唯一標準就是是否全部實現了使用者的需求,實現需求所要的功能成了軟體的最高目標。這一標準作為唯一的線索,不僅在貫穿在開發的過程中,甚至貫穿了軟體的整個生命週期中。功用性的要求成了懸在開發人員和軟體公司頭頂的一把斯巴達克之劍,而其他的因素似乎成了一種可有可無的或者並不是特別重要的因素,程式設計師們每天就揹負著這樣的十字架生活著。國外的軟體在這方面情況可能還不是很嚴重,然而國產的軟體和國產的程式設計師們似乎無一例外能夠逃脫這個宿命的詛咒。
難道軟體的價值就僅僅是這些嗎?軟體是否應該有自己的靈魂呢?軟體的靈魂應該是什麼呢?當乙個軟體沒有或者失去靈魂又會是什麼呢?如果軟體應該有自己的靈魂,那麼應該創造一種什麼樣的靈魂呢?如果軟體應該有自己的靈魂,那麼應該如何來體現呢?
且看乙個典型的軟體過程,乙個完全沒有精神生活的軟體過程。乙個銷售人員在一番掙扎和爭鬥以後,在一群支援和決策人員的群策群力之下,某個公司終於在眾多的投標者中脫穎而出了,專案拿到了,合同簽訂了,第一筆啟動資金到帳了,軟體開始在乙個本不該死的企業裡實施了,公司上下一片喜悅,專案負責人馬上確定了,專案小組馬上成立了,系統分析人員馬上趕赴企業開始進行需求調研了,需求報告很快寫好了,概要設計馬上寫好了,詳細設計馬上搞定了(或者就在原來的設計上改改就好了),任務迅速分配下去,程式設計師們馬上就如上了發條的時鐘開始coding了,軟體終於如期寫完了(國內的軟體專案好像從來沒有這樣的事),試執行結束了,專案結束了,最後一筆款打回了,又可以開慶功宴了。這就是我們的生活。沒有人會去想乙個軟體或者乙個專案應該有什麼樣的靈魂,我們只需要製造一堆肉交付給使用者就可以了。也許有人會說軟體開發的過程中實在太忙,根本沒有時間去想這件事情,譬如乙個患了性飢渴的男人或者女人,眼裡只有白花花的一團,根本就沒有時間去想她或者他是否有內在美一樣。
前幾天在看到幾篇文章,討論中國人不重視技術的問題,從某個側面來說他們如盧彥先生、sir torrylee講的都很有道理,甚至很有見地,然而我總覺得觀念決定生活,而境界決定質量。我們的程式設計師是很重視技術的,然而這個技術我覺得應該打個引號,在我的理解中這個技術應該是技巧,我常常聽人說解決了某個問題是如何如何的興奮,如何如何的具有快感,彷彿一邊寫程式一邊手淫一樣,對於技巧的追求確實是可以給我們以某種快感,然而現在讓我回憶起當年的這樣的快樂,我覺得簡直就是在對軟體意淫。對於所謂技術的追求充其量不過是對奇巧淫技的追求。我覺得對於技術的追求應該是在創新上面,而絕對不是對現有技術的掌握上。譬如炒菜,如果你從來沒有炒過菜,突然一下可以煎魚了(比如我到現在都不會煎魚,曾經有一次煎到只剩下魚刺,以後再也不敢煎魚了),當然是可以樂不可支,然而煎魚是一件多麼古老的技術,也許將魚煎的特別應該算一門技術吧。也許正是因為對所謂技術的狂熱使我們失去了思考的興趣,而使用者的眼球有時候也往往導致我們設計軟體的偏差,如會花費大量的時間將介面做的十分華麗,表面看起來真的如乙個貴婦人一樣,受水平和審美能力的限制,軟體的介面往往搞的花裡胡哨,就像乙個在身上胡亂穿衣服的女孩一樣,自己也覺得很美,而旁人或許就會作嘔。軟體的表代替了軟體的裡,這是一件多麼可悲的事情。如果這個軟體由你親手設計和實現,不知道你心裡會是什麼滋味。
我常常很羨慕國外的作者對於某個技術的享受的心情。在c++的經典的著作中,我們能發現,他們將c++技術當作一種生活,在com技術的經典著作裡,也常常將com技術比喻為com生活。我很慚愧,我總在想為什麼我不能有那種享受技術的心情,為什麼我不能達到那樣的境界?日復一日,年復一年,我是在度過那樣的生活!!是在重複過去的所有生活!!有的時乙個人的時候直覺一片酸心。
那麼我們應該怎麼做呢?我提出幾點看法供大家扔雞蛋。
2. 充分了解你的軟體的行業特徵。每一種軟體都會為一種行業提供乙個解決方案,特別是管理系統軟體,其特徵更是十分的明顯。如果不了解行業的特徵,要做出符合行業的東西簡直是胡扯,然而我經常聽有的程式設計師說,當我做完某個系統以後我就成了那個行業的專家了,我覺得那簡直是在放屁。不管哪個行業都存在其博大精深的地方。如果做完乙個系統就成了專家,那全世界的專家比不是專家的都多。
3. 充分提煉你的軟體體現出來的管理思想。目前存在很多的管理系統,比如erp、mrp、mis、pdm、plm。每一種管理軟體實質上都是建立在一整套哲學觀念之上的。如果對這些管理思想沒有乙個很好的認識,做出來的軟體也絕對不會深刻的體現出這些思想,可怕噩夢就是管理軟體沒有管理思想,其結果也就是一對軟體功能的堆砌,有什麼靈魂可言呢?
愛你的軟體就給她一顆靈魂,她會因為有靈魂而更可愛!
軟體的靈魂
估計做過軟體的人基本都有這樣的疑問 為什麼我們做的軟體這麼難使 為什麼老是不能滿足客戶的需求,今天要改這,明天要改那 等。且大都會把這些問題歸併成需求或需求管理問題,如 開發前需求沒有讓客戶簽字 需求調研不充分等。雖然某些專案的確是需求問題造成的,但我認為這並不是問題的本質,真正的原因應該在於系統的...
當程式設計師變成軟體專案經理
當你預期的那一天,也許是害怕的那一天,終於來到了 從工程師的隊伍裡你被提拔到了軟體專案領導或者團隊領導的位置。這也許就是你選擇的職業道路,或許你不太情願,將就嘗試一下。無論在哪種情況下,你都可能缺少工程學科 人員管理以及領導能力的相關教育。這需要更多的領導能力和管理 它們不是一回事 而不能象dilb...
當程式設計師變成軟體專案經理
表彰成績 對你組員成績的表彰和獎勵,是激勵他們的一種很重要的手段。除非你的小組中已經有了一種表彰程式,否則這應是你最重要的事情之一。表彰包括象徵性的東西 證書,旅遊獎勵 以及實際的東西 電影票,餐館禮品券,兌現獎 在送贈品時要說一些親切的話語 感謝你所給予的幫助 或者 祝賀取得了成績 在表彰和獎勵上...