十年一覺程設夢zz
华硕的一篇招聘广告。
※ 本文轉錄自 [Programming] 看板
發信人: weber1217.bbs@bbs.cis.nctu.edu.tw (weber), 看板: Programming
標題: 十年一覺程設夢
發信站: 交大資科_BBS (Mon Jan 14 00:42:42 2008)
轉信站: BanditNest-BBS!ctu-reader!ctu-gate!news.nctu!news.ntu!news.ee.ttu!csnew
Origin: 203-203-247-59.twt1.com.tw
十年一覺程設夢
本文可視為 “我的DDK學習經驗” 的續篇, 不談軟體技術, 而是寫我在華碩10年的職場經驗. 描述學會了DDK這套工具, 我是如何運用它, 在工作上落實創意, 供各位參考. 另外我的為官經驗, 可說是失敗中的失敗, 各位可引以為鑑
我在華碩的第一位老闆是HC, 我日後對軟體價值的想法, 受到他的影響極深.
他以前在宏碁是Jonney的助理, 參與天龍中文終端機開發計畫.
當時工作, 是用宏碁自行開發的ASIC, 搭配firmware來處理中文顯示.
這份工作累積的經驗, 讓他日後有能力自己開一家VGA Chip IC公司.
而也使他成為在華碩中最了解軟體價值的董事.
他在華碩第一份工作, 是從無到有成立VGA部門. 當時3D VGA Chip霸主是加拿大ATi , PM大主管屬意這家公司, 預計與其全面合作. 但HC從Chip架構及規格, 反而看好另一家風中殘燭的nVidia. 那時候nVidia找過麗台跟其他家VGA卡廠商, 都吃閉門羹, 沒人想理它.
部門內成立3條產品線, 分別使用ATi , nVidia, S3公司的晶片. 當時與其他部門最大的不同處是, VGA部門RD是以軟3: 硬1的分配. 成為公司部門中, 擁有人數最多, 水準最整齊, 都是台清交碩士畢業的軟體人員. 連我跟他面試時, 還被他嫌在資策會待太久, 怕染上不好習性.
HC的個性是, 技術不願受制於人. 他逼nVidia吐出所有的VGA source code, 命令底下一組軟體工程師來做效能最佳化的工作. 我分配到的工作是, 做安裝光碟程式, 及用X86組合語言來加速VGA Driver執行效能. (因當時有許多2D/3D指令是用CPU先處裡過, 然後再傳給VGA晶片處裡).
因解掉1個nVidia驅動程式的Bug, 使華碩V3000繪圖卡領先其他對手, 早1個月出貨, 打響公司在3D VGA市場的名號. 因為這一點貢獻, 經HC推薦, 而獲得Jonney額外的獎勵獎金.
VGA部門在所有同仁努力下, 不到2年時間內, 就擠下原先在台灣第一名的麗台.
因在驅動程式這個領域的耕耘, 我獲得在資策會時, 做夢也不敢夢到的高額報酬, 有感於當時 (1997年) BBS, 雜誌文章皆是財團法人, 學術界人士, 學生的論調, 鮮少來自工業界的聲音. 而且是一面倒向MIS, 資料庫.
於是在BBS上寫篇 “我的DDK學習經驗” 文章, 鼓勵其他軟體從業人員, 朝驅動程式發展, 而不是只押寶在MIS, 資料庫.
當時在BBS上引起支持RAD Tool, MIS, VooDoo學生的筆戰, 搞到連HC去交大演講招募工程師時, 現場都有學生嗆聲點名, 說要找我單挑. 回來後問我是不是覺得時間太閒, 沒事做. (XD! 現在是nVidia還是VooDoo活下來 ? MIS公司還是IC公司錢賺的多 ?)
事隔3年後, 在台灣微軟WinCE技術研討會上, 有一名微軟工程師趨前自我介紹. 他原本是在交大擔任助理, 看過該文後, 放棄原有安穩待遇的工作, 自願降薪一半, 投身驅動程式開發領域. 我相信, 經過MS SmartPhone, SoC的興起, 聯發科, 宏達電躍昇為股王後, 他現在應居要職領高薪, 遠比當交大助理, 來得更有成就感.
HC深信公版公Driver, 絕對無法支撐起產品競爭力. 於是在不增加任何硬體成本下, 極力要求我們要用軟體來增加附加功能. 而我們也不負他所望, 連續推出3D Glass, Game OSD, 3D See Through, Time-Shift, Smart Doctor, OverLock等特殊軟體功能, 讓Sales在報章雜誌上, 有材料來連連為華碩繪圖卡創造話題.
在不到5年內, 他成立的VGA部門, 成為世界第一品牌的VGA卡公司. 而以往稱霸的外國VGA卡公司, Diamond跟Elsa公司, 一個倒閉, 一個縮編.
當Win95問世, 引發一波MB大換潮, 得以讓華碩連續蟬聯3年股王. (但套句台語, 搖擺沒落魄的久, 10年內, 股價從800多元變成現在的80幾元) 而MB也需要搭配Win95驅動程式的安裝光碟出貨, MB的主管Jerry向他要求軟體人力協助. 他就派我去成立MB軟體支援課. 我雖然心中不願, 但卻也不得不捨下喜歡的VGA驅動程式工作.
當時的MB部門是以EE及BIOS RD為主導. 軟體支援課形同雞肋般, 扮演的角色, 僅比QT部門高一點而已. 工作內容僅是製作安裝光碟, 檢查驅動程式的穩定度. 不過因MB種類日益頻繁, 使這份工作變成繁瑣的制式工作. 也讓我心中不時思考, XD! 自己是RD還是高級QT ?
然而繁瑣工作還是要做, 最後受不了, 我模仿Win95 Plug and Play的driver安裝機制, 寫出半自動安裝程式, 將公司所有的Chipset, Audio, Lan等等driver全部放在一張光碟. 當放進光碟機時, 安裝程式自動啟動來偵測MB上所有Device的PID/VID, 挑出正確的driver供使用者安裝.
這套方法, 不僅讓這個軟體支援課逃出繁種無聊的工作, 也前輩減少PM的安裝光碟庫存壓力. 不用一種MB就要準備一張光碟, 而是Intel, SiS, VIA晶片組系列的MB, 各一張安裝光碟.
而我就利用這多出來的工作時間, 私下做一些自己感興趣的題目. 因沒影響到MB出貨, 所以MB PM Joe跟Jerry , 根本都不曉得我私下在搞什麼東西.
有鑑於Win95後, MS宣稱要停止支援DOS. 我就將DOS版的MB BIOS Flash程式, 改寫成Win版的WinFlash. 大概撈過界, 惹毛負責DOS版Flash程式的RD, 而讓BIOS Team不願導入. 完成的WinFlash只好靜靜躺在硬碟中.
過了半年, 當時公司為康柏 (Compaq, 現被HP併購) 製作一款無軟碟機, 安裝WinNT的PC. 原先的DOS Flash程式無法在其上使用. (NT上無法在DOS模式下去存取硬體, 也沒有軟碟可以bootup DOS). 康柏限期要提供解決方法, 藉由康柏施加在PM的壓力, 讓這套塵封的WinFlash程式, 得以應用到產品上, 在市面流傳.
而另一家MB公司微星, 在我完成WinFlash的2年後, 也做出做法不同但相同功能的程式, 並在雜誌上大打能在Win上作BIOS flash的廣告. 看見其他公司的重視程度, 想起自家公司的態度, 真覺得MB軟體部門只是個打雜部門, 絲毫不受重視.
完成WinFlash後, 當時WWW網路剛興起不久, 洞悉到網路潛力, 我跟部屬合作開發Asus LiveUpdate, 利用網路, 在Win95下來自動更新驅動程式跟BIOS. 由於Asus LiveUpdate是由Client跟Server兩部分程式組成的. Client端的檢查, 下載機制完成後, 尚須要後端Server的配合, 才能啟動.
但初期MIS部門根本無配合意願, 最後透過HC的影響力, 總算幫VGA部門架設更新網站. 經過3年後, 微軟把類似概念的線上更新功能, 直接內建到Win 2000. 而現在華碩官方軟體下載網頁, 及MB/NB/VGA/EeePC的安裝光碟上, 都存在著這套軟體.
同一時期Intel在MB上推出Health Monitor的功能, 用來偵測CPU溫度, 風扇轉速, 及機殼入侵. 同時推銷網管軟體LDCM (Lan DeskTop Configuration Management) 給公司來bundle在intel系列主機板上. 而maintain LDCM的工作就落到我頭上.
因LDCM既有的InstallShield安裝程式, 需事先提供硬體設定檔, 註明MB有幾顆風扇, CPU溫度範圍等資料. 我的天啊 ! 若每一片MB都要這樣搞, 那我豈不是被LDCM搞死.
於是修改既有的InstallShield程式, 讓它能掛上device driver. 在安裝過程去偵測有多少顆風扇, CPU現在溫度, 然後動態產生硬體設定檔, 餵給後面的LDCM設定程式去正確執行安裝.
後來上LDCM訓練課程時, 聽到Intel人員提到Acer一個軟體部門, 正在進行於LDSM Client-Server架構下, 從Server端把BIOS/Application/Driver安裝到client端. 於是自己獨力將WinFlash修改成LDCM能使用的PLUG-IN module, 提供MIS人員直接在Server端更新Client端BIOS的功能.
因為Intel限制LDCM只能用在Intel chipset系列的MB上. HC叫我想辦法, 在SiS/VIA Chipset MB上提供相同功能的軟體. 於是就開發PC Probe這套軟體, 但也發現讓問題越來越複雜.
3家晶片組公司(Intel, VIA, SiS) 有各自不同的介面/地址去讀取Health Monitor, 甚至同家不同系列的晶片組也有所不同, 有用SMB Bus, 也有用I2C Bus的. 而Health Monitor IC來源, 也有3家IC公司提供. 產生一堆晶片組加Monitor IC的不同組合.
做第一片MB時, 還覺得有趣. 但做到第10片MB時, 就覺得又煩又無聊. 所以一直在想, 有沒有一勞永逸的解決方法.
當初是1999年, Win2000 beta版還在測試, WDM DDK beta版首度出現在Win98 ME上, ACPI BIOS 1.0 spec也剛出爐.
看完ACPI Spec後, 加上幾年的Window Programming經驗, 我察覺到MS想利用此一規格, 迫使各硬體系統廠商必須提供ACPI BIOS, 來讓Windows OS能直接控制硬體. 並且把BIOS角色壓縮成Boot Loader. 一但OS啟動後, 讓BIOS沒有主控權, 以避免BIOS影響OS運作.
(MS夠邪惡, 但很明顯並未得逞, 直到現在, 在Vista上, programmer還是可以用device driver下SMI指令, 讓BIOS取得控制權)
看過ACPI BIOS規格跟WDM DDK beta版後, 我終於找到處理Health Monitor IC Access跟BIOS Flash的一勞永逸方法. 讓所有硬體存取相關的動作, 全部集中在BIOS的ACPI ASL code中, 由應用程式透過ACPI driver來讓ACPI.SYS執行對應的ASL ocde. 如此就不用三天兩頭為SMBus I/O port來改device driver.
於是一頭栽進去, 偷偷在Win98 ME平台上開發Asus ACPI Driver. 同樣的, 因為有把該做的工作完成, HC檢查進度時, 沒發覺異樣, 所以才不會對我碎碎唸, 說做這個東西有什麼用.
但是ACPI Driver需要ACPI ASL code配合才能啟動. 自知惹毛過MB BIOS Team, 他們是不會幫忙的. 求人不如求己. 於是找剛成立的NB BIOS RD部門, 向其要了Lotus NB的BIOS原始碼, 自己邊看ACPI BIOS Spec, 邊在Lotus上修改ACPI ASL code.
當花了3個月時間, 寫出Asus ACPI Driver跟對應的ASL Code時. 因深知此技術的發展潛力, 便主動開技術介紹會, 邀請NB/MB BIOS RD來參加. 但會議結束後, 沒有一個BIOS RD感到興趣.
但我並不灰心, 因Win2000 WHQL Logo program規定BIOS一定要支援ACPI. 我知道總有一天, Asus ACPI Driver會派上用場. 只不過卻沒料到, 這 “總有一天”, 卻是在3年後才來到.
2002年, 公司的NB種類增多. 原先NB BIOS RD是直接program VGA , 在各家VGA Chip的Frame Buffer上畫OSD (On Screen Display), 但多種不同的繁瑣VGA Frame Buffer定址, 讓NB BIOS主管Jason受不了, 因他有聽過我的ACPI技術介紹會, 於是私下請我幫忙解決.
我當時也沒多想, 本著同公司就應互相幫助, 將Asus ACPI Driver原始碼提供出來, 做投影片, 並教NB軟體工程師如何移植到NB平台.
HC常跟我說, 我是做事的人, 但卻不是做官的料, 有股RD的技術狂熱, 卻不懂職場的遊戲規則. 但我毫不在意, 老是把他的話當耳邊風.
但這次無私的ACPI技術提供, 不僅沒有獲得任何回饋, (NB部門可沒因此而多發薪水股票給我). 反而種下4年後不愉快的起因.
雖然那時是在做MB的事, 但還是會關心VGA team的發展. 把MB上學到的Health Monitor跟動態超降頻的概念, 介紹給HC. 在大家一遍喊VGA超頻的時候, 逆勢提出降頻觀念.
我認為做文書處理或上網時, VGA根本不需要啟動3D Engine跟拉高頻率. 於是在VGA上實作出Smart Doctor軟體, 依據VGA/CPU實際工作負荷, 來動態超降頻, 以避免VGA長期處於高熱超頻狀況, 降低正常使用期限.
事隔1年半後, nVidia公司受到其他VGA卡製造商的壓力, 將這項功能, 直接內建在Driver中. 可惜當初沒人告訴我要申請專利. 不過雖然如此, 這套動態超降頻功能, 已經領先其他對手早1年半.
當VGA部門闖出名號後, HC為了尋求下一波成長動力. 將目光擺在當時熱門的IA題材: Setop Box跟PDA上. 但因VGA軟體人力不足, 想將軟體人力從MB部門抽回來, 於是詢問我的意願.
但他同時也點出, MB軟體支援課雖然工作無趣繁瑣, 但會影響MB出貨, 公司不能沒有這個課, 而且未來將會隨MB產能大幅成長變成一個大部門.
但我二話不說, 自廢武功, 自動解散MB軟體支援課. 將底下的台清資訊碩士, 從無趣工作中解放出來, 投入Embedded System研發專案中. 我也不再想當管理階層, 跟PM review進度跟開會, 我覺得是浪費生命.
在2002年時, 掀起一股IA熱潮. “PC已死, IA當道”. Embedded System, 如WinCE 3.0, Embedded Linux, VxWork紛紛跳上檯面. 我被分派去做以Embedded Linux為主的Setop Box跟Thin Client.
當時曾接觸過Luxsonor IC公司, 原想用其IC在Setop Box上. Luxsonor的華裔羅副總, 因意識到PC運算能力提升, 以硬體為主的MPEG2 decoder將倍受威脅, 後因理念不合, 於是自立門戶, 成立InterVideo (IVI) DVD播放軟體公司. 而Luxsonor在將MEPG2 decoder IP授權給聯發科後, 被Cirrus Logic併購.
因IA口號正熱, 一些軟體工程師很容易從傳產股金主募得資金, 在國內外, 小型Embedded Linux公司如雨後春筍, 陸續冒出. 連Mr. Taiwan谷月涵, 也插花當網虎國際的執行長, 來搞股票上市上櫃. 就可知道這些公司分名是擺明想A錢, 用股票換鈔票. (XD! 我打電話給網虎Sale問些事情, 結果隔天他就發新聞稿, 說華碩即將採用網虎的embedded linux)
在Setop Box上的Embedded Linux上執行的Browser功能很陽春, 涵蓋PC NetScape/IE的功能不到30%, 而他們又無法克服TV resoultion及interlacing問題. 最後淪落為無實用性的玩具. 我也因而勸阻HC入股某家美國Embedded Linux公司的念頭.
Settop box做半年後收起來, 改做Web Pad, 一共用Transmata TM5400, NS GEODE, VIA C3 3家CPU來開發原型機.
開發Transmata TM5400 WebPAD時, 我負責BIOS與負責硬體的同事Alex, 僅僅兩人完成該Prototype. 當時我們好像是在搞家庭代工, 什麼事都自己來, 我邊下BIOS命令, 他就用LA去抓硬體訊號. 那陣子, 雖然壓力大, 但也學到Phoneix NoteBook BIOS架構, 並得知更多Window與BIOS溝通介面.
當時觸控面板的介面IC並無支援傳統PS2介面, 於是我寫個Win98驅動程式, 用南橋晶片空出來的GPIO pin去接收介面IC的輸出資料, 透過驅動程式將其轉化成PS2 Mouse Event, 去模擬出一個PS2 Mouse Driver. 這是我第一次用軟體驅動程式模擬出特定硬體介面的經驗.
5年前的SoC剛萌芽, 硬體省電能力很弱, LCD-TV, 跟LCD Panel價格昂貴. 原型機完成後, 因暸解成本昂貴, 功能有限. 我向HC建議, 不要導入市場. (有夠呆吧! 如果煽動成功, 讓老闆投錢投人, 起碼可以撈到個副理官位來做, 至於賺不錢, 那是他家的事, 反正有其他賺錢的部門在養, 怕什麼!) 結果同時期有兩家公司, 大眾電腦跟旺? 做出WebPAD商品, 想也知道, 都賠賠賠, 成了3賠產品.
IA熱潮的泡沫, 不到2年就消失. 但PDA因有Palm及WinCE PDA的銷售成長, 得以繼續生存下來.
HC意識到趨勢變化, 停止Steop Box, WebPad開發, 將所有軟體人力投入PDA開發. 於是我被指派去做Intel Bulverde VC (Validated Customer) 計畫.
Bulverde是顆SoC, 非CPU. 它將ARM base CPU, VGA, Peripheral, Memory Controller全部塞到1顆Chip中. VC計畫是, 在Intel提供的pre- alpha SoC板子上, 架上MS WinCE 3.0 OS, 寫程式去測試功能.
當時是利用ICE, 透過JTAG介面來program SoC, 使SoC發出預期的控制訊號, 接著用LA去量訊號, 檢查是否正確. 然後每星期回報Bug給Intel做除錯之用. 簡言之, 就是寫程式幫Intel作SoC硬體功能驗證測試.
在參與過Setop Box, Thin Client, 及Bulverde VC計畫, 讓我無意中充實對IC規格和硬體設計方面的知識, 有時候當下看是不相干的工作經驗, 往往是日後技術提升的基石. 經歷這時期實作經驗, 對日後軟體設計, 有極大幫助.
但因部門政治因素, 外加VGA軟體主管離職. 不得不放下喜歡的Bulverde VC計畫, 再度聽從HC的安排, 轉任VGA軟體主管.
HC一直想為VGA部門尋找另一波成長動力. 於是指派我去執行DVD Recorder及LCD-TV專案.
初接任VGA軟體副理一職時, 一位負責維護Display Driver Hooking機制的RD, 提出可以將Video結合3D Game的點子時, 我贊同他的想法, 並加碼加派一位RD去做MPEG4壓縮跟網路即時通訊功能來配合. 做出全球首套支援3D Game的視訊軟體. Sale部門看到這套軟體後, 取名為Game Face來大力促銷.
隨後因HC想在大陸成立一個軟體團隊, 我暫時放下LCD-TV案子, 前往蘇州, 武漢, 西安等地的大學去招募員工. (有人跑大連, 哈爾濱的路線, 11月, 還好不是我) 因老婆不願舉家遷移到大陸, 在蘇州華鼎成立團隊雛型後就返台.
在LCD-TV/ DVD Recorder這些專案中, 我陸續接觸到WIS, LSI, TI OMAP, Sigma Design, Trident, OPlus, Genesis, PixelWork, Morning Star等各家的晶片. 這段期間大量接觸各類的IC公司, 也讀了一堆相關的IC spec and datasheet, 我試著去比較各家晶片性能. 遇到不懂的規格名詞時, 就上Google, 翻paper, 從基礎理論去了解其規格背後的含義. 而墊下對消費性電子IC方面的知識.
因為國外IC Design公司的規格書寫得非常詳細, 我從中接觸到MPEG 2/4, H.264, Scaler, DE-INTERLACE, 視訊規格, 以及色彩學等方面的知識.
記得當時Trident代理商的某個FAE很臭屁, 欺負我沒摸過LCD-TV Chip, 還說LCD-TV Chip很有深度, 技術很難懂, 要像他這樣的人才才能搞懂. 結果事後K過paper跟Video Demystified後, 才知道他誇口的那些知識, 根本是入門級.
做這些案子期間, 我觀察到一些IC公司只專注在硬體開發, 如LSI, TI. 而其IC所需的DSP firmware或embedded system卻要系統廠商, 花錢向其他家軟體公司購買, 相關的Video/Audio codec授權問題, 也是由系統廠各自向MPEG2/Dobly談判. 對玩慣WinTel的我為此深感不解. 為何無法提供一套完整的方案, 卻還要系統廠到處張羅硬體,軟體,權利金等事項 ?
相同時期, 隨著SoC蓬勃發展, 聯發科洞悉到系統廠的需求, 招募眾多軟體工程師, 搭配自家晶片, 提供完整的solution, 在不到4年時間, DVD Recorder方面就打敗LSI, 手機晶片方面, 則是嚴重威脅到TI. 逼得TI也出Davanci SDK for WinCE. 如果TI還不親自提供完整TurnKey Solution, 中低階, 甚至高階手機晶片, 被聯發科攻陷是指日可待.
在2000年, 華碩獲利大幅衰退, Jonney意識到主機板高毛利時代, 已經一去不返, 連精英都嚴重威脅到華碩 (股價130 : 70), 一堆VGA部門的軟體工程師, 集體跳槽到精英.
Jonney開始推動巨獅計畫. 進行公司組織重整後, VGA部門被劃給Jerry. 我因而失去重視軟體功能HC的支持, 我曾經因案子無預警被中斷, 當面對著HC拍桌子, 但他心胸寬大有雅量, 沒把這件事放在心上, 日後反而常常在暗中拉我一把.
直屬長官變成VGA部門的硬體經理. LCD-TV專案也被迫停擺, 由Jerry新成立的數位家電部門來主導. 而底下的一些軟體工程師看苗頭不對, 全部跳去負責VGA卡的軟體單位.
但上帝關起門時, 同時也為你開了另一扇窗. 2004年時MS推出Media Center, 並且全球數位電視陸續開播. 雖然處於冰凍狀態, 算是苦中尋樂吧, 花時間K數位電視訊號規格, 去了解RF, IF, BF, demodulator,及OFDM編碼的原理. 從這些規格跟通訊編碼原理中, 找到屬於技術人員的樂趣. (數位電視訊號規格有牽涉到視訊壓縮, 因有看過MPEG2/H.264資料, 所以蠻快就進入狀況. 有燒香就有保佑, 有讀書就有收穫)
不久後, Jerry對Barebone部門報以高度的期許, 於是我轉移陣地, 設立一個軟體團隊來支援Barebone部門, 雖然還掛在VGA部門, 但VGA部門最高主管早就不理我, 考績被打得很爛.
在BareBone部門初期幫忙接Samsung的代工案及自有品牌E-Spreso. 但後期Barebone PM部門換主管後, 無意朝創新發展, 以衝產量為優先. 也不管軟體功能, 把底下的工程師當工具來使用.
為了不讓底下的軟體工程師閒閒沒事幹. 加上看到MB/NB朝消費性電子化的發展趨勢, 同時也知道LCD Panel的色彩缺陷性. 我不想浪費在LCD-TV專案上獲得的一些研究經驗, 於是開案子, 將LCD-TV色彩處理功能導入到VGA/NB上.
初期我將這個概念跟專利草稿給另一家IC設計的子公司參考, 希望能共同開發. 但後來子公司毫無分享意願. 認清現實一面後, 靠人不如靠己, 我分配2名RD, 成立Cameleon (變色龍) 專案, 從事NB上的色彩功能開發, 並將此觀念介紹給某位NB高級PM.
因為這位高階PM是工程師出身, 有過TV CRT的相關開發經驗, 知道此功能的實用性. 雖然NB內部有阻力存在, 但他仍盡力協助我在NB部門內介紹這項功能.
幸運的是, 當時Toshiba推出強調色澤鮮艷的Qosmio NoteBook, 該NB加裝1顆我以前摸過的Trident LCD-TV Chip, 用來處理色彩運算. 而公司代工的另一家日系公司也想要有類似功能. 要求NB team評估用日本Jepico影像處理IC在其代工NB上的可能性.
就在日系公司派出技術科長來台灣, 討論代工NB的技術相關問題時. IC子公司透過高層主管安排, 向其demo他們開發的色彩軟體功能. 而我是幸好有該PM的私下安排, 向日本科長展示Cameleon.
雖然IC子公司想透過高層主管的政治影響力, 來左右日系公司的選擇. 但在看過IC子公司, Cameleon, 及Jepico 3種解決方案後, 基於擴充性, 效能, 及價格的考量. 日系公司決定採用Cameleon, 並派出其TV部門技師, 提供調校色彩參數, 來配合Cameleon使用, 正式導入在日本銷售的NB上.
因為日系公司採用, 形成強而有力的背書, 原先反對的人都默不出聲, 順利消除NB部門內部阻力, Sales部門將Cameleon改名為Video Splendid, 如同Asus ACPI Driver般, 成為公司NB的基本功能.
由於Jerry所轄的VGA/Barebone部門主管, 無意朝創新發展, 只優先衝產量. 外加看到XBox 360/ PS 3研發售價消息不斷冒出, 以及LCD-TV低價化. 魔獸爭霸也放出消息要移植到Xbox 360上時, 我判斷高階VGA卡, DMA及客廳式PC, 絕對不是Xbox 360/ PS 3的對手.
試問當一台Blue-Ray BD, 40 GB HDD, WLAN 801g無線上網, 3顆CPU的PS3只賣台幣1萬4千時, 還會有多少人去買1張1萬多元的高階VGA卡 ?
MS跟Sony可以賣一台虧一台, 以後靠content service跟game license來獲利. 但Dell, HP, Acer, Asus有可能虧錢賣PC/NB/VGA嗎 ?
NB市場的VGA方案都是內建, VGA卡公司是看的到吃不著. 同時NB長力道已經逐步趕上Desktop時. 看不出有其它位來發展機會, 於是離開VGA部門, 轉調到以系統為主的NB部門.
公司一變大, 一些事情再也不是以技術優劣來考量. 原先以為在NB Team可以開發第2代的ACPI Driver及Video Splenedid, 尤其是ACPI BIOS已經出到3.0B版, 而ASUS ACPI Driver還停留在7年前的ACPI BIOS 1.0時.
但這些想法都被NB軟體大主管拒絕. 有次討論工廠測試流程時, 還跟我解釋ACPI Driver的功能. 當時心想, 他還以為ACPI Driver真的是他手下自行開發出來的.
在不被重用, 近乎被冷凍的狀況下. 又開始自己找事做, 看到大部分人用NB時, 通常是用Mouse居多, 而TouchPad就白白浪費在那邊. 加上當時iPod的觸控螢幕功能造成熱門話題. 所以交代部下去搞個將TouchPad當Touch Panel用的程式並申請專利.
結果搞出來後, PM對其興趣缺缺. 但卻沒料到,過1年半後, 在2008年CES show展上, NB Sales把這個TouchPad功能當成一個賣點.
因從2004 WinHEC資料得知, 微軟即將力推MCE 2005跟Vista Premium (code name Diamond), 會拉升NB對TV功能需求. 又看到大陸工資成長的趨勢, 及公司內部如火如荼的LSS精實運動. 我想到用軟體自動化來做工廠檢測.
當時NB工廠大多依賴人工作檢測, 無法有精確的量化數據. 在6 Sigma的DMCIA步驟中, 需有M (Measurement) 步驟提供量化數據, 以統計手法分析, 作為方案效果評估, 來找出引起品質差異化的關鍵.
假想若能提供每月數十萬台的NB測試量化數據來加以分析, 又能加速測試流程, 減少作業員需求量. 對公司的硬體設計, 供應商的電子元件良率控制, 應當有所幫助.
於是實際到工廠待一個下午, 發現作業員真辛苦, 因為工廠沒能力去寫測試程式, 為了測試TV, Camera, Audio的功能, 須操作繁複設定的商用應用程式 (IVI Home Theate, Cyberlink Power Cinema, 3D Mark 2003), 以人眼人耳去判斷,
而長期沿用DOS/Assembly的單工觀念, 將刺是測試幾個小站, 一站一站去測, 絲毫沒利用到目前CPU/Windows的多工能力, 也無法執行驅動程式來測試device功能. 而在測試聲音時, NB啦叭跟機具運轉的噪音, 此起彼落, 真是個惡劣工作環境.
於是回來後寫個快速測試TV/camera的程式, 交給部屬, 由他修改介面, 依工廠需求, 協助導入Digital/Analog TV軟體檢測, 因MCE 2005/Vista Premium的NB產量持續成長, 對TV的檢測需求, 大幅成長. 這套方便的TV/Camera檢測程式很快就正式導入NB生產線, 頗受作業員的歡迎.
受到順利導入的鼓舞, 我計畫接下來開發Audio, WLAN, BlueTooth等檢測功能. 再度請出Google大神, 上網查聲音相關的論文跟原理文章, 最後使用麻省理工學院的快速複利葉轉換程式庫( MIT FFTW), 以及參考普林斯頓聲音研究室 (Princeton Sound Lab) 的公開原始碼, 在DirectSound上寫一個可同時測錄放音功能的快速聲頻檢測程式, 來檢測NB聲音輸出入的Channel Balance, Frequency Response, Total Harmonic Distortion, Back Ground Noise Level品質. 為了確保聲音檢測的正確性, 我拿商用音頻測試軟體SpectraLab來比對.
但是要導入時, 又發生政治因素, 讓快速音頻檢測程式無法上線. 軟體主管單位擺明, 要導入的話, 就把原始碼全部公開給他們, 並提供訓練課程. 不然的話, 就別想導入.
大概因接2連3惹毛其他軟體部門, 造成NB新主管在管理上的困擾. 最後他丟個PC Camera的案子給我做. 並告訴我只准做這個案子, 不要再亂想或亂碰其他案子, 免得跟其他部門起衝突. 好吧, 反正不是第一次, 我再度發揮苦中尋樂精神, 自我尋找技術人員的樂趣.
於是跟幾家Camera USB IC公司接洽, 初期因剛接觸PC Camera領域, 對相關技術不懂. 於是把PC Camera整個軟硬體架構拆解掉, 從Lens, CMOS sensor, 步進馬達, USB IC, UVC/WDM Capture driver, KsProxy, DirectShow等硬韌軟體功能, 從頭到尾走過一次.
知道影像清晰度跟色彩對camera非常重要, 就花時間做快速Auto Focus, 因嫌USB IC的清晰度判斷能力太爛, 自己寫MTF base清晰判斷程式來取代. 並上網去讀Glass/Plastic Len鍍膜對色彩的影響, 以及CCD vs CMOS sensor的色彩處理物理特性的優略點分析.
甚至到最後, 覺得CMOS sensor的硬體色彩處理功能 (3x3 matrix process), 還是無法真正解決色偏問題, 還找到Nikkon的色彩處理晶片專利文章, 來了解Nikkon單眼相機對色偏的解法.
在看過Micron CMOS Sensor 2020的datasheet及USB UVC Spec後, 花了2, 3個月, 去修改USB IC 8051 firmware, 利用UVC Extension介面從Windows App關掉USB IC的功能, 直接去program CMOS sensor. 才發覺原來一開始被USB IC公司的sales給忽悠了.
原來USB IC公司把Micron 2020優異的硬體功能關掉, 只開自家IC的影像處理功能. 而Sales宣稱其因IC具有特殊的附加功能, 如AWB, Scaling, Sharpness detection等, 所以要賣得比較貴.
但單純從運算速度來看, USB IC的8051根本比不上Micron 2020的68H11. 而這些功能可以被CMOS sensor, VGA Scaling及Window App所取代, 而且效果遠遠超過它.
因PC Camera硬體設計進度一直拖延, 要做不做的. 一直等也不是辦法. 為了證明自己不是只會放砲愛吹牛, 寫虛擬攝影機驅動程式, 用UVC Extension介面去控制步進馬達, 做出快速自動對焦. (1.2秒, 可以更快, 但受限於馬達步進機構精密度的缺陷)
將擷取到的畫面導入VGA Vertex/Pixel Shader, 去做face detection. 同時研讀微軟北京軟體學院的電子白板相關論文. 想將電子白板的功能導入虛擬攝影機驅動程式. 但最後還是看出主管並無心去推動這個案子.
經過WinFlash, Asus ACPI Driver, Video Splendid的推動經驗後, 我已經對由內部推動創新的方法絕望, 都要靠外部的市場壓力, 來彌平內部阻力, 一些被PM/RD主管輕視的軟體功能才能出頭.
這時興起辭職去其他系統廠發展的想法. 但就如同電影"東方不敗"中所說 : “江湖在哪裡? 有人的地方就有江湖 !”
其他系統廠也會存在相同狀況, 如果沒有總經理級的支持, 到時候鐵定也是被排擠的份. 在華碩起碼還有HC知道我是會做事的人. 還好過沒多久, 果真HC就暗中幫了我一把.
2007年四月某晚8點多時, 接到Jerry秘書的電話, 說要找我一起吃飯. 搭著Jerry的Lexus 460 LS加長豪華版, 去台北藝術大學吃飯. 席間才得知, 原來Jonney交代Jerry去執行百元電腦計畫, 但Jonney一直對軟體部分放心不下, 要Jerry特別留意, Jerry就請HC推薦合適的軟體人員來幫他看軟體這一塊.
雖然HC大力推薦, 但Jerry擔心我常跟其他軟體部門有磨擦, HC反問他, 是要找一個會打仗, 攻山頭的人(對啦, 這種人死的最快, 無法享受勝利成果), 還是守成, 注重部門和諧圓容的主管 (割稻尾最在行, 處世圓融, 見縫插針). 幾經思考後, Jerry最後還是找上我.
其實在2007年1月時, Jerry因底下的PM不懂軟體, 就叫我幫他看數位像框的發展機會, 我經過2天的技術survey後, 建議他取消, 因以其成本, 大可做一台Thin Client或WebPAD. 如果真得要做, 建議PM考慮用VIA C3 CPU + Linux來開發.
而邀請VIA CPU Sale來開會時, 負責AMD百元電腦的PM也跑來插花. 後因華碩跟VIA, AMD價格談不攏, 最後連百元電腦的案子都停矲. 所幸Intel看到AMD在OLPC上的聲勢, 為防止AMD鹹魚翻身, 就跟華碩合作, 進入百元電腦市場, 而使這台小電腦起死回生.
餐敘後隔天就跟PM, MID等相關人員, 一起被關到北投春天酒店. 2天後趕出百元電腦的UI/軟體功能規格初稿. (吃了兩天的生魚片, 真得有點反胃)
那時候公司內部並不看好百元電腦的前途, 只好用我們這群從四處徵招來的散兵游勇來執行. 但因這是Jonney非常重視的案子, 使Jerry認真執行, 一個星期開3次會, 常常開到凌晨.
當時也不知道百元電腦會不會起來, 但與其繼續待在NB team被冰凍, 到不如把握這個機會闖一闖. 百元電腦是個人人不看好的案子, 沒有高官想進來插旗佔山頭, 完全沒有歷史包袱. 只有一群笨蛋, 傻傻的做. 有點像在公司內部創業的感覺, 如同VGA部門剛成立時一樣, 大家只想把東西做好. Just Do It! 而不會去想些有的沒的, 非技術性的事情.
出關後, 上網查一下Intel對百元電腦的策略, 結果發現另一個消息, 原來Intel老早把Xscale CPU賣給MARVEL, 全力專攻X86 CPU的省電技術, 並在以色列海法分部進行該專案.
雖然那時HC知道我想換部門, 叫我去幫他看車用電腦這一塊, 但他底下也有山頭問題, 犯不著跟那些人玩政治. 而且我覺得跟隨Intel腳步比較有搞頭, 如同宏達電跟隨微軟般. 新興的產品, 有大公司在背後推, 才有機會成功.
所以就接受Jerry的邀約, 加入百元電腦團隊. 忙了1個月多月後, 在2007年台北電腦國際展上, Jonney拿出這一部百元電腦亮相, 並正式命名為Eee PC.
EeePC會不會是曇花一現, 或是乘勢崛起, 我不曉得. 但我個人相信, 在UMPC/MID這塊領域能存活下來而且能獲利的, 必定是強調系統整合功能的公司, 絕對不是只相想靠低價成本搶單的公司.
我非常佩服宏達電, 死死跟著MS的Window Mobile平台. 跟到第4年時, 公司差點倒閉. 因而引進王雪紅的資金. 但等到WinCE 3.0夠穩定, 能拿出來賣時, 宏達電是第一家有量產能力的公司. 同時它也聘請許多軟體工程師來做系統整合.
當宏達電推自有品牌時, 一堆分析師看衰. 但因系統整合難度高, 其他手機代工公司是看的到, 吃不著. 後來連原先解約的電信公司, 迫於市場現實壓力, 也回頭找它代工, 甚至直接貼牌.
我是天生反骨, 在WinTel體制下討生活討了10年, 因為了解所以不滿, 對其架構, 越看越不順眼. 在我眼中, EeePC應是屬消費性電子產品, 但又需具有PC般的擴充能力. 能執行現有Linux/Windows龐大的X86 base軟體, 讓User可以自行添加自己慣用的軟體. 而不會像PDA, 手機般, 被綁得死死.
若按照傳統NB的觀念來設計, 鐵定無法持續穩住目前的地位. 競爭對手只要猛攻低價化, 體積小的罩門, 很快就追上來.
現階段EeePC競爭對手, 都是以硬體成本來挑戰EeePC. 談硬體成本(CPU, Panel, Battery)的功力, Acer, HP, Dell會輸華碩嗎? 談垂直整合生產製造, 鴻海會輸華碩嗎 ? 更何況還有Apple神秘的iBook.
等2008年Q2/Q3這些重量級廠商的類似產品陸續出籠後, 必定是一場大廝殺. 策略不對, 研發能力不強化的話, EeePC鐵定被痛宰 ! 或許現在一些的好消息, 讓華碩一些人飄飄然, 我可是蠻憂心, 挫著等.
若EeePC朝更輕更薄, 更穩定, 更省電, 更快速開關機, 影音品質更好, 螢幕更大, 操作介面更人性化, 而且能控制住價格. 或許能產生許多差異性系統功能來持續吸引USER的眼光.
其中系統穩定/省電功能/影音品質/人機操作介面, 軟體都可以幫的上忙.
當然, 打嘴砲想當官性格的我, 一定會考慮到:
沒人逼你做, 卻笨到自己主動挖個洞, 往下跳. 給自己找麻煩.
做出來, 沒人感激你, 反而還惹毛一些人.
做不出來, 別人逮到機會落井下石, 說你是大嘴巴, 愛吹牛.
若乖乖按照現有NB業界的安全方法來做, 跟大家都一樣.
老闆拿不出對照組來評估, 當然滿意你的績效.
如同銀行的資訊長愛用IBM的軟體, 如果出問題, 他可說國際級銀行都用IBM, 拿其他銀行來當擋箭牌. 採用一家名不經傳, 可以省200萬成本的本土資訊廠商方案, 萬一出錯, 讓銀行賠上幾千萬時, 鐵定被迫辭職或降級. 老狐狸的資訊長當然打安全牌.
但工程師性格的我會想:
如果在相同硬體成本下, 能用軟體充分發揮整所有硬體功能, 創造出更多附加價值, 而且軟體成本是在人事上, 賣1萬台跟賣100萬台, 是相同的成本. 當CPU/VGA硬體能力成長時, 軟體功能也隨之成長, 而且是以加速度來成長.
另一方面, 軟體也可用來壓低硬體成本. PS3因用軟體搞定PS2相容問題, 而省下PS2 Chip的成本. 那EeePC可不可以如法泡製? 若有5成把握, 我就放手一搏. 只要一台省下1塊美金硬體成本, 賣300萬台就省下台幣9000萬, 若失敗, 只是多花2個人月的成本, 這個算盤實在是太划算!
而這些觀念也獲得一名協理的支持, 幫忙我跟BIOS/HW部門溝通. 要是我出面的話, 根本沒人鳥我.
這位協理, 以前華碩還小時, 我就跟他有過幾次合作經驗. 這次被關到北投春天酒店, 他review某個卡了1個多月的軟體問題時, 我馬上提出解法. 2個小時後, RD回報已經解掉問題, 給他留深刻下印象. 後來在正式成立EeePC事業處之時, 他在Jerry面前也幫了我不少忙.
一些PM開規格時, 因沒有深厚的技術背景, 為打安全牌, 常常就是:
- 照抄大廠 (DELL, HP, Acer) 的規格
- 照收WinTel的roadmap.
- 照收component/software廠商的solution.
例如每家都配訊連的PowerDVD, 在UI上打上公司LOGO來自欺欺人這種做法只能做到消極防禦, 無法積極攻擊競爭對手. 搞到最後, 大家功能都一模一樣, 只爽到訊連.
而Microsoft在MCE 2005上推的SideShow, 其起因是PortPlayer的MP3 chip被Apple取消用在iPod上, 而改用Samsung的. 為了活下去, 它就跑去向Microsoft努力推銷SideShow觀念.
SideShow說穿了, 就是把PortPlayer的MP3 Player (成本US $50) 黏在NB背板上, 讓NB同時有X86 CPU跟ARM CPU. 當X86 CPU關掉時, 可用ARM CPU的SideShow功能來看picture, 聽MP3, 和看e-mail通知.
有沒有搞錯 ? 隨身攜帶的手機都可以做這些事. 一般User/ 根本不需要這種華而無用的功能, 而且SideShow一直開著會耗掉NB電源. 在NB上加SideShow, 獲利者是PortPlayer, 而倒楣的是NB廠.
在EeePC會議上, PM計畫導入某家PCI-E 3G無線網卡, 內建在EeePC. 同時要求軟體團隊來協助. 有沒有搞錯 ? 應該是這家公司要從頭包到尾, 自行負責, 它如果做不來, 還有其他家的方案. 哪有動用內部資源去幫外面公司賺錢的道理. PM到底是領EeePC部門的薪水, 還是外面公司的薪水 ?
在會議上我就開砲, 認為最重要的是, 趕快推出內建BlueTooth, 跟能輕鬆與各家3G手機連線的軟體. 不必為3G上網的功能, 還要讓USER負擔3,4千元去買額外的USB/PCI-E 3G硬體. 況且用3G手機, 可馬上解決:
- 全球各國Field Test的問題
- 高速移動時的連線品質,
- 讓3G手機的電池去負擔天線/3G Chip的電源, 不用耗掉EeePC的電力.
便宜, 好用又省電. 對EeePC價格, 軟體團隊, 及User, 是三贏的局面.
就是這種雞婆個性, 常常撈過界, 挑戰別人的專業, 無意間就得罪別人. 但我覺得, 工作除了賺錢, 還要有理想, 外帶對自我技術的提升, 看看自己的底限為何. 如果自己多花些時間, 從使用者的角度, 來改善產品品質, 幫user省錢. 而不是已交差了事的心態來做事. 當參與開發的產品能大賣時, 多分些Bonus, 能獲得工程師最好的工作滿足感跟合理報酬
Jerry看到EeePC大受歡迎, 衝到Amazone網站最受歡迎NB的第一名時, 決定把這堆妾身未明的散兵游勇組織起來, 成為正規軍. 於是成立EeePC事業處, 地位跟規模將與NB/MB/手機事業處平起平坐.
原先我喜歡當工程師, 獨自躲在安靜的角落, 把上級交代的事做完後, 就天馬行空想新點子, 上網找資料看論文, 然後動手實作出來. 坦白說, 軟體工程師是蠻幸福的, 只需一台PC, 有上網環境, 就可以實踐創意. 不需像硬體工程師需要一堆設備跟很多單位配合, 才能動手.
然而經歷過6年不受重視被冰凍的職場生涯後, 我的態度改變了.
公司規模變很大後, 一些事情都慢慢變複雜, 日後能給我自由空間發揮的直屬高級主管恐怕也不多見. 而且遇上一些案子, 高層會先考量需求的研發/維護人力, 來交給一個team, 而非一個人來執行.
工程師的我永遠是邊緣人, 只有發生問題解不掉時, 才會想到我. 而論功行賞, 封官加爵時, 根本忘記我的存在, 鐵定沒我的份.
成立有戰鬥力的研發團隊, 是很費時費力, 還要靠運氣(產品大賣). 但要摧毀它, 只需派個只會打嘴砲的主管, 不出半年, 很快就搞定.
與其如此, 倒不如自己出任管理階層, 參與高層主管決策, 來爭取預算, 在自己業務範圍內, 營造出良好軟體開發環境, 吸引志同道合的RD, 將所學10幾年的軟體經驗承傳下去, 為公司培養具執行能力的中階幹部, 來擔任士官長的角色. 只要具工程師性格, 有創意跟執行力的中階主管, 越來越多時, 我在公司內部, 才不會到處被視為麻煩製造者.
若EeePC打算要衝出500百萬台的大量, 需要成立更多課級單位, 應付現階段出貨需求, 著手開發未來次代機種, 以及研發新軟體技術, 拉高技術競爭門檻, 降低生產成本. 到時候就急需一群能獨立作戰, 充分授權的士官長來貫測執行.
軟體產業不是比人多, 而是比頭腦好的產業. 派個沒實務經驗的軟體主管, 馬上去大陸找一堆2, 3百個軟體人員來成立軟體部門, 沒有20幾個中階幹部來有組織規劃, 落實執行, 鐵定是一場災難.
我原本打算只成立小型團隊, 從2007年7月時慢慢找, 才找到一些合適人員. 但因接下來EeePC的延生機種, 系統客制化, 以及相關軟體的開發, 讓高層一直催促我要儲備更多的軟體人才, 來應付未來的產品規劃.
要加人可以, 但我要高層先答應, 以後分Bonus時, 是要看部門績效, 而不是數人頭. 如果我夠厲害, 其他軟體部門要用10個人做的績效, 而我能用4個人搞定. 到時就分7個人的quota給這4個人.
如此公司可省3個人事成本, 而有實質貢獻的RD可拿到較好薪水, 願意長期待下來, 自我提升技術, 創造更多競爭力. 造成雙贏局面.
另一方面, 若EeePC未來銷售不如預期, 養不起這麼多軟體工程師時, 我還能確保部門內RD的薪資能優於其他部門, 不用辭退多餘人力.
為了引進更多志同道合的夥伴, 極力向高層推薦老戰友Alex, Alex在華碩任職期間, 曾做過WebPAD, PDA, SmartPhone等案子, 後因政治因素辭職去BenQ, BenQ的第一代MP3 Player, 就是他做起來的. 最後也因政治因素, 鬥不過BenQ PM而回鍋華碩. (也就是有他這個案例, 我才打消辭職念頭, 繼續龜縮在華碩內, 等待機會)
他對Embedded System硬體架構/省電功能相當清楚, 我跟他合作過2款WebPAD, 彼此具強烈工程師性格, 在系統功能設計上有相同看法. 而他歸到EeePC事業處後, 馬上就抓出一些硬體線路漏電問題, 作為改版及次代機種的改善目標.
我建構軟體部門的想法是:
- 以驅動程式或跟硬體綁在一起的應用程式為主, 向外延伸.
- 用軟體手段來求系統穩定, 省電.
- 用軟體手段來降低生產成本.
- 用軟體來降低硬體設計成本, 並能提供更多的附加功能.
- 成立 “軟體IC” team, 研究algorithm搭配既有的硬體設計,
在不增加任何硬體成本下, 用軟體手段提升EeePC影音品質.
越老鳥的Programmer越謙虛, 因為越清楚自己的能力底線. 全球Open Soucrce高手的功力是遠遠勝過華碩軟體工程師. 要跟他們拼純軟體應用程式開發功力, 無異以卵擊石. 但因公司機密, 無法讓他們取得EeePC硬體設計圖及相關IC規格. 而這就是華碩軟體工程師能發揮最大價值的所在點:
幫Open Soucrce高手解決硬體相關問題, 提供Library讓他們使用. 使他們隨心所欲改機, 修改軟體, 很容易將其他OS移植到EeePC.
雖然EeePC事業處另有軟體部門負責Linux, 而我是負責Windows, 但我極力爭取在部門內成立2個Linux開發課.
為此, 找到網通大廠及IC公司的兩位中階軟體幹部, 來負責Linux系統穩定度, 驅動程式, 跟工廠生產測試軟體等開發工作.
工欲善其事, 必先利其器. 為了趕快進入狀況, 花了1個多月, 評估MontaVista的系統開發工具, 並派RD與其合作, 把該套工具從MontaVista Linux kernel移植到到Xandros kernel上. 有個source code level, remote debugging的開發環境, 遠比用printk deug kernel/driver方法來的精準快速.
打算用Embedded Linux手機穩定度的水準, 來要求EeePC Linux系統穩定度. Linux上沒有像MS在上億台PC上執行過的WHQL/HCT/DTM系統測試程式. 商用專業軟體工程師跟志工性質工程師做出來的系統測試程式, 兩者在性能,可靠度, 後續維護, 跟技術問題諮詢上, 是有很大差距的.
而且MontaVista有多款Embedded Linux手機的成功開發經驗. 雖然花上百萬來買這套開發軟體, 我覺得非常值得. 現在隨便一個沒經驗剛畢業碩士的人事成本, 鐵定比它還貴, 而對案子的幫助鐵定遠遠比不上這套工具.
如果EeePC量夠大, 這些Linux Device Driver RD也都tune上來時. 到時候計畫成立一個EeePC Linux Device Driver Certification課, 要上EeePC Linux的device driver需先經過這個課來驗證. 並同時為Ubuntu跟Google Andriod的移植來鋪路.
從Google放出Android的source code後, 我就一直對它念念不忘. 不出5年, Google必定取代MS, 而且還會比MS更恐怖.
Google不對user收任何費用, 它是向廣告廠商, content provider收費. 只要Android舖的越多, 內建到更多能上網的前端便宜device (手機, Settop Box, MID, UMPC, PC, NB, Game consle), 提供更好更快速的後端server功能及頻寬. 那還有誰想想用手機的視訊, 訂票, 看電視, 查餐廳/停車場等付費數據服務 ? 更何況還有跟Google Map結合的免費地圖導航功能.
打不過對方, 就加入它, 利用它的力量. 站在巨人的肩膀, 才能看的更遠. 不然就會被巨人一腳踩死. 等量產相關工作都搞定後, 我一定親自下海, 加派人力來做這一塊.
對工廠軟體下載跟自動化測試軟體的開發, 我非常注重. 軟體不只可以增加附加價值, , 還可以降低生產成本.
12月因EeePC生產不順, 兩次去上海工廠看問題, 發現有太多改善的空間. 負責生產的工廠單位, 以前接過Apple Mac NB的代工案, 見識過Apple的軟體生產測試工具的效能. 當我提出這個觀念時, 他們極力贊成, 還一直逼問我何時可以導入, 完全不像其他單位的極力抵抗.
有執行單位主管的全力配合, 這個案子已經成功一半了. 接下來就看我這個部門爭不爭氣, 來兌現支票.
2008年大陸頒布的新勞動合同法, 會增加生產成本, 現在一堆台商搬去越南來避開, 那是不是以後遇到相同問題時, 要搬去孟加拉or非洲? 而且以後衝量時, 有可能下單到其他代工廠. 如果能將生產相關的軟體技術, 掌握在手裡, 可以避開人力成本跟加快其他代工廠上線速度.
若每台生產成本因而省下1元美金. 200萬台就可省下6400萬台幣. 只要公司撥一半給我這個部門當Bonus, 大家雖然累, 但是會累的很快樂, 累的很有成就感. 不會累的很幹.
現請一位主任, 先在台北架起一個工廠軟體下載生產測試的模擬環境, 等把相關軟體開發測試過, 覺得有把握時, 再去大陸工廠實地上線測試.
PM規劃下一代EeePC時, 決定加入TouchPanel功能. 找來廠商來報價, 結果報一個離譜價格, 對方解釋是因
需要一顆USB IC跟相關觸控軟體程式. XD! 是欺負華碩沒有懂軟體的人, 來亂開價的嗎 ?
會後馬上交代一位高工, 叫他把USB IC拔掉, 照以前寫WebPAD觸控螢幕的驅動程式觀念, 來降低Touch Panel成本.
程式設計俱樂部網站 (www.programmer-club.com)上, 在"用軟體模擬虛擬攝影機的硬體" 討論串中, 我就提出類似用軟體模擬來節省硬體成本的觀念. 結果引起某家IC RD的對嗆, 說要尊重IC公司的智財權等等.
就是系統廠PM沒經驗, 太好騙, 才讓這些公司獲取暴利. 同時也讓IC公司的SW RD瞧不起系統廠SW RD的功力. 在EeePC上, 如同在NB上用Video Splendid取代Jepico IC般, 我鐵定盡全力, 用軟體手段, 讓這些公司只能獲取合理報酬. 同時萬一要發動價格仗時, 也讓華碩有更多本錢跟對手硬拼.
為達到人盡其才, 落實RD要幹RD的事, 而不變為領高薪的QT, 我從QT部門挑出兩位學士測試工程師, 交由華梵大學畢業的副課長帶領, 讓他們負責WHQL Test, WinXP image, 在WinPE/XPE上撰寫測試程式, 而他們表現完全不輸碩士級工程師. 讓我意外驚喜, 有物超所值的感覺.
我給他們的任務是, 盡量用軟體手段改善流程, 來應付大量XP image製作, 而不是用人海戰術來應付. 薪水分紅將比照碩士工程師水準來調整.
為了用以往DVD Recorder/LCD-TV的開發經驗, 來改善影音品質, 我找了交大應屆畢業資訊工程博士跟另一名寫3D Game的學士, 合作開發 “軟體IC”.
原本給他們的schedule是半年將Video Splendid 1.0移植到到EeePC (為了7月打考績時能向高層證明), 一年後推出Video Splendid 2.0. 結果花3個月他們就移植出來, 並且還寫出第2代的prototype. 真的是江山代有人出, 讓我突然覺得老了.
OLPC的EC firmware RD也應邀加入. 為等他把OLPC EC處裡完, 我等了3個月. 因他有x86 BIOS, Window Application, 及EC的經驗. 只需把他教會ACPI Driver跟device driver相關技術, 以後我就可以專注規劃從Window Application/ Device Driver/ ACPI BIOS/EC Firmware一路打通的架構跟介面, 而由他去操刀執行, 配合HW RD的修改線路, 希望能將以往在Bulverde VC上學到的省電設計經驗, 落實到EeePC上.
或許有人認為我是在吹牛說大話, 但如同史蒂芬周說過的,
‘‘做人如果沒夢想 , 跟鹹魚有什麼兩樣…."
做RD就是要有這種Guts. 做不出來, 頂多浪費2,3個月, 大家走回頭路, 繼續當WinTel的順民, 乖乖照傳統NB的路子走, 但若做出來, 競爭對手想要照抄, 可沒那麼容易抄.
硬體線路或許可以照抄, 但散落藏在App/Driver/ACPI BIOS/EC中的軟體, 可就沒那麼容易抄. 如同威騰可以抄襲聯發科的DVD ROM server chip, 但無法抄襲其韌體. 於是原封不動將聯發科韌體套到自家的chip上, 結果被活逮, 判賠美金5千萬元.
我沒有名校情節, 不會非台清交不用. 我在清交大的學業成績是吊車尾. 因為知道自己程度差, 所以非常用力拼研究所考試.
在 “我的DDK學習經驗"中說只要黑手工程師. 10年後我還是說同樣的話. 部門只有2位是清交畢業的. 我重視的是做事態度, 學習能力以及最重要的績效.
現在這些同事在加入團隊之初, 我就先說不保證高薪, 也不要以為EeePC可以一直熱賣下去. 要有較好的薪水, 就要靠大家努力, 為公司創造利潤.
為防止保障年薪後, 馬上就在公司內擺爛, 讓主管對他無可奈何的現象. 我是不會採保障最低年薪的手段來聘人.
鴻海處理這類應徵者是: 你敢拿我就敢給, 要高薪可以, 先達到業績再說, 沒達到就一路打折下去, 從1千萬打折到最後只剩100萬, 天天逼進度, 讓那些自以為身價非凡的人, 待不滿一年, 沒等到股票, 就主動辭職.
就有個手機團隊從工研院跳到廣達, 然後跳到鴻海, 結果不到一年就辭職回工研院.
連我這個大頭目都要親自下海coding, 不准團隊中存在只會打嘴炮, 不會做事的人. 就算以後幹到管理階層, 也絕對不能放掉技術的本. 自己沒技術能力, 如何去帶領更菜的工程師, 看出部屬的錯誤之處. 又如何能著規格變化來持續改善或推出全新的軟體功能 ?
沒有一套軟體功夫能讓你吃一輩子, 除非你壟斷產品的某個研發流程, 建立山頭完全不讓別人進入來取代你. 讓上面的人想動你時, 考慮到陣痛期的成本, 就不敢輕易開刀. 自己的官位跟薪水遠遠凌駕在公司整體利益之上. 大公司一代不如一代, 技術斷層, 山頭林立的現象, 就是這樣造成的.
也告訴他們, 總經理公開宣示, 在華碩分家後, 會以績效作為分紅主要考量, 大幅拉開RD間的待遇差距, 全力留住具競爭力的員工, 並且每年會fire不合適的員工, 來促進人才流動.
若EeePC能在2008 Q2/Q3繼續站穩腳步, 我鐵定在大陸成立軟體團隊. 現在上Google查device driver相關的文章, 都出現一大堆量多質精大陸軟體工程師寫的技術文章, 遠遠超過台灣軟體工程師的文章.
5年前在蘇州成立軟體團隊時, 就感受到大陸工程師在困境中, 力爭上游的精神. 在東北老家, 父母務農一個月才賺人民幣200元, 隻身到蘇州, 四個人擠在一間破套房內. 只能靠寫程式才有出頭的一天. 那種拼勁, 置死地而後復生的精神在台灣已不復見.
當初還沒進華碩, 每月領資策會35 K的死薪水, 租間在三重貧民區的頂樓房子. 老婆懷孕8個月, 夏季時太陽曬在屋頂, 頂樓房子熱的像烤爐, 怕開冷氣花錢, 就只穿條內褲, 吹電風扇, 假日窩在電腦前寫程式賺外快. 幫一家CNC Controller廠商寫Win95 Device Driver, Sample Code, SDK Library, Document, InstallShield安裝程式. 那時候真的是拼勁十足, 程設功力突飛猛進.
我想現在大陸還有一大群這種有拼勁, Programming能力夠水準的軟體工程師. 如果把他們組織起來, 好好訓練, 並給予合適報酬. 只要抓住趨勢, 全力猛攻. 這個團隊的戰鬥力會相當驚人.
在台灣, 繼前波藍領階級失業潮後, 白領階級也開始失業. 我就常收到失業的美國40, 50幾歲華裔軟體經理的履歷. Andrew Grove在 “Only the Paranoid Survive” 中寫到, “公司沒有天生就欠你一碗飯, 想吃飯就要靠自己去爭取”.
台灣的軟體工程師憑什麼要求高薪 ? 現在有些工程師是躲在大樹底下好乘涼, 公司大員工多, 可以混水摸魚, 濫竽充數. 但你能躲多久? 等到40歲被辭退又找不到工作, 小孩教育費, 全家生活費, 20年房貸都要錢. 到時候要怎麼辦 ?
華碩低月薪, 高分紅(不一定高, 要看績效)在業界中是出了名的, 當初兩位有家累, 房貸壓力, 30好幾歲的高工, 衝著我畫出來的大餅, 甘願減薪加入團隊. 對他們, 我有一份道義責任, 以前幹工程師, 搞砸就只有自己吞苦果, 現在搞砸就有一堆人跟著倒楣.
分家後, Jerry定下遊戲條件: EeePC事業處未達業績標準, 核心主管減薪40%, 基層工程師不受影響. 相反地, 若超出預訂業績標準, 就以比例來多發分紅. 不久後就要跟他畫押留證據, 免得分紅時候, 空口無憑. 害慘底下這批工程師.
我寧願用比華碩股票低的公司離職員工. 又套句史蒂芬周的話:
“只要有心, 人人都是食神”
就算台清交畢業的RD, 一星期就能搞定的案子, 只要有耐力, 有毅力, 有興趣, 若他願意花2個月來搞定. (況且現在網路上一大堆open/sample code可供參考) 1個, 2個, 3個案子.. 一直做下去, 到最後他的技術能力決不亞於偷懶的台清交碩士.
我只聽過玩Online Game玩到暴斃, 還沒看過寫程式寫到暴斃的案例. 如果部屬寫程式寫出興趣寫到上癮, 就像玩game殺終極大魔王般, 我根本不用管, 他自己就把案子做出超過我預期的效果.
聯發科的開國元老原本在聯電中, 是被當皮球踢來踢去. 宏達電開張第4年, 資金燒光, 差點倒閉掉. 華碩在Intel放出要做MB消息時, 走掉一大批RD. 在初創階段, 上述公司哪有本錢請素質超好的RD? (華碩現在有兩位協理, 是光武工專跟淡江大學畢業的.) 但還不是最後被他們搞起, 做到股王.
我想找的, 就是有理想, 肯學肯拼, 愛寫程式的programmer. 因自知條件比不上台清交, 所以會謙虛會認命去拼未來. 而不是畢業名校, 待過大公司, 自命身價不凡的programmer.
我就是要這種拿穿草鞋的精神, 去跟穿皮鞋的公司拼. 用龍蝦鮑魚做出好菜不稀奇, 用青菜豆腐做得出來才厲害. 只要肯學, 程度不要太差, 我願意花上1年, 傳授coding經驗, 把他帶上來. 依績效給他對稱的待遇.
我印象非常深刻的事是, 有記者訪問朱經武博士(超導體先驅學者), 說一星期只有一個晚上能休息, 會不會覺得太累, 結果他回答,
有人肯幫我買數億元的設備, 讓我做我喜歡做的事, 我高興都來不及了, 怎麼會覺得累, 還覺得時間不夠用.
所以有幾個這種部屬, 我就可以天天到其他部門, 串門泡茶啃瓜子.
最近看的一本書 “科技頑童沃茲尼克”, 感受相當深刻, 心有戚戚焉.
Worziak提到他非常喜歡在HP當工程師, 而當HP成立專案, 派出至少5個人以上的團隊, 來研發類似Apple I/II的產品時, 一些經理人覺得受到威脅, (因Apple I/II的軟硬體是Worziak獨自開發出來的) 完全將他柄除在外, 即使他卑微到只想當個小小印表機介面工程師都不行. (當妒才, 不求長進, 壟斷山頭的經理大量冒出時, 就是公司停止成長的徵兆)
因Worziak做過Artira的Ping-Pong(乒乓)/BreakOut(打磚塊)電動遊戲, 將其TV output, 搖桿, 影音效果的技術, 運用在Apple II上. 而他也做過盜打長途電話的藍盒子, 將其音頻技術, 運用在錄音帶來儲存AppleI/II程式的技術上. (以前做過亂七八糟案子的技術能量, 總有一天, 會在某個產品上整合)
又他知道如何用軟體去控制硬體(寫電動遊戲時累積下來的軟體功力), 把原先以純硬體觀念設計, 花22顆晶片組成的軟碟控制器, 改成只花2顆晶片, 搭配複雜的軟體設計, 在2星期內做出安靜超快的軟碟控制器. (不要傻傻聽信IC廠Sale的話, 去買又貴又耗電, 性能又差的IC, 只要肯動頭腦, 了解基本原理, 軟體的確可以省下許多硬體成本)
在設計AppleII時, 用最便宜的方法, 支援現有美國電視機輸入頻率, 讓user不用花錢另外買monitor. 而且只用Apple1一半的晶片數目, 就做出功能大幅超越Apple1的AppleII. (不要花錢裝內建的3G網路卡, 利用藍芽連接3G手機的能力, 幫user省錢, 而不是害User多花錢, 讓一堆IC公司利用華碩去賺暴利)
為了堅持Apple II應該有8個擴充槽, 與賈伯斯起第一次爭執. 而被豬頭高階主管主導的Apple III, 則慘遭開放式的IBM PC屠殺. (不要為省connector的錢, 而把EeePC MINI PCI-E/DRAM擴充槽拔掉).
現在Jerry非常忙, 比周杰倫的牛仔還要忙, 根本沒時間看我的規劃方向, 只要解決掉他覺得EeePC不好用的地方, 就不會被他釘到牆壁上. 另一位硬體出身的協理相當Open mind, 這本書就是他推薦我看的, 還蠻支持我對軟體附加價值的想法.
最後只要滿足每個PM的出貨schedule, 就不會天天來煩我. 只要部屬有meet進度, 我根本不會去管他們要做什麼. 讓他們自由發揮創意, 或者提早下班. 反正最後是看績效, 而不是看你每天待在公司的時間, 來決定升遷.
績效是很模糊的東西, 做立即影響出貨的XP image, 跟做花1,2年才看得到績效的Algorithm. 何者孰重? 有些人就是運氣好, 撿到輕鬆, 主管誤以為績效高的案子, 而有些笨蛋就是想挑戰mission impossible.
又套句史蒂芬周說的話:
“貪官要奸,清官要更奸,不然怎麼去對付那些壞人?”
當主管的, 要比部下更精, 不然怎麼去打出公平考績.
在程式設計俱樂部上, 我有注意過一位Harrison網友, 他持續2個多月問我有關ACPI Driver的事, 我叫他去看一些公開資料, 從他問的問題, 越來越接近核心. 我就知道他真的有看這些資料.
而且他說, BIOS RD的他想搞ACPI Driver, 是個人興趣, 不是公司硬逼. 我就是想找這種人來加入團隊. 但因他誤以為, 能進華碩的RD都是高手, 想繼續練功, 練到更有把握. 所以婉拒我.
但我告訴各位, 公司一大後, 有高手也有濫竽充數的夾雜其中. 而能撐到最後的, 通常是那些有毅力, 有耐心, 有危機感, 有執行力的人. 只要放在以技術為主, 沒亂搞政治的工作環境中. 他們就會自動自發, 甚至發揮出出乎意料的表現. 也不用管理階層天天在後面逼他們.
況且我會先給舊版程式的code, 讓他們trace打基礎, 有段緩衝期, 還有老鳥可以問問題, 然後再要求他們開發下一代的新功能. 像我現在, 除了開一堆會, 回一堆E-MAIL之外, 還有時間寫code, 上網查技術資料, 就是靠他們自動自發, 讓我省下許多時間.
因104人力網站只能列出簡短描述, 導致我無法細說要求條件, 也無法讓應徵者充分了解我的規劃跟行事風格.
因不想浪費彼此時間, 若有意應徵的人, 請先評估個人期望待遇與發展方向, 是否能符合我提出的這些條件, 才來投履歷.
若有興趣的, 請到104人力銀行, 或華碩人力網上留下聯絡方式. 並註明應徵EeePC事業處軟體第五部軟體工程師. 我只管EeePC事業處軟體第5部, 其他EeePC軟體部門不是我管轄.
我不辦考試, 有意者請拿做過的作品, 來跟我閒聊. 目前我需求的人力有:
美術設計人員: (1名)
需會操作MAYA等3D軟體並轉成Direct3D的格式, 會平面設計及網頁撰寫.
需跟工業設計中心(MID) 合作. 重點在設計Application的外表圖案.
在相關產業有2年以上的經驗.Window應用程式開發人員: (2名)
需MFC 2年開發經驗, 工作項目初期負責WinXP Image製作,
開發WinPE上的工廠測試程式. 及開發次代安裝光碟程式,
若學習能力強, 不排除日後從事Windows Device Driver開發工作.Windows Display驅動程式開發人員: (1名)
有在IC公司從事過Windows display device driver開發經驗.
工作項目: 初期負責充分發揮EeePC VGA chip的硬體功能,
撰寫VGA Memory/3D Engine測試程式on WinPE or XPE.
後期負責維護/升級ASUS VGA Display Driver Hooking技術.
(這一塊技術我可以下指導棋)Windows LAN/WLAN/WiMax驅動程式開發人員: (1名)
有在IC公司從事過Windows WLAN/LAN device driver開發經驗,
具NDIS, WinSocket等相關技術背景.
初期負責EeePC網路(LAN/WLAN/WiMax) 相關問題並trace IC公司提供的
device driver source code, 撰寫WLAN/LAN/3G相關測試程式on WinPE or XPE.
後期負責EeePC Window base通信標案的相關技術.Linux LAN/WLAN/WiMax驅動程式開發人員: (1名)
同上, 只把Window平台換成Linux平台.Linux Device Driver開發人員: (2名)
初期負責trace and modify Linux device driver open source,
確保在EeePC上的穩定度, 後期撰寫Device測試程式.Linux OpenGL開發人員: (1名)
有在Linux 2.6.0版以上開發過OpenGL的經驗.
最後若認為自己有潛力但不符這些條件的人,
3也可以拿自己寫的程式碼或產品來跟我談.
有個副課長說我, 這樣搞法, 恐怕沒幾個人來面試.
但我告訴他, 我就是要這樣惡搞, 找不怕死的人進來.
寧願這陣子, 咬緊牙關先撐住EeePC WinXP量產的壓力,
也不要急就章, 找到不合適的人. 若在台灣找不到, 就去大陸找.
若2008年Q2/Q3跟HP/Acer/Apple對幹後, EeePC還能在領先群中. 確定EeePC事業處有足夠盈餘來養更多軟體工程師時, 軟體第5部會擴大營業, 在台灣跟大陸, 再做一次徵才活動.
工程師性格強烈的我, 因在網路上留言直言不諱. 多年在BBS, www.23xx.com, www.programmer-club.com 上留下多篇文章, 公司內部早就有人看我不爽, 多次寄這些文章給HC, Jerry來背後告狀. 我相信這篇文章, 不久就有人背後告狀, 轉寄給他們. 為了節省他們的麻煩, 我自己經先寄給HC, Jerry.
被公司受聘, 只要不涉及公司商業/技術機密, 並不代表就沒個人發言權利. 連MS都有個內部員工網站, 可開放給外人觀看, 我常常看到有MS員工在裡面幹醮自家公司.
主管跟部屬下班後, 大家都是普通的老百姓. 沒有誰比誰大.
我也做好隨時離職的準備, 手上的資金, 讓我30年不工作都不成問題. 只要創意/執行力還在, 到其他公司還是可以發展出進階或全新的系統功能. 我也相信還是有其他公司的總經理, 有雅量來容納我這個異類.
華碩不就是因4位創辦人不爽老東家宏碁, 離職後自行開業. 我敢肯定說, 華碩絕不會是最後一家, 因這種原因而成立的成功公司.
微星老闆就非常有危機意識, 我上經濟部辦的 " 94年研發經理養成班"時, 就有7, 8個微星員工參加, 公司補貼全部費用, 也不用加班來補上課時間. 而技嘉老闆跑去開寶嘉, 代理標誌汽車. 從這點, 我就斷言微星會贏過技嘉. 當老闆都開始不務正業時, 你還能期望公司會有多好 ?
已經脫離 “為五斗米折腰” 階段, 若是沒人收留我, 那就自己當自己的老闆, 開Window驅動程式教學課程. 或當自由職的技術顧問, 日子還是一樣快樂. 未來我可不想像HC, Jerry般, 天天開會從早開到晚, 坐飛機全球跑來跑去, 錢夠用就好, 生命中也不是只有寫程式這項樂趣. 等女兒上大學後, 我就不幹了. 要去她的學校唸博士, 反正現在考博士, 只要準備書面報告跟口試就可以.
最後祝大家都有個滿意工作, 而我希望下次長篇大論時, 就是說退休後要做什麼事.
看著桌上兩隻BANDAI MG版Hi-Nu/UNICORN, PG版攻擊剛彈的素組模型, 跟一堆變形金剛: 柯博文, 大黃蜂, 飛輪, 黑魔, 毀滅者, 判官, 密卡登. 哦, 對了還有藏在櫃子裡的1/350大和號, X-Wing, Y-Wing, AT-WALKER,
何年何月才能幫他們改裝甲, 黏蝕刻片, 來上色, 做舊化? 雖然網路有人代做模型上色. 但做模型的樂趣, 就是看一片片塑膠片, 在手中慢慢成形, 而且一台比一台做的更細緻更逼真.
寫到這裡各位大