經(jīng)濟學原理:同等價值的產(chǎn)品,成本越低,利潤越高。這應(yīng)該就不用多說了。
軟件開發(fā)的成本,通常情況下就是一個效率問題,效率高低決定了成本高低,直接后果就是導(dǎo)致軟件能不能賺錢。效率包括兩方面:
·軟件運行的性能和效率;
·軟件開發(fā)過程的效率。
對于后面一點,它跟成本的關(guān)系是很明顯的,開發(fā)過程效率不高,當然就會導(dǎo)致更多人力或者時間的投入,從而增加了軟件的成本。就整個軟件工程控制來說,要求有全局觀比較好的人對開發(fā)過程進行高質(zhì)量的管理。而在一個比較完美的軟件開發(fā)流程中,編碼所占的時間比率應(yīng)該是僅僅占全部流程的比較小的一部分(一兩成),但是編碼的結(jié)果卻又是軟件成果的最終體現(xiàn),所以如何提高效率顯得尤為重要,就編碼人員來說,充分利用現(xiàn)有的各種資源是一種高效的方法。
“現(xiàn)有資源”又有內(nèi)部資源和外部資源之分:內(nèi)部資源指的是開發(fā)人員所在公司或者程序員本身的積累:外部資源是指前面兩種資源以外的一些資源,主要是網(wǎng)絡(luò)上的各種資源。內(nèi)部資源要充分利用,這應(yīng)該是沒有什么疑問的了,一個公司或者個人如果不能充分利用以前的積累,那就像竹籃打水,再努力也是一場空。對于外部資源,很多程序員有抵觸的原因是有那么一種懷疑一切或者目空一切的潛意識,認為什么東西都要靠自己動手來實現(xiàn)才能體現(xiàn)自己的價值,而別人的思想或者代碼都是不可靠的。這種想法在學習和研究的過程中應(yīng)該還是值得提倡和贊賞的,在軟件開發(fā)過程中卻很要不得。在技術(shù)日新月異、競爭日益激烈的今天,有這種想法的人最終的結(jié)果只能是被淘汰。就拿Delphi開發(fā)來說,很多開發(fā)人員對第三方控件有抵觸情緒,其實認真想想,有時候用不用第三方控件可能效率上會相差幾十倍以上,這就是花一天時間來用控件和花幾十天時間來開發(fā)控件的區(qū)別。如果有開發(fā)控件的能力,那也應(yīng)該有用好控件和萬一出問題時修改別人控件的能力(當然前提是使用有源文件的控件),那我們?yōu)槭裁床话褧r間節(jié)省下來把精力花到其他更重要的地方上去呢?科學上經(jīng)常都有“站在巨人的肩膀上”的說法,軟件開發(fā)也是同樣的道理。
對于“軟件運行的性能和效率”,看起來跟成本沒有多大關(guān)系,但實際上也還是有關(guān)系的。經(jīng)??吹接幸恍┏绦騿T寫的東西根本就沒有意識到效率或者穩(wěn)定性問題,或者是有時候為了貪方便或趕工而犧牲程序的性能(有時候幾行代碼的區(qū)別就會導(dǎo)致幾倍甚至幾十倍的性能差別),等到用戶真正用起來的時候,因為數(shù)據(jù)量或者使用頻率大增,以前積累的問題就一個個暴露在用戶面前,這時候就免不了要返工修改甚至全部推翻從頭再來(不挑剔的用戶我到現(xiàn)在基本上還沒有遇到過)。真正做過開發(fā)的應(yīng)該都有體會,返工修改的工作量絕對不會比正常開發(fā)的低(更不用說從頭再來了),并且因為工作積極性(通常修改一個東西的積極性要大大的低于新開發(fā)一個東西的積極性)等問題,效率也會很低,其中的成本也就可想而知了。所以做一個軟件,不僅僅要考慮功能實現(xiàn),還要充分考慮性能和效率的提高。當然,這是作為一個嚴謹?shù)某绦騿T理應(yīng)具有的態(tài)度和能力,這里就不再多說了。