通過對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產品系列開發的重要方法,需求復用的管理是支持產品線工程的必要手段。
需求的復用可以針對不同的層面。項目一級需求復用,是將業務規則、數據元素、用戶界面等定義為單一的實例且通過需求開發過程為項目成員共享和復用;組織一級的需求復用,是當團隊在多個項目協作時,信息可以通過共享的需求庫進行重用。這樣的需求庫可以被組織來為不同產品定義特性。
圖2 Android系統開發平臺
通過跨平臺應用開發減少重復工作量
自推出到現在,Android歷經多個版本, 前期的系統版本無論是從功能還是穩定性都差強人意,直到1.6版本才有了第一個穩定且功能強大的系統版本。除Android自身這么多版本以外,還存在由Android系統衍生出來的特定廠商的系統,存在很多廠商基于Android某一個穩定版本的基礎加以定制,得到的操作系統,例如中移動的OPhone系統、聯想的樂OS等。
開發廠商,尤其是應用開發商,有時需要同時支持多個版本的多種系統,多線作戰對于開發商而言是極大的挑戰?缙脚_的應用開發可以幫助開發商良好地應對多平臺多版本的應用開發支持,從而提高開發效率,減少重復的開發工作。
跨平臺開發的實現需要借助工具的支持, 對工具而言要求包括兩個內容。
首先,工具需要支持代碼生成并通過編譯后,可以運行在不同的系統和平臺上,并且能夠支持跨平臺的部署和調試。通過跨平臺的編譯、部署和調試,極大地幫助開發人員提升開發效率,并且同時能夠保障應用開發的質量。
其次, 由于不同的系統和平臺, 甚至Android不同的版本之間,其API調用都有所不同,如果針對每一個版本都需要調整代碼,那么將對后續的維護和升級都造成嚴重的困難。因此,跨平臺的開發要求工具能夠支持一套設計、一套實現能夠應對多種系統和平臺,從而減輕重復而枯燥的開發工作。而能夠實現這一要求的最佳選擇就是模型驅動開發。模型驅動開發工具可以根據不同的目標環境,基于相應的框架和模型,生成適用于特定目標環境的代碼。這對于手機開發這樣的嵌入式系統開發而言是至關重要的,尤其是當需要適應不同的目標硬件、系統環境時,模型驅動開發由此極大地提高了軟件的復用度,使相同的設計和功能模塊,可以方便快捷地應用部署到不同的產品設備中。同時由于是基于同一套設計和實現生成的代碼,其功能、質量以及穩定性都可以得到良好的保障,從而極大地減輕開發人員的重復工作量,讓他們從其中脫身出來,將精力放在更富有創造性和挑戰性的設計與開發工作中。
結束語
Android提供的標準化、開放的軟件平臺和操作系統是史無前例的創舉,其商業價值也逐漸凸顯,應用軟件數量迅速突破了十萬大關。一片贊譽中,Android開發的道路卻并非總是坦途,尤其是對Android產業鏈中的不同廠商而言,無論是設備制造商,或是應用開發商,市場競爭始終存在,優勝劣汰是亙古不變的,如何在眾多的同行業競爭對手中突破重圍,脫穎而出,與每一個廠商切身利益緊密相關。
以上通過對Android系統開發的簡單分析, 提出Android系統開發平臺的概念,從產品組合、需求管理、建模與重用、協同開發等角度分析和總結,提供一些能夠加速Android系統開發,并有效提高產品質量的方法和思路。
參考資料
《項目經理到執行官修煉之道——圖解組合管理》寧德軍,朱華宇,清華出版社 ISBN 978-7- 302-23638-2。
《實時設計模式》(美)Bruce Powel Douglass 著,麥中凡 ,陶偉等譯, 北京航空航天大學出版社 ISBN 7-81077-421-2。
作者姚冬,北京郵電大學軟件工程在職研究生,F就職于某知名跨國企業,關注復雜系統開發,以及軟件過程改進等方面的研究。擁有12年的系統軟件開發和軟件工程實踐經歷。