2021年7月4日 星期日

我的軟體開發故事---從投資報酬率來說

我這邊的軟體開發指的是在PC 作業系統上的應用軟體開發。

對於我們老中來說:軟體開發定義跟老外的軟體開發應該是有所不同的。

這是我自己本身的經驗觀點啦。

畢竟在產業發展上,台灣的專業就是在於硬體設計開發與製造。所以許多

軟體開發工作都是一些附屬的價值,所以對許多老闆來說:要不要養專業的

軟體開發工程師或團隊,就有著不同的經濟成本考量。除非公司本身的定位就是

應用軟體開發,而他們的產品就是賣軟體。但在台灣這一種專業的專業軟體

公司在比例上就比較少。

而我上面所指的附屬價值,往往就是為了讓自己的硬體產品可以有比較好的賣相。

譬如:往往是賣硬體送軟體,就算自己沒有專業的軟體開發工程師或團隊,

去買一個來送都可以,譬如買NoteBook 可能就附個陽春版防毒軟體或簡單的影音

播放軟體。而既然是免費的,在授權取得方面費用上當然就會斤斤計較...

這些是大型公司或產品的考量,但對於小公司或小產品的話,那就更不用說了。

在硬體銷售成本上,附屬的應用軟體到底要占多少?就真的要拿捏得更緊了。

所以在台灣念資工搞軟體的,有很多畢業後都幾乎跑去搞韌體或系統,真正

留在專業很純的應用軟體開發工作就比較少,(這幾年手機遊戲軟體就另當別論,

我兒子高中同學就有一些在台灣、去中國大陸或日本念書或做這一塊市場,

對他們來說:搞遊戲軟體企劃,也比整天坐在那寫軟體也覺得比較有成就感...)

反倒是許多搞硬體或系統的,在產品開發過程中,就不得不涉足應用軟體開發。

我應該就是這一類的。

以下我就不講太多應用軟體開發技術問題,倒是提供一些經驗讓大家參考參考,

或許也可以幫助大家去思考一些比較現實的工程問題吧。

----

我學校畢業,念的是數值分析,就是需要寫軟體,但我們寫的軟體是在大型

電腦主機上,透過終端機把程式丟進去跑,然後看結果。可以點選連結看故事。

那實用的程式語言就是 Fortran。沒甚麼UI 人機介面的....這是搞畢業論文的~

除了領研究補助款之外,不會有任何軟體費用收入的。

畢業後,也沒碰甚麼軟體專業訓練,那時候也沒甚麼Windows,就連在DOS 裡

要寫個美美的圖像軟體都很難...PC 的硬體規格支援很重要。

後來呢?反正是服國防役,數饅頭的日子,這樣子也是一天,那樣子也是一天。

所以呢?當計劃要我搞機車噴油點火系統,那我就自告奮勇地來寫個應用軟體

試試看吧。也沒甚麼明確的計畫目標或成果,長官就讓我自由發揮...反正薪水

少、日子多。就當消磨上班時間吧。


所以我就用Turbo C 寫一個這樣子的程式,整個基本架構一開始也不是我寫的。

是我們單位另一計畫傳動系統測試工程師寫的,因為他是台大畢業的國防役,

應該也是跟我一樣閒得找事情做。他先去研究基本如何在DOS 的繪圖環境裡

寫這一種程式。(如果我沒記錯:他的名字是黃文翰,台大機研畢,我們這些

努力練功的國防役都是役滿就馬上換工作...,因為薪資待遇真的太低了啦。

他比我早一、兩屆,所以早就失去音訊了,那個時代沒有Line 或FB。)

其實我們都不是資工科班出身的...

然後我計畫老闆後來覺得這個東西寫得還可以,所以就把它納入年度計畫成果

裡,幫我申請一些可以彰顯計畫成果的東西:


所以單位就頒了一張也不能換錢,也不能當飯吃的獎狀。也算是一個小小的安慰獎。

但後來也因為科專計畫,有國內業者參與,我計畫老闆硬是把這個東西賣給(?塞給?)

南部某機車大廠,如果我沒記錯的話,應該是兩套費用:六十萬台幣。

反正這些都是商場上、配合國家科專補助計畫,業者有時候也不得不含淚吞下去的。

我相信他們公司也不會接手這個東西發展的啦。對他們來說:這區區幾十萬元也

不算甚麼。反正這個錢也不會進我口袋的啦。

---

後來我就跑去園區IC 設計公司上班了,公司大,組織完整,就根本輪不到我們

自己還要下去搞PC 應用軟體,這時候頂多就是會自己寫寫幾個小小工具軟體,

譬如寫個簡單的RS232 Debug 軟體...但那時候PC 作業平台已經是Windows 98/XP。

