網路上看到分享文
http://www.wretch.cc/blog/Ezra12/11242727
在A公司剛滿一年了,雖然最後選擇了離開,但我決定還是要把所見所學整理一下。在裡面看到的其實不只是在工作上而已,也包括不同人家庭、婚姻、理財、保險等等等,我嘗試一點一點在下面列出:
部門內的大環境:
我進入的部門是多媒體研發部內的TV Tuner團隊,這個部門最主要是在做顯示卡,大概站營收的90%,其餘才是TV tuner card,也就是電視卡。部門內硬體工程師加一位硬體課長只有六位,軟體工程師加上一位軟體課長共有九位,光是由軟硬體員工人數大概就可以知道,其實作產品來說軟體的effort是比硬體要大的。部門內出的產品又以OEM為多,最大宗客戶為HP,小部份才是作OBM,也就是掛自己的牌子賣。助理一位。PM(專案管理師)共有六位,四位負責OBM,只有兩位負責OEM,老實說這個人數比和營收比差距甚大。每一位工程師與PM除了向自己的課長負責之外,包括課長和全部的員工都要向部門的資深經理負責,每個星期開一到兩次會議。
硬體工程師的工作:
硬體工程師的工作簡單的說就是把產品從沒有做到有,把產品效能調整到最好,並且使之順利量產。其中大略有幾個步驟:
a. PM與Sales訂出市場策略,規劃出新產品的時程表與大致的規格,例如這次EEEPC在出貨之前,我們就必須把搭配EEEPC的USB電視卡做出來。
b. PM與工程師課長評估可行性,訂出詳細的產品規格與上游廠商(也就是產品內主要要用的晶片是哪一家的),並畫押schedule。在這個階段一定下來,馬上就會通知客戶,讓客戶知道我們大約什麼時候可以有他們或許會需要的產品。
c. 軟硬體工程師由課長指定接案,開始畫電路圖。案子一般來說又有分兩種,一種是由上游晶片廠做出來的公版(reference design),這種設計其實上游廠商已經把系統廠(也就是把消費者終端產品做出來的廠商,A公司就是)想要做的產品做出來了,從電路圖到電路板模型,從驅動程式到韌體一應俱全,此時硬體工程師一顆一顆的將電路圖近乎照抄完畢,把裡面的元件全部換成公司有現成的料件,有時會因為需要而加入自己的備用電路或元件,但通常會預留確認過沒問題的電路。另一種比較有挑戰性,就是要作一個沒有人作過的晶片組合,此時就要把不同晶片廠商的FAE(負責協助下游廠商設計的工程師)link起來,讓他們先討論,了解大致的連接之後,硬體工程師開始畫電路,遇到問題就找FAE討論,整個電路圖確定之後進到下一個設計步驟。
d. 使用軟體開始Placement,也就是零件擺放,要把電路圖上的每一顆元件按照一些設計的原則在電路板上擺在最適當的位置,這些位置非常重要,因為會直接影響下一個階段的結果,也就是走線。走線又叫做layout,這個部份我們會和大陸的layout工程師合作,首先先寫出layout rule,也就是寫出每一個零件之間的連線你想要怎麼連接,要走直線還是斜線?線寬要走多少距離?哪些線之間必須要走出一定的長度關係等等等,幾乎是把整張版子的每一個細節走法都寫出來讓layout工程師知道,之後layout工程師開使使用軟體走線,當然這當中需要不斷反覆的修改與溝通,畢竟對方是大陸人方式和台灣人不盡相同。Placement和Layout這兩個步驟是硬體工程師最精髓的地方,下功夫也就要先下在這,因為不同的線路走法會造成不同的產品效能,工程師的目標就是把效能最大化,進公司的前兩個月我都在讀這方面的書與資料。
e. Layout在硬體工程師確認完全ok之後,layout工程師會開始出圖作業,將版子的規劃圖送給PCB(印刷電路板)廠商去沖洗,也就是把他做出來,依照PCB層數的不同,最慢兩週內會洗出來,當中PCB廠也會和工程師確認當中的製作細節。接下來工程師要把版子當中的所有零件都確認好事哪一顆,公司內有沒有現成的?需不需要和其他廠商的業務拿sample?因為當版子洗出來,就要聯所有料件一起送往工廠製作產品sample。因此要先將料件備好,當中就會產生很多機會要和其他廠商業務碰面的機會。
f. 當sample版子還沒生出來之前,軟體工程師就應該先把驅動程式寫出來,sample一打出來就要測試,看看哪裡有問題。於是艱辛的debug之路就開始了,硬體工程師要分辨問題出在哪裡,作各種實驗來找答案,當中廠商FAE是最好的夥伴,常會需要他們的驗證及協助來找到問題。只要是硬體問題工程師都要自己想辦法解決,可能需要換料或是從新走線(就會回到上一個步驟重來一遍),若是驅動程式的問題則請軟體工程師或是上游廠商來作修改,一直做到產品在各樣測試下全部通過為止,其中包含基本效能測試、品質測試、高電壓防治測試、溫度測試、電磁防治測試等等。另外根據此產品要賣的國家不同,必須要去過當地的法規,每一項測試雖然都有其他的部門幫忙測試,但全部需要由硬體工程師準備、送件、壓時間、以及解bug,每一個bug若與一開始的設計有相關,無法以換零件解決的話,就必須回到走線的步驟作修改,從新打sample。如果產品是客戶要求,硬體工程師會將此ok的sample送到客戶那裡,附上自己寫的產品spec及測試結果,等客戶什麼時後有興趣看一看我們的產品。這部份必定是與其他家代工廠競爭的,因為如HP這樣的大公司必會先向許多廠商提出產品需求,看看誰做的最快最好最便宜,但通常決定的關鍵都是公司之間的”關係”。
g. 以上步驟先完成一部分時,就要開始準備產品的小量試產。A公司的產品都在蘇州生產,一般來說新產品都會先作200pcs的試產,看看在生產此產品時會不會遇到問題,硬體工程師透過email與電話監督,如果出現生產問題,要盡量想辦法在一天內提出解決方案,若沒有辦法,就必須要跑蘇州一趟了。試產當中所有的料件都需要由硬體工程師來準備,工廠PE(工廠端的工程師)會提出哪些料件不足,或是交期太長等,全都透過硬體工程師和廠商交涉來解決。如果順利,一次的試產就把生產問題都克服掉,那就準備第一次量產。也有許多狀況是必須有的二次試產,甚至第三次試產,想當然每一次試產都是成本,怎樣將次數降到最低就是關鍵了。
h. 配合sales需求開始量產。此時和上一步驟一樣,但是開始有其他單位幫忙備料、追料,工廠若出問題也必須由工廠扛較大責任,因為照理說生產問題應該在試產時就解決完畢。但是通常出問題硬體工程師還是要立即解決,不然就跑大陸。量產出問題是很嚴重的,因為會牽涉出貨時間,延遲客戶會立即反應,甚至要求賠償。
以上每一個步驟都是需要壓時間的,時間內東西沒有生出來就算失職,所以大部分RD的壓力都來自於時間不足,或是忽然有客戶很臨時的需求,於是乎加班變成常態。通常案子量產的機會不大,我做的十個案子中有一個走到量產,四個走到試產,而有五個夭折,另有胎死腹中的不計其數。這其實和markting方面有很大的關係,如果策略下的準其實不需要這麼多時間的浪費。
怎樣叫做厲害的硬體工程師?
這一點我是從我課長身上看到的,他的確在專業上卓越,更在扮演課長的角色上表現精悍。整理一下稍微可以分為幾點:
1. 基本專業上:細心是硬體工程師的必備條件,他必須對線路設計原則非常了解且堅持,工作當中會碰到一大堆人想和你在專業上妥協,甚至自己畫出一些可用的外加電路,使產品設計更加完整。同時從設計的一開始,就能針對效能問題、工廠生產問題、以及其他測試問題做出預測,直接就把解決方式設計進去,有些部門甚至要求RD不能作第二版sample,一定要一版ok,用以減少成本。對於晶片設計有不錯的認知,能加強debug速度。再厲害一些的工程師會很快幫助廠商釐清問題真相。
2. 專案管理上:我最多同時身上有七個案子在跑,每週都需要報告進度,所以如果我一天作一個那週末還得加班。厲害的工程師在專案上懂得爭取時間,包括和PM爭取,壓縮廠商時間等。為了要回家睡覺,工程師必須知道案子孰重孰輕,雖然每個案子的關係人同時都開口向你要進度,壓時間,你也必須以產品的銷售潛力當作排先後次序的原則。同時知道什麼問題要接,什麼問題要推,推不是不解決,而是推給晶片廠商去解問題而不自己解。同時要知道各家廠商的料況,避免使用交期太長的料,或是在很早之前就必須通知廠商備料。
3. 廠商關係上:厲害的硬體工程師和上游廠商關係良好,因為業務關係許多上游廠商的業務會不斷與工程師接洽,尋找切入的機會。關係良好的廠商會把最好的市場機會給你,盡全力解你的bug,以及以最快的速度提供你必要的元件。因此你不會在長官面前因為案子delay而丟臉,反而會因快速把料況問題解決而得到親睞。最後更不用說,好的廠商關係也是未來轉職莫大的幫助。廠商有百百種,三節送禮的有,聊天打屁的也有,應酬喝酒的更不佔少數。
4. 創意與提案:厲害的硬體工程師能夠向長官提案,一起討論並且建議。同時會去看其他的產品,藉以提出較具創意性的專案,不過這一項在我們部門內幾乎看不見。
這是努力上的巨人 競爭上的侏儒