開發軟體費用為什麼這麼貴?

經常聽到說開發一個軟體經費至少幾十萬,幾百萬,大型軟體就更加高了去了。有時候買個軟體就幾百萬,還只能限制用戶個數。這些軟體開發成本為啥這麼高呢?個人理解好像除了程序員人力成本及一些必要硬體支持其他也沒太多化大錢的地方了吧。


好像前面的回答都沒有量化。我這裡有些經驗數據提供。(出自我的博客開發軟體有多貴)

做個軟體究竟有多貴?我們可以做一個非常粗略的估算。市場上定製開發軟體的人工成本按一人月20,000人民幣來算,平均每人天1,000人民幣。根據《軟體估算》提供的經驗數據,隨軟體複雜度變化,在整個交付項目期間,平均每個程序員每天產出的代碼量在2行到200行之間。如果以平均每天產出100行代碼來算,則編寫每行代碼的成本是10元錢。


把軟體寫出來只是第一步。軟體要放在某個環境上去運行的。伺服器端的軟體要部署在可靠的伺服器上,要有可靠的網路連接。客戶端的軟體(比如一個app)要安裝在使用者的電腦或手機上。軟體要維護要升級要管理要排錯的。有了一個軟體,有了一台伺服器,就得有掌握這個技能的人來管理它的。根據Oracle引用Enterprise Management Associates的數據,60%~70%的IT預算耗費在運營和維護上。於是我們可以大致估算到,加上運營和維護成本,一行代碼的成本就會達到30元。


那麼一個app會有多少行代碼呢?當然也隨複雜度不同會有很大變化,只能舉兩個例子作為參考。RapidFTR是一個用於「家庭跟蹤和團聚」的Android應用。當戰爭、地震、海嘯等災害發生時,國際援助團隊可以用這個應用來尋找失散的兒童。這個軟體大約有34,000行代碼。另一個Android應用是柯林頓健康倡議給非洲國家開發的基層醫療物流管理軟體,鄉村醫生可以用這個工具來管理他們的藥品庫存。這個軟體的代碼超過46,000行。換句話說,這兩個目標很單純、功能並不複雜的Android應用,擁有它們的成本都在百萬人民幣以上。


其實本來大條就在程序員的工資和你為程序員提供的其他東西上,你讓100個人給你干一年也寫不出一個word,但是儘管如此,你就這樣一年花掉了千萬級的工資(開發一年10萬簡直還達不到應屆生水平)了,還有一倍的錢用來創造一個讓程序員乾的舒服的環境,可以提高壓榨勞動力跟工資的比。


這個問題輕易地拉了太多仇恨!只能說上面的很多答案只是答題者的發泄,而沒有認真回答題主的問題。

軟體開發費用的大頭的確在於開發人員的成本,所以從簡單的角度來說,上面的所有牢騷基本上也是事實。但這並不是全部的故事。那些成百上千萬的軟體項目真的非花這麼多錢嗎?我看未必!

作為非軟體從業者來說,很難理解軟體開發工作的複雜性以及工作量大小,特別是,作為一種無形的產品,除了人力成本,沒有多少可估算的原料成本及其它成本,因此題主提出這樣的問題非常容易理解。但也正因為如此,報價的靈活性也就大了許多,有時候功能相似的軟體在開發成本或銷售價格上會有幾十甚至上百倍的差別。不可否認,看似功能相似的軟體在功能的豐富程度、美觀、易用性、可靠性等方面都會存在相當大的差別,但是那些價格較高的軟體項目或產品有更大的利潤空間的可能性仍然要高很多。

但是價格高就能保證盈利嗎?不一定。

