「幫我做的跟 Facebook 一樣單純就好」
「嗯 … ?」
工作緣故蠻常需要給客戶軟體開發的報價,也蠻常在不同場合被問說怎樣衡量開發成本。其實這個問題不容易有個確定算法,在這篇文章稍微分享一下過去思考這個問題的關注點,也期待引出不同的觀點。
姑妄說之姑聽之,這裡只分享原則,不涉及具體數字。
而或許,這些原則也可以延伸到其他虛擬服務(如顧問)的定價上?
https://www.bilibili.com/video/BV1uQ4y1i7Xi/
以終為始:軟體開發的標的是什麼?
先聊聊開發的終點到底是什麼。
首先,軟體是一種協助我們的工具及手段,並不是目的本身。甚至好的系統及軟體往往能調動你的直覺,讓你不容易感受到它的存在。
在評估開發的標的時,切記要把關注點放在軟體系統是否能達成目標。細節會有無限多,過度的枝微末節很有可能兩敗俱傷。
規格存在的目的是對甲乙雙方建立完整的認知圖譜,一旦開始執行偏離是常見的事。就好比戰爭前訂定戰術戰略規劃並不是為了能在戰場上算無遺策,而是為了能在有其他干擾因素時仍能準確瞄準最後目標不走偏。
百分百準確的規格並不存在 — 除非你是在完成之後才寫規格。
困難跟意外無所不在,世事總不能盡如人意
此外,接受規格不能百分百達成其實這也是個保護自己的方式。
不管再怎麼細緻的規劃及溝通,甲乙方合作中還是會很常碰到零和的博弈。有時候會很開玩笑的說「甲乙方的關係從中文字就看得出來,甲站著乙跪著」。雖說是一句玩笑話但卻也反映了一些現實。
有時候大家不滿意的結果才是最好的結果。
兩個方向的評估:Top-Down + Bottom-Up
所以報價該怎麼看比較好?
建議大家從兩個方向來看,自上而下(Top-Down)及自下而上(Bottom-Up)。
自上而下的看法重點在於掌握全局,可以從這個工具最後順利運行後創造的商務價值來估算。這個方向在於框住你無法在此時此刻掌握的細節成本,事情總是越做越細也越做越複雜。舉例來說,如果能靠這個軟體系統能創造一年一千萬的業績,那初期開發成本抓個一兩百萬應該不為過才是。
自下而上的看法在於考慮執行,可以從開發及營運時所需要耗費的人力及物力成本來估算。人月神話雖告訴我們系統開發不是單純的乘法關係,但卻可以在提供一種成本的看法。但請記得最後再乘上一個比例(比如 1.2 ~1.5 倍)來大概觀察一下組合這些資源的黏著耗損。
從這兩個方向個抓數字後再取個中間值就能比較好的給出估計。更重要的是,當你從兩個方向去逼近中間,你就能對於實務上該從哪裡做取捨得到一個大致的手感。
可以打折,但我們總得知道打折後是犧牲了什麼?
結語:在一件事做完之前你不知道它能不能做完
其實不管怎麼估計都可能失準,在一件事做完之前你怎麼知道能不能做到?
可說到底,不出發的話我們也不知道到底能夠走到哪裡,總是得開始的不是嗎?
自上而下觀看全局,自下而上思考執行。然後,將目標設定在達成商務目標而不是百分百規格,保留彈性才有可能順利走到最後。
你又是怎麼做的呢?