十幾年軟件研發的滄桑歲月,和一度險瀕于破產的痛苦經歷,讓俺對軟件產品開發有了更深層的體會。新年到來之際,寫出來和大家作個交流。
一、農業境界
剛參加工作,朋友問我,你能用電腦干啥?我口出狂言,只要你想得出來的,我都能做得到。其實,我說這話相當無知。
柏拉圖曾經說過,人的知識猶如一個圓,圓內是你已經知道的,圓外是你還不知道的,圓周就是你已經知道的還沒解決的問題。你的知識越豐富,這個圓就越大,圓的周長也越長,也就是你知道的沒解決的問題也越多。
如果你覺得自己沒有啥問題,就說明你很無知。
無數年輕人就是憑自己的熱情,初生牛犢不怕虎的沖勁,在完全沒有經驗和章法的情況下,投入了不會取得勝利的第一場戰斗。通俗一點講,就是試圖用壘狗窩的技術建高樓大廈。
企業在這個階段,充其量就是個手工作坊。有人說,我的研發團隊上百號人呢。對不起,您是否出于這個階段和企業人數沒多大關系。
二、工業境界
了解到軟件產品設計研發是一個復雜的系統工程,很多人會嘗試運用一些必要的技術把復雜系統分解成簡單子系統。在這個階段,一些軟件工程理論開始逐步被吸收。這包括:
面向對象的設計思想
UML、RUP、XP編程、設計模式等軟件工程理論和工具
組件化系統設計——COM、DCOM、ActiveX、Corba、WebServices等技術開始進入產品設計
簡單地講,已經知道如何把高樓大廈拆解成多個狗窩,化繁為簡;已經懂得遵循軟件工業標準開發能重用的系統組件。
很多人以為已經到達軟件研發的終點,掌握了終極的技術手段。然而,這只是軟件產品研發的啟蒙階段,隨著發現更多并解決深層次的問題,你需要更有效的理論提升你對軟件產品開發的駕馭能力。
三、數學境界
工業化境界提供了化繁為簡的技術支撐和思路,但是,好的工具并不能保證出現正確的設計。
我們學習解一元二次方程的時候,什么十字相乘法、配方法等等,開始會學習很多技巧性的解法。這類似工業化境界——讓你把復雜問題分解轉化成更簡單的問題。但是,這些技巧不總是有效,最終的解決方案還是推導出求解公式,徹底解決此類問題。
軟件產品設計是否存在從需求到代碼的求解公式呢?這是一個已經被研究半個世紀的課題了,可惜國內99%的軟件研發人員并不了解這方面的進展。等到洋人的堅船利炮打到你家門口的時候,你才發現人家用這么好的技術武裝自己,那就為時太晚了。
在這個階段,你會用數學方法保障軟件系統設計的正確性。你可能會把下面這些理論引入你的設計過程:
在系統設計中自覺運行有限狀態機、Petri網等數學模型去設計、分析系統結構。
引進諸如凈室技術、B方法、Z語言等形式化軟件工程技術,確保系統設計的正確性。
最后你會發現,軟件產品設計真正是一件嚴格科學過程,如果以山野村夫的心態做這件事情,最終必然一塌糊涂。
四、藝術境界
人本質上是非理性的動物,我們為人類設計產品的最終目標不是為了正確,因此,數學境界并未把你帶到最終目的地。
人類還沒解決溫飽問題的時候,就學會了在巖石上涂鴉,在脖子上掛項鏈,為人類設計產品,得滿足他們這些貌似毫無價值的癖好。
因此,在能熟練駕馭正確設計產品的技能之后,軟件產品設計將為藝術而戰——我們不是在替客戶設計干活的工具,相反,我們是在為他們設計一個吸引眼球的超級玩具,一件藝術品。
軟件產品設計師——你不僅僅是工程師,更進一步,你應該是一名駕馭高科技技術的藝術家!
五、宗教境界
阿克毛被槍斃了,他不是為科學而來,亦不是為藝術而來,而是為奪取我們的心靈而來!
之所以被槍斃,是因為他采取了文明社會不認可的手段和產品——海洛因。
異曲同工,軟件產品設計的最高境界亦是征服客戶的心靈,讓客戶像崇拜上帝一樣被您的軟件所征服。似乎除了海洛因,能做到這一點的就是宗教了。
看看IBM、看看微軟、看看Intel、看看蘋果,這些超級商業巨人,為了讓你把口袋的錢老老實實地掏出來,是不是一個個儼然一副布道者的模樣?
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/quicmous/archive/2010/01/03/5125373.aspx
大盤預測
國富論
posted on 2010-01-23 09:33
華夢行 閱讀(259)
評論(0) 編輯 收藏