優(yōu)化固件:按時交付物聯(lián)網(wǎng)設(shè)備的關(guān)鍵
? 管理從物聯(lián)網(wǎng)的產(chǎn)品創(chuàng)意到發(fā)布的許多步驟可能會導(dǎo)致發(fā)貨延遲,企業(yè)可以采用一些技巧和方法幫助優(yōu)化開發(fā)過程。
每個產(chǎn)品經(jīng)理都知道在時間復(fù)雜度上運送設(shè)備所涉及的復(fù)雜性,這導(dǎo)致45%的產(chǎn)品錯過了發(fā)布日期。而協(xié)調(diào)機械工程、電氣工程、制造、測試自動化、營銷等是很困難的。每一項都具有挑戰(zhàn)性,但都變得更加復(fù)雜,因為其中大多數(shù)都不會在同一時間線上前進。
遵循新產(chǎn)品推出(NPI)時間表,同時關(guān)注固件流程,有助于簡化開發(fā)并增加實現(xiàn)開發(fā)目標的可能性。受到開發(fā)工程師的啟發(fā),新產(chǎn)品推出(NPI)是一個有用的指南,其中包含六個里程碑和相關(guān)的時間框架,供旨在盡快發(fā)布易于理解的產(chǎn)品的團隊使用。屬于這一類的團隊可以預(yù)期,從原型到發(fā)布的時間框架大約為12~18個月,具體取決于設(shè)備的復(fù)雜性。
在該模型中,固件開發(fā)中還有其他元素為優(yōu)化新產(chǎn)品推出(NPI)流程鋪平了道路。為什么要關(guān)注固件?該固件動態(tài)支持企業(yè)的整體硬件路線圖,通過確保最佳固件實踐,可以減少每個開發(fā)階段的生產(chǎn)挑戰(zhàn),并按時推出產(chǎn)品。
以下將討論關(guān)鍵里程碑,然后探索四種方法來分析硬件和軟件,以節(jié)省時間并創(chuàng)建一個不太可靠的時間表。
(1)初級階段,12周
初級階段也是最長的階段,工程師主要確定他們到底想要建造什么,其中有很多迭代,可能是3D打印原型或供電氣和固件工程師工作的開發(fā)板。雖然這是自由度最大的階段,但12周的時間并不長,因為在此期間需要做出很多決定,例如需要哪些傳感器以及如何整合一切。目標是提出一個功能性的產(chǎn)品架構(gòu)。
從固件的角度來看,在原型構(gòu)建準備好之前,團隊必須讓軟件達到一個里程碑。這個里程碑要求團隊為每個主要子系統(tǒng)編寫最少的驅(qū)動程序代碼,以在命令行級別驗證每個子系統(tǒng)都在工作,并且產(chǎn)品的軟件能夠與每個子系統(tǒng)進行清晰的通信。
到原型階段結(jié)束時,團隊可能最終會得到一些“像”和“看起來像”的原型。雖然不是最終的,但這些原型可以展示給執(zhí)行團隊和一些客戶,以大致代表最終產(chǎn)品。
接下來的三個階段基本上屬于相同的時間范圍,開發(fā)團隊可以預(yù)期在這三個階段花費大致相同的時間:工程驗證測試(EVT)、設(shè)計驗證測試(DVT)和生產(chǎn)驗證測試(PVT)。對于每個階段,實際構(gòu)建至少需要兩周時間,每個階段之間至少需要三周時間,以便工程師從構(gòu)建中獲取數(shù)據(jù)、進行更改、迭代設(shè)計、解決任何問題,并提交為下一個構(gòu)建設(shè)計。實際上,預(yù)計每個階段之間將花費大約8周的時間。
(2)工程驗證測試階段(8周)
在超越第一階段之后,團隊將擁有少量配置,工程驗證測試是完成工程設(shè)計的時候了。工程驗證測試是準時發(fā)貨的關(guān)鍵階段;成功退出工程驗證測試通常意味著準時發(fā)布。該產(chǎn)品在外觀上不會完美,可能是用一些軟工具制造的,其測試結(jié)果不是最終的,而且產(chǎn)量很低。但工程驗證測試設(shè)備的外觀和感覺應(yīng)該與最終的大致相同。它應(yīng)該有幾個配置來降低程序的主要子系統(tǒng)和一個配置工作的整體成功標準。
在超越工程驗證測試階段之前,固件需要完成初始測試,此時只有最少的固件可以讓用戶嘗試設(shè)備的所有主要功能。它可能不會很好地工作,并且沒有所有的功能,但如果設(shè)備有顯示器,用戶可以查看顯示器并看到一個簡單的用戶界面。如果設(shè)備有音頻,可以播放音頻文件等。
需要記住的是,在進行迭代時,可能必須再次進行測試。每次工程驗證測試設(shè)計迭代至少需要額外的4周,這可能會導(dǎo)致嚴重的延遲。
(3)設(shè)計驗證測試階段,6~8周
在設(shè)計驗證測試階段,團隊不會按照他們想要的速度以生產(chǎn)良率或制造速度運行,但他們將擁有一個最終配置,使其通過所有制造站并通過所有測試。
在工程驗證測試和設(shè)計驗證測試之間,需要確定采用物制造軟件。工程驗證測試是指生產(chǎn)線將或多或少地在高峰期間運行。因此,在設(shè)備上運行的任何軟件都必須由工程驗證測試完成。
(4)生產(chǎn)驗證測試(PVT),6~8周
生產(chǎn)驗證測試階段用于優(yōu)化制造。最終,目標是獲得達到目標所需的產(chǎn)量和速度。
在生產(chǎn)驗證測試中,團隊將為目標進行預(yù)運行,并且需要完成啟動固件。生產(chǎn)驗證測試設(shè)備具有創(chuàng)收能力,有時可以出售給市場,前提是它們沒有重大問題。至關(guān)重要的是,他們擁有將在出售的設(shè)備上運行的固件。
(5)試運行階段,4周以上
在超越以上階段之后,團隊將以理想的速度和產(chǎn)量進行制造。下一個階段是進入試運行——制造足夠多的產(chǎn)品以供發(fā)布。
通常會有短暫的停頓來進行最后的調(diào)整,并確保在工廠中生產(chǎn)正確和足夠的零件。在此期間,將通過全天候運行生產(chǎn)線,并將設(shè)備運送給經(jīng)銷商來積累庫存。
(6)發(fā)布階段
該產(chǎn)品是最終產(chǎn)品,在零售商和經(jīng)銷商處有庫存,可供最終用戶購買。
考慮到時序變量以及設(shè)計和工程的復(fù)雜性,許多產(chǎn)品經(jīng)理都希望優(yōu)化這個過程。但是,由于固件支持的整體硬件路線圖由于開發(fā)階段而異,這里有四種方法可以解開硬件和軟件,以節(jié)省時間并創(chuàng)建可靠的時間線。
- 部署測試驅(qū)動開發(fā):針對軟件測試工具而非真實硬件構(gòu)建軟件和固件。例如,企業(yè)可以使用單元測試框架或的模擬框架來模擬硬件,并針對它進行軟件開發(fā)。這種方法有很多好處:即使硬件尚未準備好,也可以讓開始軟件開發(fā),它可以加快迭代速度,并且創(chuàng)建了一組可用于支持開發(fā)的強大測試。
- 實施第0天更新:旨在準備在拆箱時應(yīng)用于設(shè)備的軟件更新的技術(shù)。第0天的更新改變了時間;它不是在制造階段完成最終固件,而是將整個時間延長到客戶擁有設(shè)備的時間。這種方法可以將軟件開發(fā)計劃延長四個星期或更長時間。
- 使用強大的硬件抽象層(HAL):使用可以輕松移植到新硬件的跨平臺操作系統(tǒng)和硬件抽象層。雖然這是一個多一點的前期工作,但它提供了三個主要好處。首先,它允許您將固件與底層硬件分離,從而更輕松地進行測試驅(qū)動開發(fā)和獨立構(gòu)建。其次,它創(chuàng)造了可選性,這是在供應(yīng)鏈受限的情況下的一個關(guān)鍵特征。如果您需要更換微控制器或其他組件,使用硬件抽象層(HAL)可以輕松地進行更改。最后,它允許開發(fā)人員為未來程序的代碼重用奠定基礎(chǔ)。能夠?qū)⑵錁?gòu)建的軟件從一個程序帶到另一個程序是非常有價值的,并且使用硬件抽象層(HAL)使企業(yè)能夠從同一個代碼庫構(gòu)建多個程序。
- 拆分制造和應(yīng)用固件:在生產(chǎn)線上使用專門構(gòu)建的固件,這種固件很少更改,并且與應(yīng)用固件完全分開。雖然這是非常戰(zhàn)術(shù)性的,但不應(yīng)低估其影響。在校準和其他測試期間,制造固件在裝配線上和設(shè)備上運行。直到生產(chǎn)線上的最后一個測試站才加載應(yīng)用程序固件,讓您在不影響制造固件的情況下迭代應(yīng)用程序固件。將兩者分開可以讓您對用戶界面顯示等內(nèi)容進行更改,而不會帶來制造固件回歸的風險。它還允許您在設(shè)計驗證測試階段鎖定制造后繼續(xù)處理應(yīng)用程序固件。它還可以讓開發(fā)人員節(jié)省代碼空間,因為不會在主應(yīng)用程序中攜帶制造代碼。在這里提出的一個警告是,可能會發(fā)現(xiàn)制造和應(yīng)用固件之間的依賴關(guān)系,并且需要有一種方法來管理依賴關(guān)系,例如傳感器配置。
而準時發(fā)貨是企業(yè)的設(shè)備工程師最關(guān)心的問題。通過部署這些固件工具和技術(shù),可以減少錯過里程碑的可能性,而不會危及產(chǎn)品質(zhì)量和企業(yè)信譽。?