給發案方的軟體外包 ABC — 價格篇

Keyo
6 min readJun 25, 2018

--

從以前接觸不少想要外包軟體開發的案主詢價,常常他們的內心會有個價碼,但我聽完需求後,跟他們預估一個執行可能需要的花費,常常是他們內心那個數字的 10 倍以上。

到底為什麼會有這麼大的落差,基本原因我覺得是發案方並不清楚,開發一個系統或是軟體或是 app 的所需要的細節。他們常常會說「我的需求很簡單,就……」,可是他們常常不明白,這個「很簡單」,只是想起來很簡單,執行起來搞不好難度不輸蓋一棟 101。

我一直都認為不知者不罪。

但是當時做為一個接案工程師,每個案主都不具備發案基本知識,準備的預算又常連一半都不到,導致每次我都像做功德一樣地教育案主,然後案主被教育完之後發現自己真的想太多,直接決定不發包。太有良心不想騙錢,到最後搞到自己三餐不繼。

台灣的軟體外包世界是個惡水,分不出好壞,價錢高低不一定代表品質。當然這種一片混沌的現象,部分源於外包世界太過神秘,行外的人摸不清頭緒,遇到沒良心的外包公司常常花大錢結果做出垃圾。

台灣以外的世界,自由工作者以工時報價為常態;但是台灣的軟體或是設計外包,常常是論件整包計價,價格非常不透明。大部分的台灣外包公司都是派出所謂的 sales 或是 PM 和發案方交涉談需求,有的還會預先免費出提案書,這部分的「服務」,接案方都會聲稱他們不收費。等到他們進入報價階段之後(或是等肥羊上勾以後),再以非常不透明的方式,將原本的初估的底價乘以倍數混入最終報價中

坊間的這種整包的報價方式,雖然可能讓所謂的接案公司賺到錢,但是成案與否靠的是業務或是 PM 嘴巴強不強,卻同時讓開發一個軟體最重要的步驟「規劃與設計」的價值被忽略,也同時讓工程師的專業價值被無視,因為最後驗收過不過常也可以靠一張業務嘴弄到過,反正錢拿到手不要被告大家開心就好了不是?

合約精神無法被落實,專業不曾在談判桌上被衡量,整筆交易淪為在菜市場買菜喊價的等級。「專業」在整條產業鍊被無視太久,惡水環境於是形成。

我覺得如果事情可以被正確執行,那就不該鄉愿的隨波逐流。

當年和 Ikea Lee 弄出了一套接案的流程,基本如下圖。

imba synergy 的服務模式

我們採用台灣基本上不太有人使用的工時報價機制,將軟體開發分成三大階段,分別是「需求訪談/設計規劃」、「開發」及「維護」三個部分。這三個部分,都會分階段出合約收費。

這是非常大膽的嘗試,我們認為「需求訪談/設計規劃」才是整個軟體系統開發能夠成功的最重要因素,工程師能夠做出較無 bug 的系統,案子能夠順利結案,基本都是在這個階段奠下基礎的。而因為大部分的案主基本完全沒有軟體工程的概念,在這個階段其實也是他們必須要學習相關資料,同步雙方溝通辭彙的最好時間點。

這樣說可能有點抽象,我也不確定讀到這個部分還有多少人(笑)。

舉個大家常見的例子來做類比好了,台灣是個很愛做房產買賣的地方,這部分的「規劃設計」等於在新建地開工前所有的規劃,正常都是專業人士像是建築師、土木技師……等等等等地來負責,之後才是開工。

在軟體外包的世界如果跳過這些專業規劃,等同於你想自己蓋一棟房子,卻不要專業人士幫你設計,就直接聽信買預售屋的業務幾句話,然後接著就叫工人開工了,連監工或是所謂的工地主任都不要,一幫工人利用通靈大法直接幫你蓋起了房子,最後他們蓋完了,你要嘛直接買單,要嘛就兩方告上法院。