軟體開發是一件非常複雜的事,很多時候開發人員或承包商都沒有辦法準確的評估開發成本,只能依靠過去的經驗以及風險綜合來評估。所以一直都有很多失敗的軟體項目,失敗一般有兩個含義,一是關鍵技術點無法解決,二是成本超出預期。但是大部分項目中出現的無解難題如果給予足夠長的時間實際上都是可以解決的,最終也還是成本的問題。也就是有說很多項目儘管價格很高,但是仍然無法盈利。軟體工程的概念的起源就是因為各種各樣的項目失敗,各門各派的理論也都是以提高開發效率和成功率為目標的,直白點說就是為了省錢。

開發工具和程序庫的使用,這其實都屬於軟體工程的領域。類似於Eclipse這樣的開發工具普及以後,它本身就能夠提高所有Java等程序語言的開發效率,所以在這個層面上,所有程序員的起點相當。但是Eclipse有很多插件,這些插件可以進一步提高生產率,這一點卻不是所有的程序員都會去使用或者熟練運用的了。有的團隊甚至不使用svn或git進行任何版本管理,於是有可能出現集成的問題需要花費大量的時間來解決,甚至出現刪掉有用代碼而不能恢復的情況,這些都屬於災難,當然對於高手來說,是引入源碼管理不一定是問題。還有程序庫,一知半解的程序員反而更傾向於重新發明輪子,本來有大量現成解決方案的問題,他們寧可重頭來。但是程序庫也不總是如此管用,遴選的過程也會花費大量的代價,不得不自己動手的情況也多的是。

很多不成熟的軟體企業,沒有能力準確評估開發人員的能力,如果企業的主要負責人對軟體開發缺少最起碼的認識,棄用工資較高但是技術熟練,而啟用大量工資較低但不熟練的程序員,往往會導致開發成本數倍甚至數十倍的增加!

軟體開發也不是簡簡單單寫寫代碼就完事,需要非常多的前後期工作,以及外圍的支撐工作,比如分析、設計、測試等等,甚至有時候軟體銷售人員的工資都超過了開發人員。有時候,開發人員的工資和獎金可能佔比不到總成本的20-30%。

不少軟體都能極大的提高生產力,那麼除了開發成本,生產力提高的程度也可以作為給產品定價的一個標準。但是並不是誰都可以按這個標準定價,高價格要麼是因為大環境,要麼本身是強勢或高端的供應商,比如SAP、IBM、ThoughtWorks等。否則這條路不容易走通,客戶不是傻子。


感覺其他問題都是吐槽,沒有真正地回答『錢都花在哪了』。

一是,雖然確實只有程序員的人力成本,但程序不是誰都能寫的,程序員的工資支出很大,其他回答中已經有很多例子了。
然後,一個公司並非開發的所有產品都會盈利,通常當發現一個項目失敗的時候,已經投入了很多成本了,所以用戶還需要為失敗的項目買單。
最後,應該說軟體究竟應該如何開發還沒有一個統一個標準,所有人都在嘗試如何提高效率。不同於其他的行業,軟體行業並非多一倍的人就能多一倍的產出,也並非多一倍的人就能把時間縮短一半。應該說越大的項目管理成本越大,這個是和其他很多行業(規模越大成本越小)相反的。


別覺得智力勞動很簡單,或者看不見摸不著、可以輕鬆下載到的東西就廉價。不信你試試自己學一門編程語言試試。說句難聽話,大型點的項目,我把整個 Project 打包給你,你也不會編譯。

況且,不是軟體開發出來以後就能賣一輩子了。要 Debug,要升級,要維護伺服器端,各種破事情很累的。


