語焉不詳未必不好?軟體開發合約那些要注意的地方

更新於 發佈於 閱讀時間約 4 分鐘

軟體開發是結合領域知識、工程方法及成本控制等多面向的複雜任務,尤其在這個技術發展越來越快、用戶需求越來越細緻的時代,複雜度往往遠超想像。

而對一個新商業模式或數位轉型來說,驗證可行性及解決既有的痛點難度本就不低,如果還得再加上對於資訊技術的掌握度要求就更容易招致失敗。在這種情況下,尋求外包、找專業的支援就是個很理性的選擇。

但外包合作有那麼簡單嗎?且不論夥伴選擇及溝通本身就是學問(參考如何讓你的系統設計能真正解決問題),有時候連合約怎樣落都是個問題。

本篇文章稍微分享一下過往在合約來回時常碰到的問題及調整方向。

https://pixabay.com/illustrations/meet-relationship-business-1019875/

https://pixabay.com/illustrations/meet-relationship-business-1019875/

困難之處:非標準品本就容易雞同鴨講

軟體開發易生糾紛之處主要來自於標的物不明確,這也連帶使成本計算變得困難(參考軟體開發值多少?系統開發怎樣估成本)。

可能會有朋友覺得標的物哪裡不明確了?以電子商務來說,這個我們看的還少嗎,打開 google 搜尋一找一大把。但如果仔細思考,你會發現其實這些電商類似的地方在於體驗及用法,背後的運作邏輯甚至可能換間店就大不相同。

軟體開發的歷程在於重新描述、搭建流程而非單純的看到結果就仿照模擬

所以當甲乙方要立定契約時就容易雞同鴨講。畢竟連標的物不明確了,出現糾紛時當然難以說分明。

基於事實才是硬道理

蠻常在一些合約裡頭看到「… 雙方應秉持善良合作義務與對方協同合作 …」等條款,但比起這些文字上的概念敘述,找到共同立足點更為重要。

商務合作的底線不一定在道德約束,更常是在利益分配

列幾個可能的原則:

  1. 追求的公平要考慮雙方曝險程度:有時候在你這是 bug,在對方那可能是滅頂之災
  2. 追求達成商務需求而不是百分百規格:軟體工具畢竟是拿來用的,先求能用才能再求好用
  3. 保留彈性很重要:合作過程中標定方向後得隨時調整,世界上沒那麼多的想當然爾

條條款款都可以拉鋸

這裡聊幾個過往經驗中常常有來回,建議可以多注意的地方。

  1. 標的物要將商務需求進行描述明確,並將基本組成列清楚
  2. 最好能明訂一個局中可以決定最後規格的人,不下決定才是最不好的決定
  3. 文件的撰寫如非必要在過程中不要過度注重,很多時候清晰的文件在最後階段才有辦法確定。但要小心過程不要偏離終點
  4. 如同第一點,驗收的目的盡量注重在事實的功能而不要追求表象的完美。畢竟功能及架構對了,細部修整風險不大
  5. 開發期數可以以階段來分(如開案、期中及期末)也可以單純用時間切,重點在於兩造對於各期要達成的商業目標及功能能清楚標示
  6. 維護的重點在於維繫雙方對系統運作的成本共識。概念是為了維持甲方系統正常運作或出事時有人會處理,乙方需要維持怎樣的日常投入
  7. 產出的歸屬不要過度聚焦在排除乙方,軟體系統很難做到去乙方化(換個語言改寫也不是難事)。如果真的有必要,還是回到費用上討論的好
  8. 罰則的設計要分層次,以該期費用、乙方收到的費用、合作總價等逐步釐清。但也請注意甲乙方還是要盡量公平
  9. 尾款可以設定在最終移交標的物時。很多時候尾款結案會有糾紛,有個明確的任務界定(如程式碼移交)雖不完滿但至少明確

合約敲不定或有糾紛也只是個新起點而不是終點

其實雙方要能好好合作本質在於互信跟理解,合約只是一個協助這個目標的手段。就好比使用手冊、UI / UX 規格書、測試報告等前期、後期文件,合作契約也只不過是整個軟體的一個觀看視角 — 封裝的是合作關係

規範要合乎事實,提出異議也要設法思考解法。事後之明總是簡單,但卻也不聰明。

