我這邊的軟體開發指的是在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 或手機畫面上可以點點滑動的軟體介面
所帶來的產品特色的啦。
或許個人的小小經驗可以供給各位一點點參考吧。
很寶貴的經驗談, 感謝版大分享
回覆刪除真是句句敲進我心
回覆刪除好文章,當然要按贊,寫F/W真的是一條"不歸路"....
回覆刪除工作都是如此啦。就算你退休了,生活也會面臨類似的情境。
刪除所以人生懂得找樂趣,找出一些工作以外的興趣或嘗試。
也不失是一種人生新體驗吧。