想想軟體是幹啥的!我們程序員是在對真實世界和虛擬世界建模,換句話說:我們在理解造物主的邏輯,用來為你服務,能不貴么?
………………
來點嚴肅的吧:開發軟體為什麼貴,其實有兩種理解:1.為什麼開發軟體那麼費錢?2.為什麼軟體值那麼多錢?難道那麼多世界級大公司都是傻子么?顯然是因為軟體創造的價值超出了他們付出的成本。
前面回答的基本上都是第一個問題,我來回答第二個問題。
軟體本身都是不同程度的「弱人工智慧」,那麼智能值錢嗎?答案顯然是肯定的!有需求的時候律師一小時收你一千塊你也願意出啊。那麼,軟體行業本質上就是在對智能進行批發零售,不同的軟體只是銷售形式不同而已。這些智能有的來自幾十年經驗的專家(而且是一群),有的來自上億人的經驗總結(大數據),沒有軟體你能買到嗎?就算不是不可能,大概你也得花好幾個億。軟體創造的價值就在於此。為社會創造了價值,自然就應該得到相應的回報,天經地義。


一班程序員天天熬夜加班用命拼來的,能不貴么?


因為開發軟體不僅僅是機械性的編譯代碼而已。

你能免費下載到,並且大多數人都覺得簡單易用的好產品背後,往往存在一定的產品邏輯,人員支持以及技術難點解決。

當把簡單易用的操作界面留給用戶之後,難點消化都是在後台,而後台的一切都是用戶「看不見」的地方。往往「看不見」的地方就容易被忽略,但這些「看不見」的地方也是貴的原因所在。

我們團隊作為技術服務商,一直以來的客戶接觸,經常會涉及到這個問題,為了溝通更加徹底,我們會根據以下幾個角度,來建議客戶了解技術開發行業的基本情況,以便根據自身情況進行服務商的選擇。

其中包括:

1.大家關注的重點:開發人力成本。

無論是自建團隊還是技術服務商,都繞不過這塊成本,而開發人員素質條件以及團隊項目經驗決定了人力成本的高低。而這兩個條件也會直接影響產品程序質量以及後續維護迭代。

2.不被重視的產品需求細化以及忽略需求變更的連帶成本。

自己組建團隊中,出現產品需求的變更,大部分人的關注點一般都在:技術開發人員因為更改需求,出現反覆工作,勞動成果作廢,重新開始,以及開發時間上的延長,開發人員的加班,以及負面情緒等等。不會直接上升到變更成本金額體現。

而需求變更成本在與外包的合作過程中,因為處於明確的合同條款內,關注點直接集中在利益相關,表現在需求變更成本凸顯以及開發期的變動。因為合同內需求變更產生的利益連帶後果,雙方均需承擔。

3.非專業人士不理解的技術難點。

免費下載使用的產品,功能邏輯簡單,不等於技術含量不高,成本小。

比如谷歌搜索的邏輯,操作很簡單,輸入關鍵詞,檢索出包含關鍵詞的網頁。簡單到用戶只需要點幾次滑鼠就能得到結果的邏輯,但是背後的技術優化支持是普通用戶不知道的。

普通用戶在體驗上大多就是我能免費用這個搜索平台,檢索出我需要的相關結果信息而已。

4.常常被忽略的產品設計體驗價值。

相比起技術,人力的可估算,設計的價值在普通用戶眼裡,一般都是個人審美導向,意識不到設計對於自身行為的影響。所以在產品設計上的價值評估最後還是要以數據來說明結論。

《增長黑客》里案例寫到,Airbnb 曾將「增加到心愿列表」的圖標由星形改成心形,從而讓這功能的用戶使用率提升了 30%。而這30%的提升在我們看來就是

《增長黑客》里案例寫到,Airbnb 曾將「增加到心愿列表」的圖標由星形改成心形,從而讓這功能的用戶使用率提升了 30%。而這30%的提升在我們看來就是產品從設計上觸發用戶行為的價值體現,也可以看做是用戶體驗設計的經典案例。

Twitter也曾將「收藏」的五角星 icon 修改成「喜歡」的桃心,用以解決 twitter 的相關產品問題,觸發用戶行為。凱文.威爾-公司的產品資深副總裁表示,按鈕改變提升了百分之六的點擊率。如果將推特本身的用戶規模考慮在內,這百分之六的提升在總用戶佔比也是很大的。

