文/姚冬
通過對Android產業開發的簡要分析,總結了Android系統開發中遇到的各種問題,從產品組合、需求管理、建模與重用、協同開發等角度分析和總結出能夠加速Android系統開發並有效提高產品質量的方法和思路。最後在此基礎上,提出了Android系統開發平台的解決方案,並結合整個產品生命周期,對Android系統開發中的各個環節加以表述。
經過多年的發展,Android已不是最初設想的僅僅作為移動設備的平台,它提供了一個跨設備的通用結構,並且開始進入其他數字消費設備領域,諸如平板電腦、移動互聯網設備、Google TV等,甚至有配備觸摸屏的家用固定電話、遙控器、飯店的觸摸屏目錄、醫療設備以及廚房電腦等。
Android用它開放、跨平台的通用軟件架構征服了眾多消費者以及廠商,前景一片光明,但並非一片坦途。無論是與Apple平台,還是 Android同一產業鏈上的不同廠商之間,競爭始終存在。在Android面前人人平等,如何能夠在相同的起跑線下脫穎而出,得到市場和客戶的認可,是擺在我們面前的巨大挑戰。
本文從多個角度出發,分析了Android產品開發中遇到的問題,探討了有效提高產品開發效率的方式和方法,試圖找到一個通用並行之有效的解決方案。由於整個方案貫穿Android產品生命周期,因此稱之為Android系統開發平台,希望能夠對致力於Android產業的廠商或個人有所啟示。
圖1 Android系統層次結構(引自Android官網)
Android系統開發平台
Android希望能夠建立標准化、開放式的軟件平台和操作系統,平台由操作系統、中間件、用戶界面和應用程序組成,已經衍生出一條由手機和其他終端制造商、移動運營商、半導體公司、軟件公司等組成的、完整的產業鏈和生態環境。此舉必將推進更好、更快的創新,為移動用戶提供更多功能強大的應用和服務。如圖1所示。
Android開發不只局限於Android應用的開發,而是涵蓋整個Android產業鏈的所有環節,從系統的定制,到電子設備的研制,甚至可以包含適用於Android平台的各種半導體部件。由於終端和應用最受關注,並且也是最容易被直接接觸到的,因此本文會更多地面向設備制造商以及應用開發商。
Android系統在逐漸穩定和成熟,但版本變化還是相對比較快,開發人員需要適應快速變化的版本;同時,Android用戶與傳統平台的用戶群不同,其消費行為也必然不同,要求廠商對目標客戶群的消費行為作出良好判斷;另外,Android平台上應用開發的盈利模式不夠明確,給產業鏈帶來未知因素。Android帶來機遇的同時也帶來了挑戰,必然不會一帆風順,對於終端研發以及應用開發會提出種種的挑戰和更高的要求。
支持跨平台的應用開發
Android推出至今,歷經了多個版本,同時還存在由Android系統衍生出來的特定廠商的系統,這往往要求設備和應用廠商同時支持多個版本。另外對於應用而言,有時不僅需要支持Android,還需要支持其他系統例如iOS、Windows Mobile等。因而提出跨平台的產品和應用的開發,以支持多種平台、多個版本的需要。
產品准確定位,及時響應市場需求
想想近十年Motorola和Nokia等公司的沉浮,讓人不禁感歎電子設備市場的瞬息萬變。要把握好市場的脈搏,就要求產品准確定位,在對需求加以捕獲的同時,進行良好的分析、排優和管理。
產品的創新性要求高,准確捕獲與把握創意
電子產品更新換代的速度極快,廠商無法依靠品牌本身來黏合客戶,消費者對產品的忠實程度取決於產品質量和功能,這就對產品的創新性提出了更高的要求:要求細致研究客戶消費行為,准確尋找市場需求,及時的捕獲並把握產品創意。
縮短產品上市時間
電子消費市場日新月異,時間就是生命。要想盡量縮短產品從創意產生到推向市場的時間,就帶來了產品的協作開發、功能復用以及測試一體化等需求。
基於上述種種分析,結合Android開發特點,我個人認為有必要建設Android系統開發平台。下文試圖從產品組合管理、需求管理、模型驅動開發以及協作開發等方面入手對其進行闡述和分析。限於篇幅和個人研究水平的局限,不求事無巨細面面俱到,只是重點介紹個人心得體會,希望對大家能夠有所啟示。
通過產品組合管理准確產品定位
變化的市場對所有廠商都提出了挑戰,無論是對於終端制造商還是應用開發商而言,如何保持自身的競爭力是面臨的最大痛點之一。這就要求企業在不斷發掘新創意的同時,提升生產及開發的效率,建立區別於競爭對手的競爭優勢。
對於Android而言,即使是在同一個平台、同一生態環境下的不同廠商之間,也是合作與競爭同在的關系,如何良好地適應競爭激烈的生態環境,就需要依賴對自身產品的組合規劃、對產品特性的差分定位、對競爭對手的優勢分析。這就引出了產品組合管理的概念。
產品組合管理通過對市場環境的分析,收集商機,捕獲並分析需求,根據對競爭對手以及自身企業及產品特性,制定產品組合策略,以期平衡整個產品開發投資組合中的風險和回報,最大限度地提高市場認知和投資收益。
產品組合能夠從四個方面創造企業價值:價值最大化、均衡、戰略一致性、合理的產品分布。價值最大化允許主動管理組合中的項目,以便從業務目標的角度最大限度地提高組合價值;均衡的產品組合能夠防止在決定項目規模時出錯,以防出現項目執行時間過長或者項目的業務風險過高等問題;為了實現戰略一致性,目標產品組合應以支持公司實現主要業務目標為標准;應確保提供合理數量的資源來支持已經確定的產品項目。
產品特性組合
電子產品非常強調特性,例如是否具備WiFi、有沒有拍照功能等。產品的特性講究人無我有、人有我新。這要求我們一方面加以創新,去產生吸引消費者購買行為的新特性;另一方面也要求我們對產品的種種特性,根據不同的市場定位加以組合,因為並非一個大而全的產品就可以滿足所有人的需要。產品的特性大致可以分成下面三種類型。
功能型特性,例如拍照功能、上網功能。
性能型特性,例如CPU速率、內存大小、拍照的像素等。
合規型特性,例如不同國家的入網要求。
各廠商應對不同類型的特性,根據相應消費人群使用習慣,以及不同市場的合規型要求,進行靈活合理的組合,從而得到適應不同的市場定位的產品組合。
可行性分析
一款產品的推出,除了要具備相應的特性以外,也要對其可行性進行分析。衡量的因素有眾多維度,例如技術可行性、商業可行性、市場潛力、財務回報、產品復雜性以及戰略一致性。
每個企業都有定義的企業戰略,對自身及其產品都有相應的定位,產品要求與企業戰略目標保持一致,對實現企業戰略目標提供幫助和支持。同時產品的投入要求有匹配的產出,成本與收益一定要達到良好的比率,並且要求在收益與風險之間達到平衡。產品技術方面要評估現有技術與預期目標之間的差距、實現的技術復雜度與產品總體架構是否一致。而風險的管控同樣是對產品評估的重要因素之一,包括質量風險、進度風險、組織風險、技術風險等。
不同的維度,在不同的市場環境下,面向不同的目標人群,其優先級以及評判標准是不盡相同的,這就需要引入靈活的評判模型,通過產品或特性的兩兩比對得到打分模型,並針對不同的判決因素進行加權,綜合評比得到最終的判決。
資源配置與管理
產品組合管理是聯系戰略決策和戰術執行的紐帶,產品開發是商業戰略的表現形式,企業實現其戰略的重要途徑就是通過恰當的展品開發,產品組合管理要求在企業戰略與產品開發之間建立橋梁。
企業往往會同時有開發多款產品的需求,而各種資源總是有限的,產品組合管理同時研究資源的分配,幫助企業合理有效的配置資源。資源管理要求能夠對產品進行排優,從而優化資源投入與產出,實現產品價值最大化。錯誤的產品規劃將在運行資源、定位、宣傳、銷售和支持方面給企業帶來沉重壓力,並行產品組合的增多會加劇運行的復雜性,必須在產品開發項目的數量與公司自身能力之間找到最佳均衡點。基於產品開發能力來調整產品組合規劃可以幫助有效提高整個產品開發項目的成效。
通過需求管理和重用縮短產品上市時間
需求的捕獲
需求管理首先是對需求和靈感的捕獲,面對復雜多變的市場環境,要求准確地捕捉和發掘Android用戶的真實需求,捕獲業務人員、設計人員的靈感,從而避免因需求的遺漏或是靈感的丟失,錯誤或模糊的需求所造成產品的延遲或取消。對需求的描述通常通過文字與模型並存的方式進行,文字的優勢在於描述具體、精確的事務,例如數字、指標等;而模型的優點在於無歧義、規范化。結合兩者優勢可以幫助業務人員或產品經理准確地把握和闡述用戶需求。
需求的審批
需求需要經過排優、審批的過程,並非所有需求和靈感都切實可行,一個好的想法同時也需要恰當的市場環境。快速變化的市場環境要求簡潔靈活的需求批復、實現、追蹤流程,保持對市場的最高靈敏度,避免笨重的管理流程帶來滯後。另外,不同的需求是針對不同的客戶群,其定位和時效性都不同,這就需要通過不同的產品加以實現,這一點至關重要,可以通過前面論述過的產品組合管理得以實現。
需求的復用
在Android的開發過程中,有效的需求復用可以很好地縮短整個軟件開發周期。通過需求管理流程,需求得以在不同的產品中實現復用,並且很好地支持設計開發的復用流程。產品線工程是Android產品系列開發的重要方法,需求復用的管理是支