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

尋尋軟件/硬件工程師的思維不同點(diǎn)

2017-02-09
關(guān)鍵詞: 軟件 硬件 工程師 電感

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

軟件工程師:我今天要完成xx行代碼的重構(gòu)

硬件工程師:這幾個(gè)器件能不改就不改,,實(shí)在不行用獨(dú)家供貨

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

硬件不一樣,有時(shí)候動(dòng)一根線,,或者layout的時(shí)候動(dòng)了一點(diǎn)位置都可能導(dǎo)致信號(hào)產(chǎn)生比較大的噪聲或者異常,。每一個(gè)器件的修改也是慎之又慎,需要一系列替代測(cè)試和可靠性測(cè)試,,即使是在風(fēng)險(xiǎn)可控的條件下,,也要考慮投入產(chǎn)出比。

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

硬件工程師:有一個(gè)新的需求,,我們看能不能在原來(lái)的方案上改一改

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

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

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

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

遇到問(wèn)題的時(shí)候,,硬件工程師比較傾向于“根因分析”,,所有現(xiàn)象必須要有個(gè)解釋,,這樣的話可以減小問(wèn)題重犯的概率。如果問(wèn)題不徹底解決,,往往代價(jià)是很高的,。軟件工程師往往覺(jué)得問(wèn)題解決了就是OK的,后面還有一堆的需求和變化需要處理,,有時(shí)間再去分析一下,。這里不一定是責(zé)任心的問(wèn)題,一個(gè)原因是因?yàn)樵俅斡龅絾?wèn)題的代價(jià)不一樣,,另外有時(shí)候是因?yàn)樾枰芾淼膹?fù)雜度,。

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

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

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

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

軟件工程師:項(xiàng)目節(jié)點(diǎn)要到了,,實(shí)在不行我先發(fā)布一個(gè)beta版本

硬件工程師:項(xiàng)目節(jié)點(diǎn)要到了,,實(shí)在不行只能延期了,爭(zhēng)取后面不再修改

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

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

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

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

硬件系統(tǒng)不一樣,一樣的布局布線,,也有可能因?yàn)槠骷g的微小差異導(dǎo)致運(yùn)行的問(wèn)題,,而器件本身不是完全理想的,經(jīng)常會(huì)出現(xiàn)1+1=2.1的情況,。因此硬件工程師需要保持對(duì)這些微小差異的敏感度,,去解釋這個(gè)混沌的世界。

軟件工程師:再安排一次檢視,,想想看還有沒(méi)有什么場(chǎng)景可能導(dǎo)致問(wèn)題

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

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

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

結(jié)語(yǔ):

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

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