《電子技術應用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 尋尋軟件/硬件工程師的思維不同點

尋尋軟件/硬件工程師的思維不同點

2017-02-09
關鍵詞: 軟件 硬件 工程師 電感

有那么一點標題黨的意思,,軟件硬件工程師其實有非常多的相同的特質,,尤其作為有著工程師這個標簽的人,共同點還是相當多的,。這里就從這些共同點里面挑挑刺兒,看看這兩種類型的工程師里面有著什么樣的思維不同點,,盡量不帶褒貶色彩,。

軟件工程師:我今天要完成xx行代碼的重構

硬件工程師:這幾個器件能不改就不改,實在不行用獨家供貨

軟件的靈活性很高,,可以根據(jù)需要進行修改,,即使是微不足道的修改,只要能讓代碼看起來比較“爽”,,都可以隨時進行調整,。況且現(xiàn)在代碼的版本控制工具比較成熟,實在不行可以用時光機返回所有的修改,。

硬件不一樣,,有時候動一根線,或者layout的時候動了一點位置都可能導致信號產生比較大的噪聲或者異常,。每一個器件的修改也是慎之又慎,,需要一系列替代測試和可靠性測試,即使是在風險可控的條件下,,也要考慮投入產出比,。

軟件工程師:有一個新的需求,我們要考慮一下實現(xiàn)方案

硬件工程師:有一個新的需求,,我們看能不能在原來的方案上改一改

軟件行業(yè)日新月異,,有各種各樣的語言、框架和實現(xiàn)方式,,程序員的經驗可以讓他們更快的學習,,但因為時常要面對新的東西,隨著年齡的增長會顯得力不從心,,于是就有了程序員是青春飯的說法,。同時,由于軟件的靈活性,,需求往往是變化多端的,,即使是在同樣的框架下,面對各種各樣的需求也有可能遇到很多坑,。

相對軟件行業(yè),,硬件的變化算是比較小的,雖然性能可能在不斷提高,,但更新的速度和更新的范圍往往是較小的,。經常是用著100年前的原理,,加上20年前的技術,改一改實現(xiàn)新的需求,。因此有了硬件人員的經驗論,,當他對需要的一些器件了如指掌的時候,制定方案或者定位問題都是完全可控的,,而這些器件在他有生之年可能都不會有突飛猛進的變革了,,依靠之前積累的經驗就可以讓他游刃有余。

軟件工程師:It works??! 好吧,就這樣搞定吧,。

硬件工程師:換了一個電容就可以了,不科學阿,,我得找下是什么原因

遇到問題的時候,,硬件工程師比較傾向于“根因分析”,所有現(xiàn)象必須要有個解釋,,這樣的話可以減小問題重犯的概率,。如果問題不徹底解決,往往代價是很高的,。軟件工程師往往覺得問題解決了就是OK的,,后面還有一堆的需求和變化需要處理,有時間再去分析一下,。這里不一定是責任心的問題,,一個原因是因為再次遇到問題的代價不一樣,另外有時候是因為需要管理的復雜度,。

硬件面對的復雜度從某種程度上說是有限的,,也就這么幾個器件,遇到問題順藤摸瓜就行了,,大不了還有定位的必殺技——“替代法”,,每個器件換一遍,大概就能找到問題所在了,。軟件面對的復雜度相對較大,,如果涉及到操作系統(tǒng)甚至還需要hack操作系統(tǒng),如果幾個模塊是由多個工程師開發(fā)的,,模塊之間的耦合度又較高,,定位問題顯得心有余而力不足。

軟件工程師:我的代碼是一顆樹,,我要每天去耕耘

硬件工程師:我的方案是一個平臺,,以后的需求就在這個平臺上面改一下就好了

“平臺化”對雙方來說看起來都是非常不錯的,,面對新的需求只要在上面修改一下就好了,領導尤其喜歡這種理想狀態(tài),,可以作為管理績效的體現(xiàn),。根據(jù)上面說明的復雜度和需求變化的程度而言,軟件的平臺化往往只是個開始,,就像是栽下了一顆樹苗,,后面的路還很長。這其中發(fā)揮比較重要作用的往往是軟件工程師本身,,而不是硬盤里面的那些可能不成熟的代碼,。

軟件工程師:項目節(jié)點要到了,實在不行我先發(fā)布一個beta版本

硬件工程師:項目節(jié)點要到了,,實在不行只能延期了,,爭取后面不再修改

iPhone 每一個機型的升級需要一兩年的時間,而IOS卻似乎每個月都在更新,。對于互聯(lián)網(wǎng)行業(yè)的軟件尤其如此,,似乎每時每刻都在升級,像google的很多產品一直處在beta的版本,,有的甚至生命周期都結束了,,都還掛著beta的標簽。升級成本和開發(fā)周期的不一樣,,使得雙方面對項目時間點的態(tài)度會有所不同,。

軟件工程師:在我那邊還好好的,怎么到你這邊就不行了

硬件工程師:這個現(xiàn)象也是可以解釋的,,可能是米勒電容/寄生電感/xxx的影響

程序運行起來之后一般都是很老實的(不老實會被狗咬死),,CPU 忠實的運行著每一條指令,雖然在它的世界里面只有0和1,,但絕不會出現(xiàn)1+1不等于2的情況,。雖然很有可能是程序員自己沒有考慮到的場景,但他常常會找運行環(huán)境或者操作方面的“借口”,。

硬件系統(tǒng)不一樣,,一樣的布局布線,也有可能因為器件之間的微小差異導致運行的問題,,而器件本身不是完全理想的,,經常會出現(xiàn)1+1=2.1的情況。因此硬件工程師需要保持對這些微小差異的敏感度,,去解釋這個混沌的世界,。

軟件工程師:再安排一次檢視,想想看還有沒有什么場景可能導致問題

硬件工程師:再多做幾個模塊,,確保方案的可靠性

測試不管對軟件和硬件來說都是有效的可靠性保障,,但測試的理念還是有不一樣的地方,。硬件測試對重復要求較高,很多器件可能跑著跑著自己就悲劇了,,比如電解電容在高溫環(huán)境下一段時間后電解液減小的較多,。因此對同一個模塊的反復測試,或者同一種場景的反復測試是很常見的,,極端情況就是所謂“高溫高濕”實驗,,加速器件的老化。

而軟件系統(tǒng)由于其運行的一致性,,更多是考慮測試覆蓋度,,盡量去覆蓋每一種場景,甚至每一行代碼,。測試覆蓋不到的,,就使用人海戰(zhàn)術,通過人每一行代碼的檢視,,去發(fā)現(xiàn)可能的問題,。

結語:

不管SWE和HWE有多少差異,他們都在通過自己努力在一點一點改變著這個世界,。也希望自己能在若干年之后,,還能自豪的稱自己為程序員,,一個略懂硬件的碼農,。

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。