我們要自建房子,通常不會白目到不付費給建築師,但為什麼會在軟體外包的時候,認為規劃和設計這部分應該免費?聽來都覺得荒謬,但這真是業界常態。接案方一邊抱怨發案方不尊重專業,卻同時順手把自己的專業也埋葬掉了。

在資本主義世界中,想要得到別人的專業,最公平也最簡單的方式就是拿錢出來換。因此,在這個機制中,和發案方的需求訪談會議,都是計時收費的;會議後產生的設計稿、規格書等等,也是先報價再簽好合約、依雙方議定來收費。等到需求規格完全談妥後,才會出開發規格書及合約書,工程師們這時才需要進場,依功能做工時報價。雙方簽妥開發及驗收合約後,交付該交付的東西,完成開發程序,之後再視需要決定是否要進入「維護」階段。

台灣的發案方,看到這種「每個部分都要錢」的機制,通常都是「奇摩子瓦律」,他們比較喜歡台灣傳統外包那種包著糖衣的毒藥。不過,這種機制,只是一開始看起來嚇死人,但卻是真的能夠在專案品質和發案方預算上達到最高效益的解方,說白話點,這種機制的 CP 值對雙方來說都非常的高。

當然細部規則還有怎麼執行,暫時就不先談。先來聊一下發案方最關心的話題:「說這麼多,我只想知道我做一個軟體到底是要花多少錢?」

簡單來說,如果發案方愈能清楚描述自己想要的功能需求,接案方在收歛需求並轉化成開發規格書的過程愈順利有條理,工程師能夠針對各功能更準確的做出工時估價,那麼這個系統開發的費用就會愈便宜。

好,我知道有些人還是覺得這種回答,基本上有回答和沒回答一樣。

回應我之前所說,需求收歛不是發案方強項,對於軟體工程基本知識通常為零,因此在設計規劃的時候,愈專業的接案方能夠愈快速地把發案方的需求整理並轉化成規格;而這部分依時計費,文件產出有憑有據,發案方可以自估預算。這部分的費用依專案大小,通常會落在數萬元到二十萬上下不等。

產出的規格書採買斷制,通常也是落在數萬元左右。

開發規格書交由工程團隊估價時,愈清楚的規格書,愈能準確依工時報價;工程師價格可由時薪 400 元至數千元不等,只要有做品質把關,貴的工程師和便宜的工程師報出來的總價會是差不多,但是經驗較夠的工程師(通常也是比較貴的那些),能讓發案方得到相對穩定的品質,以及相對短的開發時程。(如果要日後維護方便,又或是急件的話,不要找太便宜的菜鳥)

工時會被換算成工天(工期)報價,但這邊太細節了讓我直接跳過。大略說就是如果這個專案需要一個工程師花一個月工期來開發,那麼每月發案方要付出的費用正常會落在 5 萬元到 10 萬元左右。一個案子如果每個月需要 2 個以上的工程師,那費用我想大家可以自己加乘計算。

開發完後需要驗收測試,這部分依專案大小,費用約是數千元到數萬元不等。

其他的雜支,例如上雲端伺服器的費用等等,這些屬於相對小的支出,一樣是看使用服務多少才能決定,初啟案時費用都不高,免費或是數千元是常見的數字。這邊通常是發案方直接支付給相關服務,我們不轉手抽成,唯有進入維護合約需要人力時,才會收取人力維護費用

所以真正認真算下來,真有什麼東西想外包,而且不是隨便說說的開發想法,費用從數萬元到幾百萬,常是跑不掉的。

要省錢,請把錢先認真的花在設計規劃那個部分。花多少錢,施主,我想答案都在你們自己身上啊。(茶)

如果大家覺得這篇文章的內容,對你有幫助,請幫我拍個手喔。  :)

--

--

Keyo

偶爾寫點東西;資料科學;曾是 iOS 和後端工程師,做過的事雜到無法歸類,但本質是個科學家。