軟件開發人員有時會需要回顧他們的成功和失敗,並製定計劃以改善他們的整體開發過程。當我停下來觀察嵌入式係統行業的變化時,我認為2021年及以後的每個開發人員都需要具備特定的技能。
技能1 –集成的自動化測試
每個開發人員需要的 要技能是編寫自動化測試的能力。傳統上,嵌入式開發人員並不是 善於利用測試驅動的開發或持續集成(CI)技術。這種缺點使嵌入式軟件開發人員處於不利地位,迫使我們花費更多的時間進行手動測試,或者更糟的是對我們的軟件進行抽查。結果是,我們的手指交叉並默默祈禱,以至於事情不會再回到我們身邊,以此來推出產品。
自動化的測試工具,線束和CI / CD平台已經發展到開發人員需要在開發過程中利用它們的程度。價值和結果可能是巨大的。例如, 近我不得不重新設計 個代碼模塊,在那裏我可能撕毀了API內部代碼的70%。後來我想起了手動運行測試以確保 切正常的恐懼,因為毫無疑問至少要花 天的時間進行驗證。但是,我已經仔細開發並維護了該模塊的測試,包括在拆解期間。我的自動化測試能夠在不到1秒的時間內驗證 切都很好!(它也發現了我的 個小疏忽)。
技能2 –機器學習
圍繞機器學習(ML)和人工智能(AI)進行了大量宣傳,尤其是對於嵌入式軟件解決方案。今年,我經常覺得這是 種技術解決方案,可以解決問題。但是,事實是,在我們每個人還未意識到之前,機器學習將成為幾乎每個嵌入式係統中的核心組件。這些技術太強大了,並且發展速度很快,因此推斷可以在 小和 低能耗的設備上進行。
機器學習可能不是今天可以應用於讀者正在開發的產品的技術,但這並不意味著應該對它們視而不見。為機器學習打下堅實的基礎將比在繼續學習技術的同時等待和利用項目更有效。
技能3 –安全
如今,正在開發用於IoT的設備太多,以至於開發人員不必擔心安全性。保護嵌入式產品所需的技能組無疑是專門的,並且通常很難找到和訪問。沒有安全產品對公司的潛在負麵影響可能是災難性的。由於安全漏洞,沒有人願意成為頭版新聞。此外,學習安全技能可以幫助開發人員對其雇主產生更大的價值
安全技能肯定是永遠需要發展的東西。Arm的平台安全體係結構(PSA)概述了安全 佳實踐。此外, 些芯片提供商已經開始自行構建安全軟件開發工具包(SDK),以減輕開發人員和公司的安全負擔。了解這些功能並開發所需的技能在將來至關重要。
技能4 – RTOS應用程序設計
設計和實施基於RTOS的應用程序所需的技能是與我的內心特別接近的 項技能。每年我都會舉辦多個RTOS研討會,並在會議上圍繞RTOS應用程序進行演講,並且發現開發人員很難使用它們來設計和實現應用程序。考慮到當今應用程序的複雜性,RTOS已成為許多係統中的核心組件。了解設計模式, 佳實踐和技術對於及時成功啟動產品至關重要。
技能5 –調試
調試是開發人員並不陌生的 項技能。開發人員應盡其所能避免在軟件中添加錯誤。就是說,當我與整個行業的開發人員交談時,開發人員平均將40%的時間用於調試活動並不少見。任何開發人員或團隊都可以實現的 重要的生產力提高之 就是減少他們花費在調試上的時間。即使提高10%,也意味著每個開發人員在 年中增加了 個額外的工作月!(這可能需要5周的時間,但是我會花額外的 周作為假期來做得不錯的工作)。
任何想要提高生產率或減少預算和縮短上市時間的人,都應該從 開始就可以幫助防止錯誤的活動開始,然後著重於可以減少發現錯誤所需時間的技術。這可能涉及多種技術,包括跟蹤,集成的CI / CD管道,靜態分析和代碼度量監視等等。
結論
嵌入式開發人員所需的技能在不斷變化和發展。開發人員隻需要了解C編程語言和控製寄存器中的控製位的日子已經 去不複返了。當今的嵌入式軟件工程師需要能夠滲透到計算機科學各個前沿 域的技能。這看起來確實令人生畏,但這是使我們的工作充滿激情並不斷迫使我們學習的特征之 。今天,我們研究了 些我通常會認為缺乏業務和開發人員技能的技能,這些技能對於未來的成功至關重要。