一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態

raw-image




留言
avatar-img
留言分享你的想法!
avatar-img
Sam Huang的沙龍
18會員
33內容數
從超過 50 個合作經驗中擷取在系統開發、顧問及營運上的經驗及心得
Sam Huang的沙龍的其他內容
2023/12/05
沒有最正確的軟體架構,通常都需要隨著時間和發展階段進行修正和修改。系統最終會變成怎樣往往也和公司的管理方式及運作模式密切相關。 在過去的幾年裡,為應對需求,公司的軟體架構走向了 JAMSTACK 的風格。這裡分享一些關於這種架構的感受和經驗。
Thumbnail
2023/12/05
沒有最正確的軟體架構,通常都需要隨著時間和發展階段進行修正和修改。系統最終會變成怎樣往往也和公司的管理方式及運作模式密切相關。 在過去的幾年裡,為應對需求,公司的軟體架構走向了 JAMSTACK 的風格。這裡分享一些關於這種架構的感受和經驗。
Thumbnail
2023/11/29
作為程式開發者,每次聽到「加個 flag 就好」或者「開個變數存起來」這種話總是會心頭一驚。理由也很正常,就是像這樣子的 workaround 並沒有真正解決問題,只是徒留技術債,以後怎麼爆炸的都不知道。 workaround 聽起來真的是十惡不赦,不是嗎? 可凡存在必有道理,不如來聊聊 wor
Thumbnail
2023/11/29
作為程式開發者,每次聽到「加個 flag 就好」或者「開個變數存起來」這種話總是會心頭一驚。理由也很正常,就是像這樣子的 workaround 並沒有真正解決問題,只是徒留技術債,以後怎麼爆炸的都不知道。 workaround 聽起來真的是十惡不赦,不是嗎? 可凡存在必有道理,不如來聊聊 wor
Thumbnail
2023/09/23
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
Thumbnail
2023/09/23
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
Thumbnail
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
人月神話一書中提到軟體工程的任務有兩種性質:本質性與附屬性。後者可能會隨著工具改良(如更好的程式語言及 IDE)而逐步改善,但前者才是真正複雜且難以攻克的困難點。 而系統串接亦然,其本身很常同時參雜著這兩種問題。或許在我們一切任務開展之前都順著這兩個大類對子分項做規劃會是個不錯的思路方向。說到底所
Thumbnail
人月神話一書中提到軟體工程的任務有兩種性質:本質性與附屬性。後者可能會隨著工具改良(如更好的程式語言及 IDE)而逐步改善,但前者才是真正複雜且難以攻克的困難點。 而系統串接亦然,其本身很常同時參雜著這兩種問題。或許在我們一切任務開展之前都順著這兩個大類對子分項做規劃會是個不錯的思路方向。說到底所
Thumbnail
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
Thumbnail
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
Thumbnail
在討論一件合作案的過程中,無論是出資的金主爸爸,還是付出勞力、創作甚至是表演的另一方,在許多次往返的溝通中即使再花時間也是得面對,因為在彼此透過口頭或是文字信息往返之後,最終都得面對真正的合同簽訂這一個流程。
Thumbnail
在討論一件合作案的過程中,無論是出資的金主爸爸,還是付出勞力、創作甚至是表演的另一方,在許多次往返的溝通中即使再花時間也是得面對,因為在彼此透過口頭或是文字信息往返之後,最終都得面對真正的合同簽訂這一個流程。
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
回顧過往,參與協作了超過 60 個軟體方案。 曾接觸過合作內容差異頗大,比如 仔細看看也還蠻多面向的,未來好像可以就這些部分做些分享交流。但總會想到一件事,到底這些開發裡頭到底都在做些什麼? 身為設計師是否常常覺得某些著名產品的體驗不好?比如該對齊沒對齊或重要功能拜放在很難找到的地方。
Thumbnail
回顧過往,參與協作了超過 60 個軟體方案。 曾接觸過合作內容差異頗大,比如 仔細看看也還蠻多面向的,未來好像可以就這些部分做些分享交流。但總會想到一件事,到底這些開發裡頭到底都在做些什麼? 身為設計師是否常常覺得某些著名產品的體驗不好?比如該對齊沒對齊或重要功能拜放在很難找到的地方。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News