Abstract
我從原本的SW開發,後來從事FW開發,最近幾年則改成HW的開發,在與HW工程師共事的這幾年,讓我學到4件在SW與FW學不到的
4件事。
Introduction
在從事HW開發這幾年,我從其他HW工程師學到了4件之前在SW與FW學不到的事情,而這4件事情也影響了我目前開發SW與FW的方
式與習慣。
1.Verification
HW工程師非常重視Verification,一個project剛開始kick
off,都還沒想要怎麼design,已經在思考要怎麼去驗證,去列test
case,這也難怪HW普遍比SW/FW穩定,實在是因為HW的驗證遠比SW/FW嚴謹。
2.Architecture
HW工程師在開發前,會先把整個架構劃分清楚後,才著手設計,SW/FW對於架構似乎就沒那
麼重視,經常是邊寫邊改,邊改編寫,這也難怪HW普遍比SW/FW有架構。
3.Document
HW工程師很重視文件,datasheet超過100頁並不足為奇,SW/FW對於文件的要
求相對就相對薄弱,常看到整個project什麼文件也沒有,只有source code,這也難怪SW/FW往往比HW難維護。
4.Root Cause
對於debug,HW工程師常常強調要找出Root
Cause,也就是要找出真的造成bug的元兇,SW/FW工程師則比較傾向將bug解掉,也就是如何避開bug,至於真正的Root
Cause沒抓到沒關係,這也難怪SW/FW常常是挖東牆補西牆,解完A bug可能又產生B bug。
Conclusion
HW與SW/FW有兩個不同的背景,HW一旦設計好開完光罩,若出現問題就是幾千萬的損失,SW/FW若出現問題只要出個
service
pack更新就好,這也導致了HW整個流程都非常謹慎,期望能在開發流程降低所有可能的錯誤,SW/FW因為更新太容易,普遍抱著『有錯再改』的心態,導
致SW/FW的品質沒有HW穩定。我目前在開發SW/FW時,已經不知不覺的使用開發HW的方式與流程,我覺得以上這4點是HW工程
師的好習慣,值得SW/FW工程師學習。 |