今日世界已經遠遠超越機械裝置與單純邏輯的時代,我們可透過程式設計對一個複雜系統的各個不同層次進行邏輯改造,從裝置的主機板元件和微處理器到企業內及雲端上的系統皆然。這無疑地能讓效率和生產力提升至原本無法達到的境界。但是,凡事都有優缺點,軟體的缺點包括:
- 系統邏輯缺乏一種可確認安全無虞的方法。不僅如此,當發生問題時,通常會因系統已複雜到難以分析而使得問題無法解釋。
- 消費者對軟體的自動更新習以為常,現在更期待功能會不斷改善。但更新有時卻反而造成營運中斷或帶來相容性問題。由於企業營運已經和軟體密不可分,因此一旦更新稍有不慎,就很可能造成嚴重問題。
- 隨著軟體日益普及,企業或使用者的潛在攻擊面將擴大。可惜,有些企業對這類問題既無法掌握,也缺乏適當的監控及防護工具。

不僅如此,當功能被設計成軟體的形式,也意味著擁有裝置的使用者可自行修改功能。任何人,不論是裝置持有人或駭客,都能經由公開的資訊來了解系統的內部運作。