兄弟,你看做這樣一個軟體需要多少錢?” 這估計是所有軟體從業人員被問的最多也是最無奈的一個問題。這個問題等同於,“你看裝修一個100平米的房子需要多少錢?”。軟體開發你不懂,裝修你總懂吧,100平米的房子裝修從10萬到100萬均有可能,取決於你找什麼級別的設計公司,買什麼樣的材料,請什麼樣的施工隊……所以,我真的沒有辦法回答你“做這樣一個軟體需要多少錢?”的問題。
評估一個軟體開發的費用,你首先需要理清楚一些基本概念。
1. 招聘一個開發者的成本如今(2015年) IT 行業蓬勃發展,對軟體開發工程師的需求很大,導致工程師的工資一路水漲船高,以一線城市為例,一個能實際幹活的應屆開發者的月薪在10000元左右,3年以上工作經驗的基本能達到20000元。我們姑且把三年工作經驗定義為靠譜的開發者,再加上其他福利和管理成本,一個靠譜全職開發者的成本在30000元左右。這還沒有算上你招聘的成本,想想是不是很肉疼?沒辦法,行情就是這樣,就跟這房價一樣。
2. 外包專案費用的計算方式外包分為兩種,人力外包和專案外包。大資料開發和軟體定製是外包專案費用的計算方式,這裡有計算方式的報價,真的想用,可以來這,這個手技的開始數字是一叭柒中間的是叄兒零最後的是一泗二五零,按照順序組合起來就可以找到,如果只是湊熱鬧的話,就不要來了。人力外包是指外包公司派一個人去你公司工作,你按天支付這個人的費用給外包公司。目前這種外派的基本要價是1000元每天,好一點的人員在2000元以上。專案外包是指做完一個專案多少錢,不管外包公司投入多少人。有點類似於裝修隊的點工和包工。專案外包的價格雖然是打包價,但也是透過估算工時算出來的。例如一個專案預計需要兩個人開發20天,那就是40人天的工作量,按照1500元/人天算(這已經是良心價了),這個專案就是60000元。
看到這裡你一定會覺得,外包好貴,怎麼比招一個人的成本貴那麼多!君不見,用人除了硬性成本還有很多軟性成本的。例如招聘的時間成本,招來不合適開人的成本。而透過外包,你可以做到召之即來,揮之即去,這些軟性成本都是外包公司承擔了,你要算單價,自然會貴一些。
好了,下面我們回到正題,“開發這樣一個軟體需要多少錢?”。這裡的核心問題是如何定義“這樣”。你需要準確的估價,那就需要把需求定義清楚,否則估價就是耍流氓,最後一定導致糾紛。需求定義包含以下幾個方面:
設計要求一個好的設計是很貴的,因為涉及到創意,而且不好評估,見仁見智。就跟你請大師畫一幅畫,還是請普通畫師畫一幅畫一樣,看你想要什麼了。在我看來,絕大部分軟體專案設計中規中矩就好了,請一個有經驗的設計師,按照最新流行的設計風格設計一套 UI 都不會差到哪裡去。而且價格都比較便宜的,一個 APP 的 UI 設計,一般在10000 - 20000之間,應該能有不錯的效果。當然,你對設計沒有要求的話,你找一個應屆生做一套 UI,幾千塊就搞定了,也不會太醜的。
2. 功能要求我不止一次被問到,“我想做一個類似於微信的 APP……”,然後我就呵呵了。其實你不是真的想做一個微信,我相信你想要的只是微信的部分功能,例如聊天部分。所以你應該更加準確的描述你對功能的要求,例如:類似於微信的聊天功能,可以發文字,圖片,語音還有影片,可以多人拉群對話。有新訊息會彈出通知,聊天記錄儲存在伺服器端……。在這一點上不能懶,你需要強迫自己去描述這些功能,你不要以為你自己不懂就不去仔細思考,其實你可以的。有些功能看起來差不多,其實有很大的區別,比如聊天是否需要支援表情,表情是否支援動畫這些其實工作量都是很不一樣的。
3. 效能要求效能問題其實不是特別需要關注,因為在目前的技術發展水平上,效能都不會有太大的問題,特別是在專案初期,但也還是要說一說。同樣的功能,但是效能要求不一樣,工作量是完全不一樣的。還拿聊天來舉例子,這個功能是比較常見的,但是你說要像微信一樣支援幾億使用者同時聊天,那就是兩碼事了。同樣是個車,QQ和賓士還是很不一樣的。
在明確了以上資訊以後,你找一個有經驗的開發者或者專案經理就能給你一個明確的估價了。值得注意的是,軟體開發是一件非常不標準的事情,跟裝修很像,要留有餘地,你把費用卡的太死,最後別人只能偷工減料了。
當然還有一種估價方式,你先確定預算,然後再來定細節功能。例如你打算花50000來做一個 APP,具有類似微信的聊天功能,還有相互關注曬照片功能。你把詳細的功能需求給到開發者或者專案經理,他會去判斷你的預算能否實現你的要求,如果不能的話,你們再商量哪些功能可以先不做,例如聊天發表情功能不是很重要就先不做了,可以節約一些成本。
無論何種方式,都需要你明確需求,明確需求,明確需求!重要的事情說三遍。所以你找別人報價的時候,千萬不要只扔過去“開發一個類似於 xxxx 這樣的 APP 需要多少錢?”,你不會得到你想要的答案的,回答這樣的問題是不負責任的。不過,這倒不失為一種過濾服務方的一種方法
兄弟,你看做這樣一個軟體需要多少錢?” 這估計是所有軟體從業人員被問的最多也是最無奈的一個問題。這個問題等同於,“你看裝修一個100平米的房子需要多少錢?”。軟體開發你不懂,裝修你總懂吧,100平米的房子裝修從10萬到100萬均有可能,取決於你找什麼級別的設計公司,買什麼樣的材料,請什麼樣的施工隊……所以,我真的沒有辦法回答你“做這樣一個軟體需要多少錢?”的問題。
評估一個軟體開發的費用,你首先需要理清楚一些基本概念。
1. 招聘一個開發者的成本如今(2015年) IT 行業蓬勃發展,對軟體開發工程師的需求很大,導致工程師的工資一路水漲船高,以一線城市為例,一個能實際幹活的應屆開發者的月薪在10000元左右,3年以上工作經驗的基本能達到20000元。我們姑且把三年工作經驗定義為靠譜的開發者,再加上其他福利和管理成本,一個靠譜全職開發者的成本在30000元左右。這還沒有算上你招聘的成本,想想是不是很肉疼?沒辦法,行情就是這樣,就跟這房價一樣。
2. 外包專案費用的計算方式外包分為兩種,人力外包和專案外包。大資料開發和軟體定製是外包專案費用的計算方式,這裡有計算方式的報價,真的想用,可以來這,這個手技的開始數字是一叭柒中間的是叄兒零最後的是一泗二五零,按照順序組合起來就可以找到,如果只是湊熱鬧的話,就不要來了。人力外包是指外包公司派一個人去你公司工作,你按天支付這個人的費用給外包公司。目前這種外派的基本要價是1000元每天,好一點的人員在2000元以上。專案外包是指做完一個專案多少錢,不管外包公司投入多少人。有點類似於裝修隊的點工和包工。專案外包的價格雖然是打包價,但也是透過估算工時算出來的。例如一個專案預計需要兩個人開發20天,那就是40人天的工作量,按照1500元/人天算(這已經是良心價了),這個專案就是60000元。
看到這裡你一定會覺得,外包好貴,怎麼比招一個人的成本貴那麼多!君不見,用人除了硬性成本還有很多軟性成本的。例如招聘的時間成本,招來不合適開人的成本。而透過外包,你可以做到召之即來,揮之即去,這些軟性成本都是外包公司承擔了,你要算單價,自然會貴一些。
好了,下面我們回到正題,“開發這樣一個軟體需要多少錢?”。這裡的核心問題是如何定義“這樣”。你需要準確的估價,那就需要把需求定義清楚,否則估價就是耍流氓,最後一定導致糾紛。需求定義包含以下幾個方面:
設計要求一個好的設計是很貴的,因為涉及到創意,而且不好評估,見仁見智。就跟你請大師畫一幅畫,還是請普通畫師畫一幅畫一樣,看你想要什麼了。在我看來,絕大部分軟體專案設計中規中矩就好了,請一個有經驗的設計師,按照最新流行的設計風格設計一套 UI 都不會差到哪裡去。而且價格都比較便宜的,一個 APP 的 UI 設計,一般在10000 - 20000之間,應該能有不錯的效果。當然,你對設計沒有要求的話,你找一個應屆生做一套 UI,幾千塊就搞定了,也不會太醜的。
2. 功能要求我不止一次被問到,“我想做一個類似於微信的 APP……”,然後我就呵呵了。其實你不是真的想做一個微信,我相信你想要的只是微信的部分功能,例如聊天部分。所以你應該更加準確的描述你對功能的要求,例如:類似於微信的聊天功能,可以發文字,圖片,語音還有影片,可以多人拉群對話。有新訊息會彈出通知,聊天記錄儲存在伺服器端……。在這一點上不能懶,你需要強迫自己去描述這些功能,你不要以為你自己不懂就不去仔細思考,其實你可以的。有些功能看起來差不多,其實有很大的區別,比如聊天是否需要支援表情,表情是否支援動畫這些其實工作量都是很不一樣的。
3. 效能要求效能問題其實不是特別需要關注,因為在目前的技術發展水平上,效能都不會有太大的問題,特別是在專案初期,但也還是要說一說。同樣的功能,但是效能要求不一樣,工作量是完全不一樣的。還拿聊天來舉例子,這個功能是比較常見的,但是你說要像微信一樣支援幾億使用者同時聊天,那就是兩碼事了。同樣是個車,QQ和賓士還是很不一樣的。
在明確了以上資訊以後,你找一個有經驗的開發者或者專案經理就能給你一個明確的估價了。值得注意的是,軟體開發是一件非常不標準的事情,跟裝修很像,要留有餘地,你把費用卡的太死,最後別人只能偷工減料了。
當然還有一種估價方式,你先確定預算,然後再來定細節功能。例如你打算花50000來做一個 APP,具有類似微信的聊天功能,還有相互關注曬照片功能。你把詳細的功能需求給到開發者或者專案經理,他會去判斷你的預算能否實現你的要求,如果不能的話,你們再商量哪些功能可以先不做,例如聊天發表情功能不是很重要就先不做了,可以節約一些成本。
無論何種方式,都需要你明確需求,明確需求,明確需求!重要的事情說三遍。所以你找別人報價的時候,千萬不要只扔過去“開發一個類似於 xxxx 這樣的 APP 需要多少錢?”,你不會得到你想要的答案的,回答這樣的問題是不負責任的。不過,這倒不失為一種過濾服務方的一種方法