2008年2月28日 星期四

除了 Y2K, 系統遇到閏年也是一個難關啊~~

  今天是四年一次的閏年 Feb 29。

  不約而同地,許多地方的不同系統都在這一個特別的日子開始作怪,這是就算乖乖也沒辦法保佑的災難。

  我手上 CXBC 的通知平台系統,在這一天發出給客戶的交易通知,所有從西元年轉換成民國年的資料全部錯誤,顯示民國 97 年 2 月 28 日,讓客戶把今天和昨天的帳務全搞混在一起,客訴電話直逼服務人員腦門。

  朋友在國 X 會負責的人資系統,也發現請假單開不出來,畢竟很多人會在今天請個假和 228 與週末湊個連續假期,不過幸運的是,請假作業是提前進行所以及早發現這個系統的毛病。但是另一個營運主系統則當得很慘,死機好幾個小時才搞清楚原來是閏年計算錯誤的問題。

  用民國年計算閏年是不行的!要用西元年,西元年!】

  【這不是學校老師都會出的作業習題嗎?小小毛病鬧這麼大?】
  ( 這凸顯我這種非正統科班出身的程式員的訓練不足與悲哀 )

  【你們這些廠商程式都不好好寫。】

  透過 MSN ,我彷彿看到身為 MIS 的朋友難以置信地咆哮著...。

  我遇到的問題呢,則是西元轉民國年,使用系統底層萬年曆運算,直接減去 1911 年所造成的,這種寫法的意思相當於,1911年前 ( 西元 97 年 ) 的今天的日期是幾月幾號。這樣的結果,找出的那一天當然不是閏年的二月 29 日。

  聽到這樣做法的 MIS 朋友,簡直不可思議地直叫:見鬼了!

  要在最短的時間內 ( 今天營業日之前 ) 緊急搶救這個問題,我採用最 dirty 的方法,直接字串取代的方式硬生生幹掉,不過這並不能完整地解決此問題,只是暫時性的規避。我發現,要完整的解決此問題還不是件容易的事呢!因為程式允許使用者傳入 DateTime Format String 來自訂日期格式,我是先知道使用者會使用 "yyy/MM/dd" 的格式然後在程式中硬生生地針對這種 Case 作 Replace,若真要完整解決,我還得自己撰寫完整的 FomatString Parser 才行,工程實在不小。

  總之,先過今天再慢慢想完整的解法。

  像這樣的 bug 四年出現一次,當初做再多測試也不太可能事前測出這樣的 bug,只能說要寫出個沒有 bug 的系統真是不太可能。

  處理閏年的問題,就留個不會遺忘的慘痛經驗來記起教訓吧。

2008年2月1日 星期五

[ 轉貼 ] 十年一覺程設夢 ( 下 )


前情提要點此


  原先我喜歡當工程師, 獨自躲在安靜的角落, 把上級交代的事做完後, 就天馬行空想新點子, 上網找資料看論文, 然後動手實作出來. 坦白說, 軟體工程師是蠻幸福的, 只需一台 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 事業處後, 馬上就抓出一些硬體線路漏電問題, 作為改版及次代機種的改善目標.


  我建構軟體部門的想法是:


  1. 以驅動程式或跟硬體綁在一起的應用程式為主, 向外延伸.

  2. 用軟體手段來求系統穩定, 省電.

  3. 用軟體手段來降低生產成本.

  4. 用軟體來降低硬體設計成本, 並能提供更多的附加功能.

  5. 成立 “軟體 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. 美術設計人員: (1名)

    需會操作 MAYA 等 3D 軟體並轉成 Direct3D 的格式, 會平面設計及網頁撰寫.

    需跟工業設計中心 ( MID ) 合作. 重點在設計 Application 的外表圖案.

    在相關產業有 2 年以上的經驗.


  2. Window 應用程式開發人員: (2名)

    需 MFC 2 年開發經驗, 工作項目初期負責 WinXP Image 製作,

    開發 WinPE上 的工廠測試程式. 及開發次代安裝光碟程式,

    若學習能力強, 不排除日後從事 Windows Device Driver 開發工作.


  3. Windows Display 驅動程式開發人員: (1 名)

    有在 IC 公司從事過 Windows display device driver 開發經驗.

    工作項目: 初期負責充分發揮 EeePC VGA chip 的硬體功能,

    撰寫 VGA Memory/3D Engine 測試程式 on WinPE or XPE.

    後期負責維護/升級 ASUS VGA Display Driver Hooking 技術.(這一塊技術我可以下指導棋)


  4. 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 通信標案的相關技術.


  5. Linux LAN/WLAN/WiMax 驅動程式開發人員: (1 名)

    同上, 只把 Window 平台換成 Linux 平台.

  6. Linux Device Driver開發人員: (2 名)
    初期負責 trace and modify Linux device driver open source,

    確保在 EeePC 上的穩定度, 後期撰寫 Device 測試程式.


  7. Linux OpenGL開發人員: (1 名)

    有在 Linux 2.6.0 版以上 開發過 OpenGL 的經驗.


  最後若認為自己有潛力但不符這些條件的人, 也可以拿自己寫的程式碼或產品來跟我談.




  有個副課長說我, 這樣搞法, 恐怕沒幾個人來面試. 但我告訴他, 我就是要這樣惡搞, 找不怕死的人進來. 寧願這陣子, 咬緊牙關先撐住 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, 何年何月才能幫他們改裝甲, 黏蝕刻片, 來上色, 做舊化? 雖然網路有人代做模型上色. 但做模型的樂趣, 就是看一片片塑膠片, 在手中慢慢成形, 而且一台比一台做的更細緻更逼真.


  寫到這裡各位大概猜出我的性格, 沒錯, 是宅男型工程師. 我找的部屬, 都是宅男型工程師.在我們這邊, 鐵定沒有鶯鶯燕燕, 讓你分心, 只有超安靜的環境, 讓你專心工作.


全文完...