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