基于平臺的產品開發戰略

2017-12-13

產品的BOM(物料清單)成本很低,而毛利又很高,為何四成上市公司的年利潤卻不夠北上深廣的一套房?房子到底被誰買走了,這個問題值得我們反思!

讓我們重新審視成本

包括開發者在內的很多管理者,做產品算的只是BOM成本,甚至連一個MCU相差一毛錢都嫌貴,卻不關注未知的成本。每當問到產品什么時候上市時,普遍的回答都是“差不多了”,為何會出現這樣的問題呢?而事實上,那些未知的成本就是利潤流失的根源(如圖1所示)。


圖 1重新審視成本

利潤從哪里來   

早期創業時,只要抓住一個機會,多參加展會,多做廣告,成功的概率就很大。在互聯網時代,突然發現入口多了,聚焦用戶的難度越來越大。當產品面臨競爭時,你會發現“沒有最低只有更低”。而且現在已經沒有互聯網公司了,攜程變成了旅行社,新浪變成了新媒體……,機會驅動、粗放經營的時代已經過去了。

Apple之所以成為全球最賺錢的手機公司,關鍵在于產品的性能超越了用戶的預期,且因為大量可重用的核心領域知識,綜合成本做到了極致。Yourdon和Constantine在《結構化設計》一書中,將經濟學作為軟件設計的底層驅動力,軟件設計應該致力于降低整體成本。人們發現軟件的維護成本遠遠高于它的初始成本,因為理解現有代碼需要花費時間,而且容易出錯。同時改動之后,還要進行測試和部署。

更多的時候,程序員不是在編碼,而是在閱讀程序。由于閱讀程序需要從細節和概念上理解,因此修改程序的投入會遠遠大于最初編程的投入。基于這樣的共識,讓我們操心的一系列事情,需要不斷地思考和總結,使之形成可以重用的模式,這就是方法論的起源。

顯然,作為管理者必須深刻認識利潤模型,即利潤=需求-設計。需求是致力于解決“產品如何好賣”的問題,設計是致力于解決“如何降低成本”的問題。由此可見,要么就是需求沒有抓準,要么就是管理成本太高。

其中一個極其重要的措施需要逐年對缺乏創意的員工進行末位淘汰,其實企業中很多平庸的人就是吞沒利潤的成本。比如,很多開發者只會抄DEMO,卻不會根據實際的需求做出性價比更好的設計,即便這樣的具有10年工作經驗的人又有什么價值呢?

思維差異與收益 

 通過財務數據分析,由于早期決策失誤和缺乏科學的軟硬件工程方法,我們開發了一些周期長、技術難度大且回報率極低的產品,不僅軟件難以重用,而且擴展和維護難度很大,從而導致開發成本居高不下。

 雖然大多數開發者都很勤奮,但其奮斗目標不是企業和個人收益最大化,而是以學習基礎技術為樂趣,極少與市場人員和用戶交流,不注重提升個人挖掘用戶需求的創造力,而是將精力用錯了地方,這是很多人一輩子也沒有認識到的深刻問題。只是表面地嘆息自己懷才不遇,甚至將自己失敗的責任推給他人。由此可見,人與人之間的差別不在于知識和經驗,而是思維方面的差異決定了每個人的未來。

從軟硬件開發來看,軟件工程、電子工程與計算機科學、電子科學技術學是完全不同的兩個領域的知識,其主要區別在于人,因為軟硬件開發是以人為中心的過程。如果考慮人的因素,工程技術更接近經濟學而非科學。顯然,如果我們不改變思維方式,則很難開發出既好賣且成本低的產品。


圖 2核心域與非核心域

核心域與非核心域 

