定製開發軟體成本為什麼高
1. 為何軟體定製開發維護成本較高
因為定製是給你一家做,只給你一家維護,而通用的軟體用戶分攤成本,所以定製開發的成本高。
2. 定製開發為什麼要比成品軟體貴那麼多
定製是專門為你現寫和軟體。作者付出辛苦大得多。
成品軟體只是復制一下。
更重要的是定製軟體出現Bug的概率要比成品軟體大的多。
3. 開發軟體費用為什麼這么貴
軟體開發費用非常高,要想降低軟體開發成本,首先要知道軟體開發成本是怎樣產生的。
軟體開發成本 = 軟體工程師人力成本 + 項目管理人力成本 + 返工成本 + 其它成本。其中,軟體工程師人力成本,包括與需求獲取、架構設計、編碼和測試、交付、輔助文檔等活動相關的人力成本。
項目管理人力成本,包括與項目計劃和跟蹤、解決問題和管理風險等活動相關的人力成本。返工成本,包括與需求變更和bug修復等活動相關的人力成本。其它成本,包括設備采購、工具費用、差旅等額外成本。
佔比較大的軟體開發成本
這些成本中,哪個佔大頭?有人說當然是軟體工程師和項目經理的人力成本佔大頭。有這種想法的人是想當然了。權威數據顯示,返工成本占整體軟體開發成本的40%-80%!【1,2】就是說,軟體開發費用的大部分都花在了修復缺陷和需求變更上。覺得掙錢少的老闆們是不是可以算一下自己公司的返工成本?
知道了「要降低研發成本,必須首先降低返工成本」的道理以後,那如何降低返工成本呢?本文給出4點建議。
如何降低返工成本?
1、提高人員能力
開發軟體,不管是設計還是編碼,爭取第一遍就要做對。這就需要軟體工程師和項目經理有很強的專業能力。提升能力的方法無外乎培訓和招聘有能力的人。其中,加強培訓是很多公司常用的做法。
2、選對開發方法
過程決定結果。方法錯了,再有經驗的人,結果也不會好。例如,軟體開發方法從70年代的瀑布,一步步從迭代、快速原型等進化到現在的敏捷、規模化敏捷、DevOps等。統計數字顯示,使用敏捷方法,平均上市時間加快了37%,團隊效率平均提高了16%【3】。這只是其中一個例子。
需求、設計、編碼、測試、交付等各個開發環節中,都有很多好的方法。那麼怎樣確保選對好的開發方法?答案是要麼自學成為軟體過程專家,要麼聘請有經驗的軟體過程專家來幫助自己。
3、使用輔助工具
俗話說,「好記性不如爛筆頭」、「再破的自行車也比走路快」。使用工具使我們事半功倍,軟體開發也是如此。常見的軟體編程工具例如Eclipse、IntelliJ IDEA、VSCode、SVN、Git等自不必說,是必須用的。項目管理工具、測試管理工具、持續集成和持續構建工具、自動化測試工具等也是很多企業常用的輔助工具。有些工具使用成本極低,但是收益極高,達到了四兩撥千斤的效果,是開發團隊的首選。
CoCode軟體眾包平台的評審分析工具
例如CoCode軟體眾包平台的評審分析工具【4】,能自動預測代碼里的缺陷數,讓項目在第一時間消除大多數缺陷,從而降低返工成本。數據顯示,這一個工具的使用,就能使整個開發成本降低20%【5】。那麼怎樣獲得好的輔助工具?首先應該了解公司的具體情況,包括已有的工具情況,同時參考軟體過程專家的建議,選擇最適合公司情況的輔助工具,然後採用自研、開源、購買等方式獲得。
4、持續改進
羅馬不是一天建成的。降低開發成本也不是通過一次培訓、一個方法、一個工具而達成,而是需要不斷地改進,直至達到期望的結果。持續改進的動力來自目標。所以期望降低開發成本的老闆們應該首先設一個改進目標,例如降低20%的開發成本,然後鍥而不舍地改進,直至目標達成。等一個目標達成後,再設定更高的目標。這樣在目標驅動下,開發能力不斷螺旋上升,軟體開發成本才能真正降下來,軟體企業才能達到期望的盈利水平。
道 法 術 器 人
最後記住「道、法、術、器、人」這五個字,您將在「降低成本、提升能力」的戰斗中,無往而不勝!
道:過程決定結果。結果無法直接改變,但我們可以通過改變過程來影響結果。
法:選對方法很重要。做軟體開發可以參考CMMI、敏捷、DevOps等經過業界驗證的好方法。
術:只有好的方法是不夠的,還需要落地的手段。這時候需要的是經驗。
器:好的工具讓落地實施事半功倍。
人:找到做事的人,尤其是找到有能力的人,才能心想事成!
4. 開發軟體費用為什麼這么貴
開發軟體的費用跟軟體用途息息相關。
題主談到了「好像除了程序員人力成本及一些必要硬體支持其他也沒太多化大錢的地方」,也對,因為單獨就開發軟體這個動作,基本成本就是研發人力成本和硬體成本,比如有程序員會自己開發個小軟體自娛自樂,成本相對而言並不算太高。(但還是要付出很多心血,只是成本相對成熟市場軟體沒有那麼高)
但一旦軟體需要公開讓更多人使用,比如企業IT部門自主研發軟體,就必須考慮到實用性,此時程序員的工作負擔會大大增加,而且涉及到的也不僅僅是IT部門。自主研發軟體尚且如此,更何況需要走向市場服務更多人的軟體。
下面具體對比下三者之間的差異:
1)當獨立程序員想要根據自己想法研發一個軟體:
?1?32)當企業選擇自主開發軟體時,一般要經過以下步驟:
其中涉及幾項成本:
1、人員成本:自主研發一個新軟體並非是簡單的代碼堆砌,過程中需要涉及產品負責人、視覺/交互設計師、研發人員、測試人員,最終才能發布並讓所有員工安裝APP使用;
2、時間成本:一個軟體從零起步到研發上線,一般會經歷比較漫長的周期,當業務人員經過半年的等待發現產品終於研發完成時,業務需求卻已經產生了變化,研發人員勞動成果作廢,重新開始,開發時間再次被拉長??
3、維護成本:開發人員實力、團隊項目經驗會直接影響後續維護迭代,企業自主研發軟體的團隊常常是缺乏經驗的,後期復雜的改進與維護幾乎是在項目開始的時候就是已經註定的事,更別提因為不斷更新的需求帶來的二次開發任務。
以上成本均為單個企業承擔,這種軟體使用模式成本非常之高。(除非企業隨便對付著做了個很難用的軟體)
3)當開發的軟體面向整個市場時,一般要經過以下步驟:
相比較自主軟體研發,面向市場的軟體需要經過市場的檢驗,對產品的創新性、實用度要求都更高,產品研發的每一步都需要更加細化,軟體功能不斷更新進步,每個崗位都需要專業人員負責。因此除了研發人員,也產生了如產品經理、測試人員、UI設計師、視覺設計師、市場、運營、技術支持、實施顧問等崗位,人力成本明顯是提高的。
不過這類軟體因為創新性較高、實用度高,經過市場檢驗,符合大多數人的需求,因此成本是分攤開來的,很多軟體價格其實並不高(甚至很多軟體是免費使用,通過其他方式來回收成本,比如廣告、高級服務),反倒是上述第二種專門為一個企業研發的軟體成本都是企業自己承擔,成本要高得多。