軟件安全開發(fā)之軟件開發(fā)的特點二
3)隱性成本高
只要是產(chǎn)品開發(fā)就總會存在開發(fā)成本的概念,也需要對項目進行預算,這一點軟件產(chǎn)品的開發(fā)也不例外。與其他產(chǎn)品開發(fā)不同的是,軟件開發(fā)的隱性成本很高。所謂的隱性成本, 是指在項目預算時并沒有將其考慮在內,但它確實在將來的開發(fā)活動中會導致額外的成本開銷。
4)細節(jié)很容易被放大
軟件開發(fā)過程中的一個很小的細節(jié)很容易被放大。對于一個模塊在設計時所留下來的小窟窿,哪怕是微不足道的,但是這個“微不足道”最后很可能演變成項目組的沉重負擔。 對于大型項目,如果大家隨意地包含頭文件,最后很可能造成每一次項目編譯都浪費了不少時間;修補一個缺陷時,由于覺得沒有必要去除其中一處冗余設計卻有可能最后落得難以維護;因為不小心將“==”錯寫成了“=”而造成一個嚴重的軟件缺陷,等等。
在軟件行業(yè),似乎存在這種必然,只要某種事情有可能變壞那就一定會變壞(墨菲定律),軟件行業(yè)能很好地體現(xiàn)“蝴蝶效應”,也就是說一個細節(jié)最終對項目所造成的負面影響并非是按它應有的比例出現(xiàn)的,而是遠遠大于這一比例。
軟件開發(fā)無小事,可能一開始認為很小的事,到最后明白其重要性時卻已讓團隊背上了沉重的負擔,進而可能壓垮團隊。對于“小事”的把握,需要對軟件行業(yè)有較為全面和深刻的認識,以及豐富的經(jīng)驗和良好的洞察力。
5)質量評估很需專業(yè)的高水平
一個表面上好的軟件設計未必就好,而設計不良則早晚會出問題,從而帶來隱形成本。 要真正地評估軟件的質量需要通過評估其設計質量著手,而這很需專業(yè)的高水平。這里所說的專業(yè)水平不能簡單地理解為評估人具有什么樣的學歷,或通過了什么認證,而是需要他對軟件行業(yè)有深刻的理解和豐富的經(jīng)驗,以及擁有自己的軟件設計思想。通常這類評估人也應具當對軟件設計有著精神上的追求(否則他的水平也不會高到哪兒),很顯然這種人是一種稀缺資源。
真正高水平軟件工程師的稀缺也加劇了軟件行業(yè)的困難,由于缺乏這些“領頭羊”,項目組在開發(fā)過程中無法有目的地朝著高質量設計的方向前進,而只能是以完成工作為目標。 結果很有可能是項目組多走彎路,以及項目面臨更高的隱形成本。