都已經很複雜了,根本也多少時間可以研究,反正公司付薪水給我,也不是要我

寫這些東西,東西速成、能用就好。

---

離開後,老同事叫我搞個 USB ROM 模擬器,他可以幫我搞硬體,但韌體或軟體

就幫不上甚麼忙,韌體還好,APP 軟體就比較頭大了。但沒辦法:為了賣硬體,

你就得要生出應用軟體。花錢請別人幫忙?你就得拿捏一下:投資報酬率。

合不合算了?還要附安裝光碟?


你認為你搞這個東西在軟體要砸多少成本才行?

你也不用想還要買個正版的 Visual Studio 或是 Install Shield 開發軟體。

最後我算給你聽:軟體自己用 VC6 搞定,不會寫,自己想辦法。

這個東西我前前後後總共賣了四百套組左右,也只有在那個年代,那個時機點,

就是得搶市場 Timing ,稍縱即逝。扣掉硬體成本及通路商的銷售傭金。

這個東西大概讓我在上班之餘,額外賺了應該也有一~兩百萬。多不多?

嚴格講:不多,園區打卡上下班,隨隨便便就可以領這個級職了。

更何況這個東西當初我還辭去園區的工作。專職半年多開發。開賣後,我又跑

回去上班了。

而軟體工作呢?真的沒辦法,還讓你透透徹徹的研究VC 6 如何讓你寫個USB

介面的軟體:(軟體畫面:時間 2004 年)


坦白講:以我現在寫VC 程式的功力來說,這個"商用"模擬器的APP 軟體,

我認為應該只有 60 分及格而已。但重要的是:他幫我創造硬體的銷售業績啊。

這個就是重點,花自己時間與金錢的東西,真的不要太糾結得力求 90~100 分的

東西。趕快變現換收入比較重要啦。連老婆收額外支票時,都會眉開眼笑的說:

老公!你好棒喔。不是老婆現實,家裡的生活開銷就是現實世界啊。

---

後來跑回去IC 設計公司上班後,因為自己搞VC 程式有點小成就與心得了,

所以當老闆搞新MCU時, 那我就來試試看寫個 MCU IDE 開發平台看看吧。

反正那時候:公司草創,才四五個人,老闆董事們有錢,有的時間可以讓我

領薪水試試,當然我也知道:公司那時候也不會砸錢找幾個專職的軟體工程師

吧。因為他們這些搞硬體出身的老中老闆也很會算的啦、搞系統的可以幫忙

寫軟體,少花一筆薪水,可以有個軟體的東西可以用,何樂而不為呢?

我似乎又回到畢業國防役的時光了,不過的是:這一次薪水差多了。也真的是:

錢多、事少及離家近。(每天騎腳踏車上班)。


不過,搞這種下拉式功能表的應用軟體,真的比那個對話窗(Dialog) 的軟體複雜

多了。只是幸好是:這是有領薪水做的開發工作,如果是要燒自己的錢弄,

或花自己時間搞的~我才不幹這檔子的事呢!所以這一版下拉式功能表的應用軟體

應該是我第一次,也是最後一次會用的軟體架構。太辛苦了。

---

這邊要強調一件很重要的是:真的要讓各位喜歡學東學西DIY 的朋友參考一下:

就是離開學校學東西或學技術,無非就是兩種情形:

1.花老闆的錢學東西,這個最好,但比較討厭麻煩的是:這種情形不容易找,

因為公司上班,老闆或長官會盯進度與績效,學東西肯定會綁手綁腳的。

公司要你學得、要你做的。也未必能完全符合你真正全面的成長與機會。

2.自己花錢、花時間學。好處就是快快樂樂學習成長,那個無形的成就感有

無比的滿足感,但很不幸的是有很嚴重的現實問題:到底要學到甚麼程度,

才算真正有用或才能真正帶來實質的營收獲利?

這兩點真的有時候要自己多想想啊。

----

經過這樣子的軟體開發工作,對我來說:PC 軟體的應該也算精益求精,對於

產品開發的附屬軟體就比較多一點"投資心得"了。

所以接下來我就著手開發數位CDI 的平台,我知道這個東西的價值就非得應用

軟體不可:


所以,我就完成這個得獎作品。要賣數位CDI 你就得要有APP 應用軟體不可以。

這個硬體價值就是來自於這個應用軟體。標準思維:賣硬體送軟體服務。

不過,我也就知道怎麼投資軟體開發,才能拿捏經濟效益。


像那種在APP 軟體上面要美美的畫面,就真的不要自己很"歹命"的在那邊

刻了啦,不要自己辛辛苦苦地搞,還要人家讚美你,給你案個讚?神經喔。

換個腦袋想吧。花錢買個軟體外掛開發套件比較快吧。網路搜尋一下,

