每個開發團隊都需要決定是從頭開始設計和構建軟件還是購買軟件組件,推出一款成功的產品也需要考慮更多的因素才能成功、高效并最大限度地提高生產力。那么,一個嵌入式開發團隊應該如何決定是否應該構建或購買全部或部分軟件組件呢?
步驟 1 – 確定可用資源
第一步是確定項目團隊當前可用的資源。盤點將使團隊了解有多少工程師可用、分配的完成項目的時間(很少有足夠的時間)、總體項目預算,甚至可能是啟動資金。團隊甚至可以考慮確定可能影響開發進度的現成工具。
步驟 2 – 根據復雜性對組件進行分類
開發基本軟件架構將為開發團隊提供有關設備復雜性和所需主要軟件組件的總體概念。例如,由于需要圖形驅動程序、通信驅動程序、圖像設計接口和消息傳遞接口,識別需要具有觸摸屏的圖形用戶界面無疑會在復雜性列表中排名靠前。系統所需的每個組件都可以按從 1 到 10 的值排列,其中 10 是最復雜的軟件組件。具有高復雜性排名的組件是購買的候選者。
步驟 3 – 審查團隊的技能組合
一旦生成了具有復雜性排名的組件列表,就可以根據系統所需的組件評估可用團隊成員的技能。每個嵌入式開發團隊成員都可以根據專業知識和以前開發每個組件的經驗進行排名。除了利用過去的經驗來準確了解開發時間之外,以這種方式對技能進行排名可以讓團隊識別技能差距。
步驟 4 – 計算盈虧平衡點
有了基本的系統理解以及開發團隊現有的能力,現在是時候計算構建軟件與購買軟件的盈虧平衡點了。計算盈虧平衡點可能很棘手,因為有許多因素在起作用。典型的故障點來自對開發時間、固件維護甚至組件復雜性的樂觀估計。
主要的業務權衡是上市時間和總體成本。構建一個組件最終可能會更便宜,但開發時間卻是原來的四倍。開發人員需要確定固件組件的可能供應商,了解他們的保修、成本、交付日期以及可能出現的任何潛在集成問題。然后可以將購買的組件成本與估計的構建成本進行比較,并且在與時間進行比較時,可以確定盈虧平衡點。
步驟 5 – 確定構建與購買的投資回報率
歸根結底,嵌入式開發團隊需要提供一個解決方案,試圖優化公司在產品中的投資回報率 (ROI)。有很多方法可以查看這一點。首先,人們可以著眼于盡量減少成本,或者其次,最大限度地提高銷售額。在產品生命周期內,與購買的軟件相關的許可費是否比構建成本更高?也許最初的構建成本高于購買軟件,但由于數量或產品路線圖,投資于工程師的技能組合以便可以在內部完成工作是有意義的。有許多因素需要考慮,雖然許多人將投資回報率視為嚴格的金錢回報,但做出正確決定可能需要更廣泛的鋪位。
步驟 6 – 做出決定
在某些時候,開發團隊需要做出決定。 到目前為止,我們已經討論了一些步驟,這些步驟應該為該過程提供一些工程或科學思想,但有時會根據直覺做出決定。 其他時候會做出決定,因為編寫我們自己的RTOS會很酷。嘗試使用受控的決策過程。
結論
做出購買固件組件的決定可能是一個艱難的決定。在某些情況下,結果可能是延遲交付,甚至增加開發成本。遵循此處列出的步驟可以幫助嵌入式開發人員將決策過程轉變為一個更加可控和深思熟慮的過程,通過考慮更大的圖景而不僅僅是短期現金流。