
恆遠自己每年要跑十幾條系統開發流程,客戶端的、自有產品的都有。累積下來我們發現一件事:專案真正出事的節點,幾乎沒有一次是「程式寫不出來」。出事的地方都很無聊,前一週有人講了一句「這個應該可以吧」,沒有人寫下來,三個月後兩邊對著同一份畫面各自認定對方要負責。
所以這篇不打算教你判斷技術好壞。你是付錢的一方,真正需要知道的是:這七個節點各自要交出什麼、什麼時候該把錢押住、哪一句話沒寫進文件會在三個月後變成加價單。
台灣的中小企業在這件事上吃虧特別多。Standish Group 的 CHAOS Report 長年統計顯示,軟體專案完全照原訂範圍與預算交付的比例只有三成上下,而失敗案例裡最常見的根因是需求不明與範圍變更,兩者加起來壓過技術問題。這個數字幾十年沒有明顯改善,代表它是流程問題,不是技術進步能解決的問題。

系統開發流程真正卡住的地方,八成不在寫程式
先講結論:專案延遲的成本,八成產生在需求訪談跟驗收這兩端,中間的開發期反而是最可控的。
原因很單純。開發期有程式碼、有 commit、有測試,進度是看得見的;需求訪談跟驗收沒有產出物可以量,全靠雙方對「講清楚了沒」的主觀認知。認知落差累積到上線前才引爆,那時候改一個欄位的代價已經是需求期的十倍。
業界有個很老但一直成立的經驗值:缺陷在需求階段被抓到的修正成本設為 1,到了設計階段大約 5,寫進程式碼大約 10,上線之後可以到 100 以上。IBM Systems Sciences Institute 的早期研究提出這組比例後,後續各家統計的絕對數字有出入,倍率關係倒是很一致。你在需求訪談多花的兩個下午,換的是後面兩個月不用重做。
這也是為什麼下面這張表要放在最前面。你可以只看這張,剩下的內文是給想知道「為什麼」的人看的。
七個節點速覽:你要交什麼、廠商要交什麼、通常卡在哪
節點 | 你這邊要出什麼 | 廠商要交什麼 | 最常卡在哪 |
|---|---|---|---|
需求訪談 | 現況流程、真實表單、決策者本人到場 | 訪談紀錄、流程圖、待確認清單 | 派了不做這件事的人來開會 |
規格與報價 | 確認範圍、圈出必要與加分功能 | 功能清單、SOW、分項報價 | 報價只有總價,看不出砍哪裡 |
UI/UX 設計 | 限時回饋、一次收齊各部門意見 | 線框圖、視覺稿、改稿次數上限 | 改稿沒上限,設計期無限延長 |
開發 | 指定單一窗口、及時回答問題 | 週報、可點的測試環境、進度對照 | 只有口頭進度,看不到東西 |
測試 | 找真的使用者測,不是老闆自己點 | 測試案例、缺陷清單、修復紀錄 | 廠商測完就說可以上線 |
驗收 | 依事先寫好的標準逐項簽 | 驗收報告、原始碼、部署文件 | 沒定義完成,付款卡死 |
上線與保固 | 回報問題的固定管道 | 上線計畫、回滾方案、保固範圍 | 保固與新需求界線模糊 |
接下來逐節點拆。每一節都會給你一句可以直接複製進信裡問廠商的話。
需求訪談:你講得越具體,後面改得越少
這個節點你的發言權最大,之後只會越來越小。廠商在這個階段能改的東西成本趨近於零,等程式寫下去,同一句話的價碼就變了。
常見的失誤是派錯人。老闆覺得這是技術會議,派了 IT 或行政去開,但真正每天在跑這條流程的是業務跟倉管。訪談紀錄回來全是二手轉述,細節都對不上。真正該到場的是那個每天被這件事煩到的人。
第二個失誤是講功能不講痛點。你說「我要一個報表功能」,廠商就做一個報表功能給你,做完你才發現你要的是「每天早上八點自動把昨天的數字寄給三個主管」。前者是介面,後者是流程,價差可以到兩倍。
好需求跟壞需求的白話對照
你說的話 | 廠商聽到的 | 會做出什麼 | 應該怎麼講 |
|---|---|---|---|
我要能管訂單 | 訂單 CRUD 介面 | 一個要人工輸入的表格 | 業務接到 LINE 訂單後,要在手機上三十秒建單並自動通知倉庫 |
報表要完整 | 多加幾個欄位 | 一張沒人看的長表 | 會計月結時要能匯出對得上發票的明細,格式跟現在的 Excel 一樣 |
權限要分清楚 | 加一個角色欄位 | 所有人還是看得到全部資料 | 業務只能看自己的客戶,主管看整組,老闆看全部,離職當天要能一鍵關閉 |
要能跟現有系統串 | 開一個 API | 串不上,因為對方沒 API | 要接的是某某廠牌 ERP,版本是某某,我可以請對方窗口出來對接 |
把這張表拿去對照你手上的需求文件。如果左欄那種句子超過三句,你的需求訪談還沒做完。
需求整理完該產出的是一份文件,不是一場會議的記憶。這份文件業界叫需求書或 BRD,我們另外寫過完整的欄位範本,可以直接照著填:老闆找外包前必備的客製化系統需求書寫法。
⚠️一句話拿去問廠商
「這次訪談的結論,你們會出一份什麼文件給我確認?多久出?」廠商如果回答「我們直接報價」,代表他打算跳過這一關,後面所有爭議都會回到這裡。
規格與報價:把「做什麼」寫成可以驗收的句子
規格書的唯一任務,是讓三個月後的你能拿著它逐條打勾。做不到這件事的規格書,寫得再厚都只是簡報。
判斷方法很簡單:每一條規格後面加一句「怎麼證明它做到了」。答得出來的是規格,答不出來的是形容詞。
形容詞(不可驗收) | 改寫成規格(可驗收) |
|---|---|
系統要好用、介面要直覺 | 新進業務不用受訓,照著操作說明可在五分鐘內完成第一筆建單 |
速度要快 | 訂單列表頁在一千筆資料下,載入時間低於兩秒 |
手機也要能用 | 支援 iOS 與 Android 最新兩個版本的 Chrome 與 Safari,主要流程在 390px 寬度下可完整操作 |
資料要安全 | 全站 HTTPS、密碼雜湊儲存、每日自動備份保留三十天、可還原到指定日期 |
之後要能擴充 | 提供 REST API 與文件,欄位新增不需修改既有前端程式 |
報價的部分,你要的是分項,不是總價。只給一個數字的報價單,代表你談判時只能砍總價,砍完廠商會自己決定從哪裡省,通常省掉的是測試跟文件。分項報價才能讓你說「這個功能先不做,第二期再說」。
同一份需求給三家報,價差三到五倍是常態,這件事本身不代表有人在騙你。落差來源、以及當場能驗證的問句,我們整理在這篇:三家報價差五倍完整解碼框架;想知道系統開發費用各段實際包含什麼,看系統開發費用完整拆解。
規格談定之後,要把它掛進合約。合約層面的規格紅線、驗收里程碑與罰則寫法,另外一篇有完整模板:SOW + 規格書 + 合約完整指南。
UI/UX 設計:改稿次數要寫進合約,不是靠默契
設計期最該先談定的一件事是改稿次數上限,而且要寫進合約。這句話對雙方都是保護。
沒寫上限的專案通常這樣走:第一版出來,老闆看了說可以;第三天業務主管看到,說配色不行;第十天老闆娘路過,說按鈕太小。每一輪都很合理,加起來設計期從三週變成三個月,開發只能停在那裡等。廠商吃了成本,你吃了時間,沒有人是贏家。
務實的做法是:合約寫「線框圖兩輪、視覺稿三輪,超出部分依人天計價」,然後你這邊承諾一次把所有部門的意見收齊再回。內部意見沒收齊就回饋,等於用廠商的工時當你的內部會議室。
設計交付物 | 這一份在確認什麼 | 你該找誰一起看 | 確認後還能改嗎 |
|---|---|---|---|
流程圖 / 資訊架構 | 有幾個角色、每個角色走幾步 | 實際操作的員工 | 可以改,但會連動報價 |
線框圖 | 每頁放什麼、按鈕在哪 | 部門主管與第一線 | 可以改,算在改稿次數內 |
視覺稿 | 顏色、字級、品牌感 | 老闆與行銷 | 可以改,改動大會影響工期 |
互動原型 | 點下去會發生什麼 | 全部關係人 | 此後再改視為新需求 |
互動原型確認那一刻,是你最後一次能低成本改變主意的時機。過了這條線,同樣的修改要動程式,價碼跟工期都不一樣了。
開發期:看不到進度,就是你這個專案最大的風險
開發期你唯一該堅持的事情:每週要有一個你點得進去的網址,不是一份寫著「進度 60%」的報告。
進度百分比是這個行業最沒有資訊量的數字。它可以連續四週都停在 80%,而你完全無從查證。可以點的測試環境不會說謊,功能在就是在,不在就是不在。
這裡要講一個我們的判斷,可能跟不少同業的說法不一樣:我們認為固定總價、瀑布式一路做到底的合約,對中小企業客戶是比較差的選項,即使它看起來風險比較低。固定總價會逼廠商把所有不確定性都灌進報價,也會讓雙方在任何一個小變更上進入談判狀態,最後大家把力氣花在攻防而不是產品上。分階段驗收、每階段獨立計價,帳面上麻煩一點,實際上兩邊都不用把對方當敵人。
週報該長什麼樣,有一個很低的及格標準:這週完成什麼、下週要做什麼、卡住什麼需要你決定。第三項最重要。廠商的週報如果從來沒有第三項,通常代表他在自己猜你的意思。
週報項目 | 及格 | 不及格 |
|---|---|---|
完成事項 | 訂單建立與編輯已可在測試站操作 | 後端開發持續進行中 |
下週計畫 | 接上金流測試環境,完成付款流程 | 繼續開發 |
待你決定 | 退款是否要主管審核?影響兩天工期 | (空白) |
風險 | 某某 API 對方尚未給測試金鑰,可能延一週 | (空白) |
進度真的跑不出來時,不要等到上線前才處理。止血條款、換廠觸發訊號與決策順序,這篇寫得比較完整:客製化系統開發專案延遲完整指南。另外「PM 是誰」這件事值得在合約階段就釘死,軟體外包 PM 配置完整指南 有三種配置模式的對照。
恆遠自己是這樣跑的。我們接案累積到現在有 40+ 企業客製案落地,同時也在做自家產品,兩邊用同一套節奏:每週一個可點的環境、每週一份帶「待你決定」欄位的週報。做自有產品時我們是自己的甲方,被自己的模糊需求坑過幾次之後才把這套流程收緊,例如影視器材租賃與檔期系統那個案子,檔期衝突的判斷規則就是在需求訪談來回三輪才定案的,那三輪省下的是上線後整套排程邏輯重寫。
測試:廠商測完不等於你驗完,這是兩件事
廠商的測試在確認「功能有照規格做出來」,你的測試在確認「這套東西放進我公司真的跑得動」。兩者不能互相取代。
最常見的錯誤是老闆自己點一點覺得沒問題就簽了。老闆點的是理想路徑,真實世界是業務會在收訊不良的工地用手機建單、會計會把三千筆資料一次貼進去、有人會按兩次送出。這些情境只有每天做這件事的人想得到。
測試階段該做的事情有三件:找三到五個真的會用的員工、給他們一份平常會遇到的真實資料、讓他們用平常的裝置跑一遍完整流程。發現的問題寫進缺陷清單,標上嚴重度,跟廠商約定哪些等級必須在上線前修完。
嚴重度 | 定義 | 上線前必修? | 範例 |
|---|---|---|---|
阻斷 | 主要流程走不完 | 必修 | 訂單送出後沒有存進資料庫 |
嚴重 | 有替代方式但很痛 | 必修 | 匯出報表超過五百筆就逾時 |
一般 | 影響體驗不影響結果 | 可排保固期 | 手機版按鈕位置偏移 |
輕微 | 文字、樣式 | 可排保固期 | 錯字、標題字級不一致 |
上線前如果這套系統會碰到客戶個資或金流,值得多花一筆做第三方程式碼審計。該查哪六項、報價區間大概落在哪,這篇有整理:客製化系統程式碼審計完整指南。
驗收:先定義什麼叫完成,再來談尾款
驗收糾紛百分之九十來自同一件事:合約簽的時候沒有人寫下「完成」的定義,等到要付尾款才開始吵。
這一節是整條系統開發流程裡最值得你花時間的地方。前面六節做得再好,驗收標準寫得含糊,你還是會在最後一哩路卡住。
可用的驗收標準只有一種寫法:可觀察、可重複、有數字。「系統運作正常」不是標準,「以三十筆真實訂單完整走完建單到出貨,全部成功且資料無誤」才是標準。
驗收標準寫法 | 會發生什麼 |
|---|---|
系統依規格書完成即為驗收通過 | 雙方對規格書解讀不同,吵到律師 |
甲方確認無誤後驗收通過 | 甲方永遠可以說還沒確認完,廠商拿不到錢 |
驗收期十四天,逾期視同通過 | 對廠商安全,但你可能被自己的忙碌坑掉 |
依附件驗收清單逐項測試,阻斷與嚴重等級缺陷全數修復後通過,驗收期十四天 | 兩邊都有依據,這是可用的版本 |
付款節奏要跟驗收節點綁在一起。常見且合理的分法是簽約三成、設計確認兩成、開發完成三成、驗收通過兩成。最後一筆保留款不要低於兩成,那是你唯一還握著的籌碼。
驗收當天該交接的東西,除了系統本身還有原始碼、資料庫結構、部署文件與第三方服務帳號。這幾樣沒拿到,你等於租了一套系統。完整的交接檢查項目在客製化系統開發交付驗收完整 SOP;如果案子金額大、廠商規模小,可以考慮加一層源碼託管當保險。
上線與保固:這裡是維運的起點,不是流程的終點
上線那天最該備好的東西是回滾方案。慶功可以延後,切換正式環境前手上沒有回滾計畫,等於拿公司當天的營運下注。
多數中小企業的第一次上線都會選在週五晚上或連假前一天,理由是「出事還有時間處理」。實務上這個時間點最糟:出事的當下人最少,隔天要找人支援也找不到。比較安全的做法是選在平日的營運低峰,例如週二上午,全公司都在、廠商也在線上。
回滾方案要具體到「誰在什麼情況下有權喊停、切回舊流程需要幾分鐘、切回去之後新系統那幾筆資料怎麼補」。這三題答得出來,上線就不可怕。
保固期最容易起爭執的是「這算 bug 還是新需求」。界線可以先寫在合約裡:規格書上有寫但沒做到、或做了但不符合驗收標準,算 bug,廠商免費修;規格書上沒有的,算新需求,另外報價。有這一句,保固期就不會變成雙方互相消耗。
情況 | 算 bug(免費修) | 算新需求(另計) |
|---|---|---|
匯出的報表數字對不上 | 是 | |
想多加一個篩選條件 | 是 | |
手機上按鈕點不到 | 是 | |
要接一個新的物流商 | 是 | |
某某瀏覽器上排版跑掉(規格有列該瀏覽器) | 是 |
保固期結束前一個月,就該把維運合約談完。三種維運模式的費用結構、十二條必看條款與換廠商決策樹在這篇:軟體外包驗收後的維運合約怎麼簽。
整條流程走一次,你真正需要準備的東西
回頭看這七個節點,你要準備的東西其實只有三樣:一份寫得夠具體的需求、一份可以逐條打勾的驗收清單、一個能替你在會議上做決定的窗口。這三樣到位,剩下的都是廠商的事。
如果你正在評估要不要發包、或已經收到報價但看不懂裡面在寫什麼,可以把你現在的情況丟過來聊聊,我們陪你看這條流程從哪一段開始最划算、哪些功能可以留到第二期。系統裡如果有想接 AI 的部分,AI 系統開發 那邊也可以一起看。
系統需求釐清表下載
還沒動手發包、需求也還沒整理成文件的,可以先照 客製化系統需求書 8 大關鍵欄位範本 填一輪,把上面「好需求 vs 壞需求」那張表的右欄句型套進去,發出去詢價的品質會差很多。
ℹ️我們怎麼看
接下來三年,系統開發流程會被 AI 壓縮的是中間那一段,開發跟測試的工時會明顯下降。但需求訪談跟驗收這兩端不會被壓縮,反而會變得更關鍵:當寫程式的成本降下來,決定專案成敗的比重就全部往「你到底想清楚沒有」那一側移動。我們的取捨是把省下來的工程時間放回前後兩端,需求多談一輪、驗收標準寫細一點。給老闆的判斷方法也一樣:下次比較廠商時,與其問他用什麼技術,不如問他需求訪談會出什麼文件、驗收標準怎麼寫。這兩題答得具體的那一家,通常也是真的做得完的那一家。
ℹ️我們做過這件事
這篇講的節奏,恆遠自己每天都在跑。目前 40+ 企業客製案落地,從需求訪談到保固期都是同一套流程走下來的。
舉個實際的:食品階梯報價與型錄系統 那個案子,階梯計價的規則在需求訪談就拆到「幾箱換一個級距、跨級距怎麼算」的層級,寫進規格書之後驗收只花了一輪;生產力管理系統 則是在互動原型確認那關多留了一週給現場人員試點,上線後幾乎沒有回頭改。
看到這裡,如果你也在想「這條流程放到我們公司會是什麼樣子」,我們很樂意 聽你聊聊現在的實際情況,一起看看從哪一段開始最實在。
Q系統開發流程通常要跑多久?
以中小企業常見的內部管理系統來說,需求訪談到上線大約三到六個月。需求訪談通常兩到四週、設計三到四週、開發八到十二週、測試與驗收三到四週。真正拉長工期的多半是需求反覆與驗收卡關,不是開發本身。
Q需求訪談我該找誰一起開會?
找每天實際跑這條流程的人,加上一位有權當場拍板的主管。只派 IT 或行政參加,訪談紀錄會全是二手轉述,細節對不上。決策者不到場,會議結論隔天就會被推翻。
Q規格書要寫到多細才夠?
每一條規格後面都答得出「怎麼證明它做到了」就夠細了。答不出來的那幾條是形容詞,要改寫成可觀察、可重複、有數字的句子,例如把「速度要快」改成「訂單列表頁在一千筆資料下載入低於兩秒」。
Q驗收沒過可以不付尾款嗎?
可以,前提是合約裡有寫清楚驗收標準與驗收期。標準寫成「甲方確認無誤」這種主觀條款,雙方都會卡住。建議寫成「依附件驗收清單逐項測試,阻斷與嚴重等級缺陷全數修復後通過,驗收期十四天」,並保留兩成以上尾款。
Q驗收時廠商一定要給原始碼嗎?
要看合約怎麼寫,所以這件事必須在簽約前談定。除了原始碼,資料庫結構、部署文件與第三方服務帳號也要一併交接。案子金額大而廠商規模小的情況,可以再加一層源碼託管當保險。
Q上線之後發現問題,算保固還是要另外付錢?
界線建議寫進合約:規格書上有寫但沒做到、或做了但不符合驗收標準,算 bug 由廠商免費修;規格書上沒有的功能,算新需求另外報價。沒有這一句,保固期會變成雙方互相消耗。
AUTHOR
自由揚John






留言(0)
尚無留言,成為第一個留言的人吧!