這個東西才花我約 US$ 900。還可以終身保固服務,後來我從 VS2007 換到

VS2010 ,換了幾台NoteBook ,原廠都免費幫我一直升級。產品開發就是拿時間

成本換營收的。凡事都自己搞,除了網友按讚外,就連老婆也不會抱著你說:

老公~你好棒喔。

搞這個軟體的東西還有一個好處:就是藉由PC APP 應用軟體可以打開你自己

的品牌價值與技術形象。硬體有人會跟你在乎要不要打你的LOGO,也看不到。

但軟體的東西就是沒得商量。因為應用軟體就是賣服務,他有產品延伸性。

等你年紀大了,終究有一天你也會老,也沒那個力氣天天寫韌體、搞PCB 硬體。

但軟體開發換錢卻是最輕鬆自在的事。硬體升級改版很花錢,也很麻煩,

軟體升級改版既簡單又輕鬆...

這個老外懂,你也會懂,只是你不知道該怎麼做而已吧。

就算領薪水,有一天老闆不會因為你那麼全才而給你加薪。

老闆要的:永遠就是便宜新鮮的肝。老闆也不會為了創造你的品牌價值而給你

額外的許多機會的啦。

----

經由這樣子的系統開發經驗:系統韌體搭配APP 應用軟體相輔相成,尤其是

USB 系統的東西來說,更是相得益彰。不管是本身的產品開發,或是朋友、

客人找我幫忙的系統開發工作,我都會盡量以應用軟體相輔。

因為講坦白的:許多產品開發真的也不是每件都可以順利量產,但這些產品的

開發工作,一點也都不得馬虎或可以簡化。而能凸顯出產品可以真正的走到

量產前的最後一哩路,應用軟體常常也是扮演著重要角色。

像這個USB 的相關系統開發案:


不管你的USB 系統產品為何?你最終到了生產線時,你就必須有一支協助量產的

生產線上的軟體工具:他是工廠先做好USB 產品的QR 或條碼序號,然後生產時,

線上組裝工人在利用BarCode 條碼機掃描條碼,再燒錄到產品的USB 序號中。

因為這不是銷售搭配的APP 應用軟體,而是額外生產治具要用的軟體。

這種軟體也不是等到要生產時,才慌慌張張地找人來寫,因為跟你產品一開始的

USB 系統開發時,就得一起考慮,但我說過:老闆在搞這些事時,根本不想

固定的再雇用專業軟體工程師,如果搞韌體系統工程師能一起搞定,那怕多付

多一點薪水,他也覺得很好,因為長期養軟體工程師是很花錢的,而且也不一定

有那麼軟體開發工作可以給他做的。

所以像這種案子,我都多酌收一點系統開發費用。更重要的是:最算最後產品

沒有量產,你也不會虧到。

這裡順便強調一件事:有很多人找你開發案子,都跟你畫個大餅,或是你自己

也幻想說:我收少一點開發費用,屆時我可以用抽產品銷售的權利金來彌補

短收的開發費用。但我的經驗是:這種能大賣的產品機會真的少之又少。

有量又可以大賣的東西,其實都是大公司,擁有大資源的公司才創造這種成功

的條件,因為產品市場通路能大賣的:不只產品的技術開發能力而已,

往往都是擁有龐大的銷售業務通路,及廣告財務操作資源才有辦法

所以真的不要給自己太多幻想空間的啦。

---

像上述這個東西,據我所了解:後來應該也沒有順利量產,產品胎死腹中。

我說過:產品從技術開發,到真正量產上市銷售,真的沒那麼容易的啦。

所以人家老闆或大公司才會想到如何用比較少的資源,先探探產品開發的

可能性評估。那也就更不用說:為了這種產品開發案,老闆就得先找幾個

系統韌體工程師或更專業的軟體工程師了啦。

---

而以下這個案子呢?他又是另一個特殊情況:


因為客戶是跨業的傳統產業,他是搞電動車的。他所委託的東西,只是很簡單的

系統開發案,就只有系統硬體及韌體開發,並沒有提到任何應用軟體開發需求。

但我為什麼還要很"雞婆的",額外提供PC 應用軟體呢?

因為很簡單:你的客人不懂電子電機或任何系統開發東西,但偏偏又要把這些

東西安裝到自家產品上面,我們也知道:車用系統產品最討厭,也最麻煩的

就是系統驗證了,尤其你的客人也不懂時,你怎麼協助與證明你的東西是OK 的?

你就算每天寫文章吹噓,搞一些技術發表文章或影片,是沒有用的啦。

客人的電子系統能力就是"零",他們家不要說示波器,可能就連三用電表也不會

用啊。你怎麼教他們驗收你的東西?你光每天、每個月陪他們玩,你覺得你要

