首先,很顯然成功的網(wǎng)絡(luò)項目必然是靈活的。"推出速度快,更新頻率高"一直是開源領(lǐng)域的口號,它也適用于網(wǎng)絡(luò)應(yīng)用軟件。如果我們能夠接受真實世界的網(wǎng)絡(luò)代碼作為開發(fā)人員的里程碑時代已經(jīng)過去,那么"毫無理由的會淪為網(wǎng)絡(luò)項目早期階段過度結(jié)構(gòu)化的犧牲品",正如Joel Spolsky所言:"及時推出也是一種特性。一種真正重要的特性。你的產(chǎn)品必須具備這種特性"。特別是新興企業(yè),將產(chǎn)品快速推向市場的能力通常超過了架構(gòu)搭建的份量。
這并不意味著你應(yīng)該跳過會影響到安全性或者用戶隱私權(quán)的領(lǐng)域。在今天的企業(yè)氣候中,這種失誤將是致命的。舉例來說,但是可擴展性則是目前在網(wǎng)絡(luò)項目早期搭建階段被過份關(guān)注的一個領(lǐng)域。在某些情況下,制定為今后的可擴展性重新編寫應(yīng)用程序的計劃時需要多加謹慎,也不要為了體系架構(gòu)的問題而延遲首個版本的推出。
最近幾年,我們看到這種快速而松散的方式甚至已經(jīng)應(yīng)用到個性鮮明的網(wǎng)站上。舉例來說,目前網(wǎng)站可以自行搭建并體驗規(guī)模的擴展。Twitter已經(jīng)開始逐步淘汰用Scala編寫的最新平臺中的Ruby代碼(Scala是一種在Java虛擬機上運行的多重范型編程語言)。
其次,研發(fā)部門通過編寫的無數(shù)行代碼或者某些類似的評定標(biāo)準來衡量員工生產(chǎn)力的做法也是完全錯誤的。如果我們假設(shè)為網(wǎng)絡(luò)應(yīng)用軟件創(chuàng)建的代碼壽命本身就短,那么避免浪費員工勞動產(chǎn)出的最佳方法就是編寫的代碼宜少不宜多。
目前的開發(fā)人員可以使用各種用來編寫網(wǎng)絡(luò)應(yīng)用程序的數(shù)據(jù)庫,框架,服務(wù)器和工具。開發(fā)人員應(yīng)該充分利用他們。隨著網(wǎng)絡(luò)應(yīng)用軟件開發(fā)逐漸成為配置這些預(yù)裝組件的過程,開發(fā)人員應(yīng)該將注意力集中在推動應(yīng)用軟件研發(fā)的業(yè)務(wù)邏輯上,而不是把時間浪費在重新編寫那些與他們競爭對手的軟件沒有多大差別的代碼上。
代碼是消耗品;但開發(fā)人員不是
最后,企業(yè)應(yīng)該根據(jù)軟件的屬性去評估他們的軟件投資:軟件實質(zhì)上就是一種短期資產(chǎn)。定制網(wǎng)絡(luò)應(yīng)用軟件的任何一種版本的知識產(chǎn)權(quán)價值都是很小的。更大的價值是來自于編寫網(wǎng)絡(luò)應(yīng)用程序的開發(fā)人員,因為他們才是負責(zé)去重新編寫代碼來適應(yīng)永遠都在變化中的業(yè)務(wù)和技術(shù)版圖的人。
以谷歌和微軟為代表的這些企業(yè)都懂得雇傭,維護和激勵優(yōu)秀的軟件開發(fā)人員的價值所在。他們在這方面也做的很好。但慚愧的還有很多企業(yè)將他們最好的編程人才浪費在毫無必要的中層管理職位上,或者讓他們完全遠離了他們擅長的領(lǐng)域,而不是讓他們?nèi)グl(fā)揮作為軟件開發(fā)人員的價值。
或者網(wǎng)絡(luò)泡沫經(jīng)濟時代最大的損失就是對軟件研發(fā)人員的打擊,在網(wǎng)絡(luò)泡沫破滅以后,去專攻計算機科學(xué)或者信息技術(shù)學(xué)位的美國學(xué)生數(shù)量日漸減少。這是整個行業(yè)的恥辱,因為在過去10年里能屹立不倒的網(wǎng)站幾乎鳳毛麟角,對網(wǎng)絡(luò)軟件的需求也風(fēng)光不再。
網(wǎng)絡(luò)應(yīng)用軟件像所有軟件一樣必須經(jīng)常進行更新,因為技術(shù)在進步,業(yè)務(wù)需要作出相應(yīng)的變化。但是這并不意味著編程必須是一項徒勞的任務(wù)。對所有被擱置一邊的軟件來說,今天的網(wǎng)絡(luò)比起10年前的網(wǎng)絡(luò)要強大和先進的多。如果我們希望這種進步繼續(xù)下去,軟件開發(fā)人員就必須讓年輕的從業(yè)人員相信軟件開發(fā)是我們這個行業(yè)中發(fā)展最快和最至關(guān)重要的職業(yè)之一。