所以說,設計價值在一定維度上是可計算的成本體現。

5.對產品開發模式的誤解。

希望用模板化開發的成本,滿足定製化開發的需求。節約成本本身沒有錯,但是也要根據需求來評估。

模板化模式的產品給企業提供的真正價值要根據企業的需求來定,其特點是產品簡單、開發速度快、收費相對便宜,但是對企業來說,模板套用的情況下並沒有獨特的市場競爭優勢。限制較多,束縛感會影響產品整體的協作。

而深度定製化模式開發產品,能夠完全根據企業的需求定製,重點在產品需求梳理,但周期長,開發和維護成本較高。

我們團隊在接受該類諮詢時,給與客戶的重點一定是放在初期的產品需求梳理。在溝通的過程中,協助客戶了解產品所處的行業環境,分析產品邏輯,給出體驗設計建議等等。在產品清晰後,客戶自然會明白在他的情況下,需要哪一種開發模式。

6.測試對產品的重要性。

測試是開發軟體流程中重要的一環,完整的測試流程,在一定程度上可以節約產品的時間成本,也能減少產品後期的維護成本。

以需求Review這一動作為例,產品完成的需求文檔讓開發、測試、運營進行Review,提出意見並修改,能提前發現已有需求的漏洞,提高整個開發過程的效率。

以上這些方面,除了大家關注的人力成本,都是一些不常被計算,但卻實際存在的成本。

無論是自建團隊還是選擇技術外包企業,在相同的人員素質下,開發軟體的成本應該是幾乎持平的。風澤作為技術服務商,接觸大大小小的創業者、傳統企業,溝通時經常提到,涉足一個行業,看見表面的華麗,也要看見表面下的脈絡。

盲目的開發軟體是一個試錯成本很高的一個行為。如果在商業模式模糊,產品定位不清晰的情況下,嘗試利用現有的各個工具平台達成試用方案解決需求,或許是更理智的做法。

————————————

FenzoTech - 知乎專欄


將不定期分享討論產品、設計、技術相關話題以及遠程團隊相關故事。


你是想問成本還是售價?

如果是售價的話,售價幾百萬的產品,往往是因為這個產品銷量小,無法攤平成本。這個世界上,銷量小的產品從來都會顯得相對昂貴,軟體也一樣。

如果一個軟體賣了幾百萬份,它可以賣得很便宜。如果一個軟體只賣幾十上百份或者只賣一份,那肯定是很貴很貴很貴的。題主,這難以理解么?

所以當你只接觸過那些賣幾百萬份的軟體時,會對那些只賣一份或者只賣幾十上百份的軟體的售價感到驚奇。然而仔細想想就知道,專門為你定製開發軟體一定貴,就是這個原因。


就是程序員的工資。而題主提出這個問題應該是理解不了軟體編寫的複雜度。所謂的你不知道自己不知道軟體開發有多麼困難,於是想當然的覺得任何軟體都只要雇兩三個程序員寫一兩個月就能寫完。覺得這樣算下來好像只要1w就能做出所有軟體。

顯然是不可能的。


吐槽程序員人工成本高的,有沒有想過,沒有程序員們免費開源的各種組件,開發軟體的費用還要乘以10。


確實。開發軟體的大頭是人力費用。加上一堆亂七八糟的設備,折舊費其實還是小頭。

題主有一種小農經濟的慣性思維——勞動力不值錢。


記得我小時候,勞動力似乎不是錢。

隔壁家電壞了,叫我爸去修,我爸去了一上午,也沒收1毛錢。似乎幫鄰居修點東西,自己也沒有什麼損失,還增進了人情關係。

自己家有事,叫上鄰居一起幫忙抬個什麼東西,汗流浹背的,鄰居也樂呵呵的。

有人住在農村的,告訴我農村裡的人特別熱情。要別人幫個什麼忙,哪怕要弄到汗流浹背,別人也會來幫——但是,一旦和錢財搭上關係,撕破臉皮也就是一瞬間的事情。