其實一個軟件系統封裝了若干領域的知識,其中一個領域知識代表了系統的核心競爭力,這個領域被稱為“核心域”,其它領域稱為“非核心域”。雖然更通俗的說法是“業務”和“技術”,但使用“核心域”和“非核心域”更嚴謹(如圖2)。

 非核心域就是別人的領域,比如,底層驅動、操作系統和組件,即便你有一些優勢,也是暫時的,競爭對手也能通過其它渠道獲得。雖然非核心域的改進是必要的,但不充分,還是要在核心域上深入挖掘,讓競爭對手無法輕易從第三方獲得。因為在核心域上深入挖掘,達到基于核心域的復用,這是獲得和保持競爭力的根本手段。

要達到基于核心域的復用,有必要將核心域和非核心域分開考慮。因為過早地將各個領域的知識混雜會增加不必要的負擔,從而導致開發人員騰不出腦力思考核心域中更深刻的問題。由于待解決的問題的規模一旦變大,而人腦的容量和運算能力有限,因此必須分而治之,因為核心域與非核心域的知識都是獨立的。


圖 3AWorks平臺

平臺制勝 

 代碼的優劣不僅直接決定了軟件的質量,還將直接影響軟件成本。軟件成本是由開發成本和維護成本組成的,而維護成本卻遠高于開發成本,蠻力開發的現象比比皆是,大量來之不易的資金被無聲無息地吞沒,整個社會的資源浪費嚴重。

為何不將復雜的技術高度抽象呢?如果實現就能做到讓專業的人做專業的事,AWorks就是在這樣的背景下誕生的。由于其中融入了更多的軟件工程技術方法,因此就能做到將程序員徹底從非核心域中釋放出來,聚焦于核心競爭力。

 追求代碼復用和跨平臺,這是開發者夢寐以求的奮斗目標,但現實很殘酷,幾乎無法成為現實。原因何在?MCU有M0、M4、M7、ARM9、A5、A7、A8內核、DSP......有些項目不需要操作系統,有些項目可能選擇FreeRTOS或μC/OS-II或sysBIOS,另一些項目可能選擇Linux或Windows,因為不同的半導體公司支持的平臺不一樣。 

 基于此,我們不妨做一個大膽的假設。雖然PCF85063、RX8025T和DS1302來自不同的半導體的公司,但其共性都是RTC實時日歷時鐘芯片,即可高度抽象共用相同的驅動接口,其差異性用特殊的驅動接口應對。雖然FreeRTOS或μC/OS-II或sysBIOS、Linux、Windows各不相同,但它們都是OS,多線程、信號量、消息、郵箱、隊列等是其特有的共性,顯然QT和emWin同樣可以高度抽象為GUI框架。也就是說,不管什么MCU,也不管是否使用操作系統(OS),只要修改相應的頭文件,即可復用應用代碼,這就是AWorks平臺的雛形(如圖3)。

由于AWorks制定了統一的接口規范,并對各種微處理器內置的功能部件與外圍器件進行了高度的抽象,因此無論你選用的是ARM還是DSP,通過“按需定制”的外設驅動軟件和相關組件,以高度復用的軟件設計原則和只針對接口編程的思想為前提,則應用軟件均可實現“一次編程、終生使用和跨平臺”。基于此,進一步擴大了AWorks使用范圍,又發展出了代碼更小的AMetal,AWorks能給你帶來的最大價值就是不需要重新發明輪子。

由此可見,無論你選擇什么芯片和任何OS,比如,Linux和其它任何RTOS,只要AWorks支持它,就可以在目標板上實現跨平臺運行。因為無論什么OS,它只是AWorks的一個組件,針對不同的OS,AWorks都會提供相應的適配器,那么所有的組件都可以根據需要更換。

結論

ZLG(廣州周立功單片機科技有限公司)之所以始終處于高速發展狀態,首先是改變觀念和思維方式的突破,有了正確的思想和方法,就知道從哪里入手了,將優秀人才聚焦需求分析,致力于解決“產品如何好賣”問題,通過技術創新致力于解決“如何降低成本”的問題,最終實現利潤最大化。

六月丁香手机影院