開價多少系統開發費才合算?也是很現實問題!

所以呢?很簡單~你就把你的系統用最簡單的方式:用一個軟體APP 提供給客人

自己去驗證。所有的答案:在系統與產品之間用一個很簡單的軟體呈現出來。

你看:我軟體的所有的按鈕,還要附上圖像才比較讓他們這些門外漢容易看得懂。

這種工程案例,不是為了多賺客人的錢,而是讓你自己降低多一點額外不必要的

成本:你不要以為天天跑客戶做工程支持,就是一件很有成就感的事。

你真的要搞懂:忙與盲之間的差異

所以當客人老闆看到這個東西,非常高興與滿意...

但很不幸的是:畢竟隔行如隔山,這個東西你交給客人之後,也不可能是老闆

自己下去驗收操作,他還是得再找個工程師來處理啊。但那個行業不比我們

科技的光鮮亮麗,會去那個產業的上班的人,自己也非常清楚自己的斤兩重。

所以啊。你也就不用太苛求客人的後續發展了。

後來老闆跟我說:Chamber, 不好意思喔。

"沒關係啦"  (其實從我一開始的那一個噴油點火系統軟體故事經驗就知道了)

重點還是我說的:真的也不要讓自己虧到錢,然後在那邊 "機機歪歪"的背後

咒罵客人是奧客。每個行業與公司都有他無奈的地方,如果他們那麼行的話,

這種案子也不會輪到你來撈的啦。

----

所以有一種心態就真的很重要的啦:

你到底花了多少機會成本來完成這些開發案?你覺得你要收多少錢或投資多少

資源才能完成這些市場或客人所委託你、或是你想完成的產品概念?

你要準備多少人力或能力來承接這樣子產品技術開發與市場挑戰?

往往這也是決定著你的生存能力。因為你不是大公司,你也不是含著金湯匙

出身的富二代,你每投入的每一秒一分或每一塊錢,都是從你口袋掏出來的。

那怕在這種大熱天裡,你關在家裡或室內寫程式,都有一些無形或有形的

成本考量。而當這些都還沒有真正的換成現金的跑到你口袋時,都是未知

的投資風險。

產品大賣,尤其是軟體這一種根本沒甚麼生產成本,現在你只要把你的APP 

應用軟體上架到處的雲端硬碟功客人或市場下載,搭配你的硬體產品銷售,

坐在冷氣房數鈔票固然是一件好事,但要真正走到這一步時,你真的還有

很多技術要學,很多事情要搞清楚。

---

結語:當然我自己本身的軟體開發故事還沒完全結束,而且還一直是進行式,

但經由我舉的這幾個例子,可以讓大家學到一個系統開發經驗:現在要在產品

系統開發競爭環境中,不是光靠你每天追求學新東西,就可以讓你未來充滿希望,

而是你真的要真正的去發掘你的客人或市場要的是甚麼東西?

我常常開玩笑說:當客人或別人跟我討論系統規格時,尤其是USB 系統應用時,

我常常會算給他們聽:一個系統韌體(包括USB 介面),再加一個硬體工程師,

然後再加一個應用軟體工程師。最終可能還要後段整合工程師....

你認為你應該要準備雇用多少工程師?或準備要花多少錢來完成這件事,

而當這些團隊工程師小組成軍之後,你是不是也要找個可以幫你搞定這些跨

技術領域的工程主管來搞定這些人呢?

所以道理都很簡單:搞產品技術,不是一天到晚吹噓誰的專業技術多高超?

三個系統韌體、硬體及軟體高度專業的工程師,你都未必能擺得平這些人

天天坐在那裏心平氣和的工作、開會。

而是如何用最簡單最快速的方法,能讓產品很完整的呈現出客人或市場

想看到的東西?而人家願意掏錢出來買的東西。

放心好了,相信我說的:絕大部分的願意花錢的客人或市場,絕對不會想看

你的PCB 電路板,也不會想看你的示波器上面的圖像。也更不想聽你吹噓

你的技術有多厲害:"別人六、七十分,我的是九十、一百分的專業技術。"

他們要的就是簡簡單單在一般的 PC 或手機畫面上可以點點滑動的軟體介面

所帶來的產品特色的啦。

或許個人的小小經驗可以供給各位一點點參考吧。


4 則留言:

  1. 很寶貴的經驗談, 感謝版大分享

    回覆刪除
  2. 好文章,當然要按贊,寫F/W真的是一條"不歸路"....

    回覆刪除
    回覆
    1. 工作都是如此啦。就算你退休了,生活也會面臨類似的情境。

      所以人生懂得找樂趣,找出一些工作以外的興趣或嘗試。

      也不失是一種人生新體驗吧。

      刪除