在小農經濟體系下,這種思維方式沒有毛病。

反正大家閑著也是閑著,互相幫幫忙,增進鄉里鄉親的感情,還秀了一把自己的能力技術,何樂不為。人力確實不怎麼值錢,就算不去幫忙,呆家裡也是打打麻將打打撲克,也沒什麼特別有趣的事兒。


但問題是,開發軟體這種事情,並不是小農經濟體系下的。

一分鐘都是錢。一個最低端的碼農,一個月的支出怎麼也得1萬塊錢,如果是老手程序猿,項目負責人之類的,一個月支出2,3萬,4,5萬不算多。

這都不是錢嗎?這都不是錢嗎?這都不是錢嗎?time is money ,my friend!

人力都是直接換算成大筆大筆的錢的。


其實也就是在中國,人們才會這麼覺得。

在中國,大家覺得軟體不是實體,不值錢。

在中國,人多,大家覺得人力不值錢。

軟體工程啊!我們是工程師啊!你真當是民工啊?!

32個工程師的團隊能幹出WhatsApp,賣190億美元,你說人家就收你幾十萬,幾百萬,人民幣!能算貴嗎?


費用 = 單價 x 時間


單價很直觀

團隊工資、管理成本、辦公室租金、日常開銷等,這個很容易算,每個月 x 元。


時間不直觀

所以「開發軟體費用為什麼這麼貴?」主要源於自己的時間預估和最終實際的時間之間的巨大差異。你可能認為這個軟體1個月就可以上線,而實際的結果花費了5個月,你就會感覺很貴。

軟體開發是一個非常非標準化的工作,有非常多的不確定性會影響最終的時間,例如:前期需求不完善、技能不成熟、第三方效率等。


「開發軟體費用為什麼這麼貴?」不成立,其實ta一直是這個價,只是因為你的認知不夠成熟,只是你認為的貴而已。


厘米腳印-小而美的互聯網諮詢公司,致力於用技術創新提升效率的 geek 團隊,提供互聯網產品諮詢和研發服務,訪問 http://limijiaoyin.com了解更多。


理解正確,接下來請點開計算器。


10個人的小團隊平均每人月薪1W,一個月就是10W,開發一年就是120W啊 - -何況開發一個應用很多時候又不止程序員還有美工策劃等等,,,,,幾百萬很正常啦


1,一個產品的價格,不取決於產品的價值,而取決於產品的供需。

2,假設LZ在一家高大上的企業當著默默無聞的螺絲釘,用著平淡無奇的office,給上司做著那該死的ppt。忽然聽聞公司內部八卦,因為老闆捨不得給微軟交版權費,而被微軟寄了律師信,說,「你丫再不買我企業版的key,我就要在法庭上把你搞的欲仙欲死。」
你的心理是什麼感想?「老闆,我可以不做這個PPT了嗎?」

3,實例,
之前我曾在一家嵌入式開發公司當程序猿,每天用著arm家的產品來進行編譯和debug。那年經過我司諸多苦逼程序猿的辛勤勞作,終於突破年利潤9位數美刀,於是所有人都美美的拿了一個豐厚的年終獎。
年後回公司聽到的第一個八卦是:老闆乖乖的向ARM多買了50個key,好像10W美刀一個,原因好像是收到了律師信。。。

4,不要真把程序員當成程序猿,無論是哪方面。


其實我也覺得很不可思議,為啥一棟樓動輒幾個億——不就是搬幾塊兒磚么?


這種想法就是典型的『蓋一棟大樓,只需要建築工人就夠了』的思維模式。


你要記得軟體也不過是市場商品的一種,如果有人能用更便宜的價格提供幾百萬的軟體同樣質量的功能,誰會去買幾百萬的?然而並沒有


推薦閱讀:

TAG:程序員 | 軟體開發 | 成本 | 軟體外包 |