周立功:基於平臺的產品開發戰略

来源:http://www.cnblogs.com/zlgmcun/archive/2017/12/11/8023457.html
-Advertisement-
Play Games

在2017年9月5日深圳舉行的“‘名家芯思維’之2017年物聯網核心技術和應用國際研討會”上,周立功先生做了題為“平臺即服務”的講演。 ...


引言

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

讓我們重新審視成本

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

圖 1  重新審視成本

利潤從哪裡來

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

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

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

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

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

思維差異與收益

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

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

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

圖 2  核心域與非核心域

核心域與非核心域

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

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

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

圖 3  AWorks平臺

平臺制勝

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

  為何不將複雜的技術高度抽象呢?如果實現就能做到讓專業的人做專業的事,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(廣州周立功單片機科技有限公司)之所以始終處於高速發展狀態,首先是改變觀念和思維方式的突破,有了正確的思想和方法,就知道從哪裡入手了,將優秀人才聚焦需求分析,致力於解決“產品如何好賣”問題,通過技術創新致力於解決“如何降低成本”的問題,最終實現利潤最大化。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有的時候,我們要做的事情,就是簡單的重覆某個行為指定的次數。 就比如在這裡重覆輸出100個*號 在這裡,就可以使用一個for迴圈 for(i=0;i<100;i++) //定義一個i 讓它代表次數,重覆的動作就是:輸出*; 重覆次數:100; 重覆後要做的是:輸出*; { Console.Write ...
  • 匿名函數指函數定義體(即代碼塊)本身,使得函數成為所謂的“一等公民”,函數也可以像變數一樣進行賦值定義、傳遞和使用。本文還介紹了函數式編程的各種技巧,如嵌套、遞歸、高階、閉包等,站在函數式編程的頂峰,讓你感嘆“會當凌絕頂,一覽眾山小”! ...
  • Beats 平臺集合了多種單一用途數據採集器。這些採集器安裝後可用作輕量型代理,從成百上千或成千上萬台機器向 Logstash 或 Elasticsearch 發送數據。 一、架構圖 此次試驗基於前幾篇文章,需要先基於前幾篇文章搭建基礎環境。 二、安裝Filebeat 下載並安裝Filebeat 修 ...
  • 學習目標: 1:一但出發,必到達。 2:爭取在半年完成基礎學習。 3:出發目標8K,一到兩年爭取有18K-26K (會不會更高呢?) 學習制度: 五次不完成當日課程退課。 銘哥聯繫:QQ·微信·電話·不回覆黑名單。 班主任發消息:必須回覆表示收到。 必須有:課程筆記·有讓傻瓜都能看得懂的筆記。 課程 ...
  • 1.1 部署LNMP架構說明 1.1.1 LNMP架構內容 01.部署linux系統 02.部署nginx網站服務 03.部署mysql資料庫服務 04.部署php動態解析服務 1.1.2 配置LNMP架構步驟 01.配置Nginx配置文件 02.配置mysql資料庫信息(SQL語句) 03.配置w ...
  • Logstash 是一款強大的數據處理工具,它可以實現數據傳輸,格式處理,格式化輸出,還有強大的插件功能,常用於日誌處理。 一、原理 Input 可以從文件中、存儲中、資料庫中抽取數據,Input有兩種選擇一個是交給Filter進行過濾、修剪。另一個是直接交給Output Filter 能夠動態地轉 ...
  • tomcat企業級Web應用伺服器配置與實戰 環境背景:公司業務經過長期發展,有了很大突破,已經實現盈利,現公司要求加強技術架構應用功能和安全性以及開始向企業應用、移動APP等領域延伸,此時原來開發web服務的php語言已經不適應新的場景,需要上java技術架構,現要求你根據公司需要,實現基於jav ...
  • 當內核或驅動出現僵死bug,導致系統無法正常運行,怎麼找到是哪個函數的位置導致的? 答,通過內核的系統時鐘,因為它是由定時器中斷產生的,每隔一定時間便會觸發一次,所以當CPU一直在某個進程中時,我們便在中斷函數中列印該進程的信息 1.先來回憶下 在之前的第5章內核中斷運行過程:http://www. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...