軟體獲利的模式

學了幾年的程式設計,努力脫離新手村,也寫了幾個大大小小的專案,總是希望自己的努力有所回報。然而,對軟體人來說,會寫程式只算是跨過了基本門檻,但困難的是如何將自己的努力轉為獲利。本文介紹幾種常見的商業模式供有志於此的同好參考。

這些分類摘自某本英文書籍,因筆者很喜歡這些有軟工意味的標題,故採用之:

  • Software Development as a Service
  • Software as a Product
  • Software as a Service
  • Software Supporting as a Service

第一種模式就是俗稱的接案,這種模式是最容易上手的。總是會有套裝軟體無法滿足的情境,像是公司形象網站、企業內部軟體等,這種模式適時地填補套裝軟體無法滿足的空缺。然而,這種模式需逐案處理,無法大量複製。此外,軟體人的工時是無形的,很容易就 costdown,一不小心就會變成終日辛勞的「碼農」。

第二種模式就是傳統的賣軟體,這種模式最大的好處就是軟體不像汽車,前者是無形的,易於大量複製;最成功的例子就是微軟 (Microsoft)。然而,現在的時空背景和從前大不相同,近幾年程式語言、函式庫、開發工具選擇很多,一堆都免費、跨平台、開放原始碼,寫軟體的門檻其實比以前還低,單純以賣軟體維生的黃金期其實也過了。除了已經站穩腳步的商業公司,這種模式對新進者其實不友善。

第三種模式其實有點像前一種模式,只是搭上網路時代的順風車,將軟體雲端化。這種模式的好處是開發工具比以前容易取得,入門門檻低。但網路使用者會自動忽略網站其實需要成本去維護,很難直接對終端使用者收費,通常就是要將流量轉為廣告轉為收入。這種模式成功的例子像是谷歌 (Google)。

對獨立開發者來說,要結合第三種模式最常見的方式就是網頁軟體和行動軟體。這兩種模式沒有絕對的好壞,通常要考慮軟體的特性及可能的客戶群來決定軟體的形式。像是 draw.io 這種工具程式就比較適合弄成網頁,搭配桌機或筆電;而電腦遊戲通常比較適合弄成行動軟體,因為在手機上操作瀏覽器其實不是很方便。

第四種模式則不以軟體本身獲利,而用軟體做為支援其他服務的工具;像是 Uber 就將軟體變成網路計程車叫車服務的平台。由於這種商業模式需要異業結合,通常比較適合有一定資金的公司來入場。

當然還有一些其他的模式,像是寫書、錄教學影像、教補習班等,這類模式不以軟體本身獲利,但以領域知識來獲利,而知識也是一種無形的資產。或許還有其他的模式,各位讀者可再細心觀察。

軟體的商業模式並沒有所謂的聖杯 (the holy grail) 或黃金標準 (the gold standard),而會隨每位軟體人自身的條件及當時的時空背景有所不同。還是要觀察一些成功案例以找出最適合自己的模式,希望各位都可以找到自己的藍海。

上篇為什麼要 (或不要) 用 Python 實作資料結構和演算法
下篇低價搶市的迷思