論Android產(chǎn)品高效開發(fā)之路

2011-11-02 15:28:30來源:《程序員》作者:姚冬

通過對(duì)Android產(chǎn)業(yè)開發(fā)的簡要分析,總結(jié)了Android系統(tǒng)開發(fā)中遇到的各種問題,從產(chǎn)品組合、需求管理、建模與重用、協(xié)同開發(fā)等角度分析和總結(jié)出能夠加速Android系統(tǒng)開發(fā)并有效提高產(chǎn)品質(zhì)量的方法和思路。最后在此基礎(chǔ)

通過對(duì)Android產(chǎn)業(yè)開發(fā)的簡要分析,總結(jié)了Android系統(tǒng)開發(fā)中遇到的各種問題,從產(chǎn)品組合、需求管理、建模與重用、協(xié)同開發(fā)等角度分析和總結(jié)出能夠加速Android系統(tǒng)開發(fā)并有效提高產(chǎn)品質(zhì)量的方法和思路。最后在此基礎(chǔ)上,提出了Android系統(tǒng)開發(fā)平臺(tái)的解決方案,并結(jié)合整個(gè)產(chǎn)品生命周期,對(duì)Android系統(tǒng)開發(fā)中的各個(gè)環(huán)節(jié)加以表述。

經(jīng)過多年的發(fā)展,Android已不是最初設(shè)想的僅僅作為移動(dòng)設(shè)備的平臺(tái),它提供了一個(gè)跨設(shè)備的通用結(jié)構(gòu),并且開始進(jìn)入其他數(shù)字消費(fèi)設(shè)備領(lǐng)域,諸如平板電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備、Google TV等,甚至有配備觸摸屏的家用固定電話、遙控器、飯店的觸摸屏目錄、醫(yī)療設(shè)備以及廚房電腦等。

Android用它開放、跨平臺(tái)的通用軟件架構(gòu)征服了眾多消費(fèi)者以及廠商,前景一片光明,但并非一片坦途。無論是與Apple平臺(tái),還是Android同一產(chǎn)業(yè)鏈上的不同廠商之間,競爭始終存在。在Android面前人人平等,如何能夠在相同的起跑線下脫穎而出,得到市場和客戶的認(rèn)可,是擺在我們面前的巨大挑戰(zhàn)。

本文從多個(gè)角度出發(fā),分析了Android產(chǎn)品開發(fā)中遇到的問題,探討了有效提高產(chǎn)品開發(fā)效率的方式和方法,試圖找到一個(gè)通用并行之有效的解決方案。由于整個(gè)方案貫穿Android產(chǎn)品生命周期,因此稱之為Android系統(tǒng)開發(fā)平臺(tái),希望能夠?qū)χ铝τ贏ndroid產(chǎn)業(yè)的廠商或個(gè)人有所啟示。

\
圖1 Android系統(tǒng)層次結(jié)構(gòu)(引自Android官網(wǎng))

Android系統(tǒng)開發(fā)平臺(tái)

Android希望能夠建立標(biāo)準(zhǔn)化、開放式的軟件平臺(tái)和操作系統(tǒng),平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用程序組成,已經(jīng)衍生出一條由手機(jī)和其他終端制造商、移動(dòng)運(yùn)營商、半導(dǎo)體公司、軟件公司等組成的、完整的產(chǎn)業(yè)鏈和生態(tài)環(huán)境。此舉必將推進(jìn)更好、更快的創(chuàng)新,為移動(dòng)用戶提供更多功能強(qiáng)大的應(yīng)用和服務(wù)。如圖 1所示。

Android開發(fā)不只局限于Android應(yīng)用的開發(fā),而是涵蓋整個(gè)Android產(chǎn)業(yè)鏈的所有環(huán)節(jié),從系統(tǒng)的定制,到電子設(shè)備的研制,甚至可以包含適用于Android平臺(tái)的各種半導(dǎo)體部件。由于終端和應(yīng)用最受關(guān)注,并且也是最容易被直接接觸到的,因此本文會(huì)更多地面向設(shè)備制造商以及應(yīng)用開發(fā)商。

Android系統(tǒng)在逐漸穩(wěn)定和成熟,但版本變化還是相對(duì)比較快,開發(fā)人員需要適應(yīng)快速變化的版本;同時(shí),Android用戶與傳統(tǒng)平臺(tái)的用戶群不同,其消費(fèi)行為也必然不同,要求廠商對(duì)目標(biāo)客戶群的消費(fèi)行為作出良好判斷;另外,Android平臺(tái)上應(yīng)用開發(fā)的盈利模式不夠明確,給產(chǎn)業(yè)鏈帶來未知因素。 Android帶來機(jī)遇的同時(shí)也帶來了挑戰(zhàn),必然不會(huì)一帆風(fēng)順,對(duì)于終端研發(fā)以及應(yīng)用開發(fā)會(huì)提出種種的挑戰(zhàn)和更高的要求。

支持跨平臺(tái)的應(yīng)用開發(fā)

Android推出至今,歷經(jīng)了多個(gè)版本,同時(shí)還存在由Android系統(tǒng)衍生出來的特定廠商的系統(tǒng),這往往要求設(shè)備和應(yīng)用廠商同時(shí)支持多個(gè)版本。另外對(duì)于應(yīng)用而言,有時(shí)不僅需要支持Android,還需要支持其他系統(tǒng)例如iOS、Windows Mobile等。因而提出跨平臺(tái)的產(chǎn)品和應(yīng)用的開發(fā),以支持多種平臺(tái)、多個(gè)版本的需要。

產(chǎn)品準(zhǔn)確定位,及時(shí)響應(yīng)市場需求

想想近十年Motorola和Nokia等公司的沉浮,讓人不禁感嘆電子設(shè)備市場的瞬息萬變。要把握好市場的脈搏,就要求產(chǎn)品準(zhǔn)確定位,在對(duì)需求加以捕獲的同時(shí),進(jìn)行良好的分析、排優(yōu)和管理。

產(chǎn)品的創(chuàng)新性要求高,準(zhǔn)確捕獲與把握創(chuàng)意

電子產(chǎn)品更新?lián)Q代的速度極快,廠商無法依靠品牌本身來黏合客戶,消費(fèi)者對(duì)產(chǎn)品的忠實(shí)程度取決于產(chǎn)品質(zhì)量和功能,這就對(duì)產(chǎn)品的創(chuàng)新性提出了更高的要求:要求細(xì)致研究客戶消費(fèi)行為,準(zhǔn)確尋找市場需求,及時(shí)的捕獲并把握產(chǎn)品創(chuàng)意。

縮短產(chǎn)品上市時(shí)間

電子消費(fèi)市場日新月異,時(shí)間就是生命。要想盡量縮短產(chǎn)品從創(chuàng)意產(chǎn)生到推向市場的時(shí)間,就帶來了產(chǎn)品的協(xié)作開發(fā)、功能復(fù)用以及測試一體化等需求。

基于上述種種分析,結(jié)合Android開發(fā)特點(diǎn),我個(gè)人認(rèn)為有必要建設(shè)Android系統(tǒng)開發(fā)平臺(tái)。下文試圖從產(chǎn)品組合管理、需求管理、模型驅(qū)動(dòng)開發(fā)以及協(xié)作開發(fā)等方面入手對(duì)其進(jìn)行闡述和分析。限于篇幅和個(gè)人研究水平的局限,不求事無巨細(xì)面面俱到,只是重點(diǎn)介紹個(gè)人心得體會(huì),希望對(duì)大家能夠有所啟示。

通過產(chǎn)品組合管理準(zhǔn)確產(chǎn)品定位

變化的市場對(duì)所有廠商都提出了挑戰(zhàn),無論是對(duì)于終端制造商還是應(yīng)用開發(fā)商而言,如何保持自身的競爭力是面臨的最大痛點(diǎn)之一。這就要求企業(yè)在不斷發(fā)掘新創(chuàng)意的同時(shí),提升生產(chǎn)及開發(fā)的效率,建立區(qū)別于競爭對(duì)手的競爭優(yōu)勢。

對(duì)于Android而言,即使是在同一個(gè)平臺(tái)、同一生態(tài)環(huán)境下的不同廠商之間,也是合作與競爭同在的關(guān)系,如何良好地適應(yīng)競爭激烈的生態(tài)環(huán)境,就需要依賴對(duì)自身產(chǎn)品的組合規(guī)劃、對(duì)產(chǎn)品特性的差分定位、對(duì)競爭對(duì)手的優(yōu)勢分析。這就引出了產(chǎn)品組合管理的概念。

產(chǎn)品組合管理通過對(duì)市場環(huán)境的分析,收集商機(jī),捕獲并分析需求,根據(jù)對(duì)競爭對(duì)手以及自身企業(yè)及產(chǎn)品特性,制定產(chǎn)品組合策略,以期平衡整個(gè)產(chǎn)品開發(fā)投資組合中的風(fēng)險(xiǎn)和回報(bào),最大限度地提高市場認(rèn)知和投資收益。

產(chǎn)品組合能夠從四個(gè)方面創(chuàng)造企業(yè)價(jià)值:價(jià)值最大化、均衡、戰(zhàn)略一致性、合理的產(chǎn)品分布。價(jià)值最大化允許主動(dòng)管理組合中的項(xiàng)目,以便從業(yè)務(wù)目標(biāo)的角度最大限度地提高組合價(jià)值;均衡的產(chǎn)品組合能夠防止在決定項(xiàng)目規(guī)模時(shí)出錯(cuò),以防出現(xiàn)項(xiàng)目執(zhí)行時(shí)間過長或者項(xiàng)目的業(yè)務(wù)風(fēng)險(xiǎn)過高等問題;為了實(shí)現(xiàn)戰(zhàn)略一致性,目標(biāo)產(chǎn)品組合應(yīng)以支持公司實(shí)現(xiàn)主要業(yè)務(wù)目標(biāo)為標(biāo)準(zhǔn);應(yīng)確保提供合理數(shù)量的資源來支持已經(jīng)確定的產(chǎn)品項(xiàng)目。

產(chǎn)品特性組合

電子產(chǎn)品非常強(qiáng)調(diào)特性,例如是否具備WiFi、有沒有拍照功能等。產(chǎn)品的特性講究人無我有、人有我新。這要求我們一方面加以創(chuàng)新,去產(chǎn)生吸引消費(fèi)者購買行為的新特性;另一方面也要求我們對(duì)產(chǎn)品的種種特性,根據(jù)不同的市場定位加以組合,因?yàn)椴⒎且粋(gè)大而全的產(chǎn)品就可以滿足所有人的需要。產(chǎn)品的特性大致可以分成下面三種類型。

  • 功能型特性,例如拍照功能、上網(wǎng)功能。
  • 性能型特性,例如CPU速率、內(nèi)存大小、拍照的像素等。
  • 合規(guī)型特性,例如不同國家的入網(wǎng)要求。

各廠商應(yīng)對(duì)不同類型的特性,根據(jù)相應(yīng)消費(fèi)人群使用習(xí)慣,以及不同市場的合規(guī)型要求,進(jìn)行靈活合理的組合,從而得到適應(yīng)不同的市場定位的產(chǎn)品組合。

可行性分析

一款產(chǎn)品的推出,除了要具備相應(yīng)的特性以外,也要對(duì)其可行性進(jìn)行分析。衡量的因素有眾多維度,例如技術(shù)可行性、商業(yè)可行性、市場潛力、財(cái)務(wù)回報(bào)、產(chǎn)品復(fù)雜性以及戰(zhàn)略一致性。

每個(gè)企業(yè)都有定義的企業(yè)戰(zhàn)略,對(duì)自身及其產(chǎn)品都有相應(yīng)的定位,產(chǎn)品要求與企業(yè)戰(zhàn)略目標(biāo)保持一致,對(duì)實(shí)現(xiàn)企業(yè)戰(zhàn)略目標(biāo)提供幫助和支持。同時(shí)產(chǎn)品的投入要求有匹配的產(chǎn)出,成本與收益一定要達(dá)到良好的比率,并且要求在收益與風(fēng)險(xiǎn)之間達(dá)到平衡。產(chǎn)品技術(shù)方面要評(píng)估現(xiàn)有技術(shù)與預(yù)期目標(biāo)之間的差距、實(shí)現(xiàn)的技術(shù)復(fù)雜度與產(chǎn)品總體架構(gòu)是否一致。而風(fēng)險(xiǎn)的管控同樣是對(duì)產(chǎn)品評(píng)估的重要因素之一,包括質(zhì)量風(fēng)險(xiǎn)、進(jìn)度風(fēng)險(xiǎn)、組織風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)等。

不同的維度,在不同的市場環(huán)境下,面向不同的目標(biāo)人群,其優(yōu)先級(jí)以及評(píng)判標(biāo)準(zhǔn)是不盡相同的,這就需要引入靈活的評(píng)判模型,通過產(chǎn)品或特性的兩兩比對(duì)得到打分模型,并針對(duì)不同的判決因素進(jìn)行加權(quán),綜合評(píng)比得到最終的判決。

資源配置與管理

產(chǎn)品組合管理是聯(lián)系戰(zhàn)略決策和戰(zhàn)術(shù)執(zhí)行的紐帶,產(chǎn)品開發(fā)是商業(yè)戰(zhàn)略的表現(xiàn)形式,企業(yè)實(shí)現(xiàn)其戰(zhàn)略的重要途徑就是通過恰當(dāng)?shù)恼蛊烽_發(fā),產(chǎn)品組合管理要求在企業(yè)戰(zhàn)略與產(chǎn)品開發(fā)之間建立橋梁。

企業(yè)往往會(huì)同時(shí)有開發(fā)多款產(chǎn)品的需求,而各種資源總是有限的,產(chǎn)品組合管理同時(shí)研究資源的分配,幫助企業(yè)合理有效的配置資源。資源管理要求能夠?qū)Ξa(chǎn)品進(jìn)行排優(yōu),從而優(yōu)化資源投入與產(chǎn)出,實(shí)現(xiàn)產(chǎn)品價(jià)值最大化。錯(cuò)誤的產(chǎn)品規(guī)劃將在運(yùn)行資源、定位、宣傳、銷售和支持方面給企業(yè)帶來沉重壓力,并行產(chǎn)品組合的增多會(huì)加劇運(yùn)行的復(fù)雜性,必須在產(chǎn)品開發(fā)項(xiàng)目的數(shù)量與公司自身能力之間找到最佳均衡點(diǎn);诋a(chǎn)品開發(fā)能力來調(diào)整產(chǎn)品組合規(guī)劃可以幫助有效提高整個(gè)產(chǎn)品開發(fā)項(xiàng)目的成效。

通過需求管理和重用縮短產(chǎn)品上市時(shí)間

需求的捕獲

需求管理首先是對(duì)需求和靈感的捕獲,面對(duì)復(fù)雜多變的市場環(huán)境,要求準(zhǔn)確地捕捉和發(fā)掘Android用戶的真實(shí)需求,捕獲業(yè)務(wù)人員、設(shè)計(jì)人員的靈感,從而避免因需求的遺漏或是靈感的丟失,錯(cuò)誤或模糊的需求所造成產(chǎn)品的延遲或取消。對(duì)需求的描述通常通過文字與模型并存的方式進(jìn)行,文字的優(yōu)勢在于描述具體、精確的事務(wù),例如數(shù)字、指標(biāo)等;而模型的優(yōu)點(diǎn)在于無歧義、規(guī)范化。結(jié)合兩者優(yōu)勢可以幫助業(yè)務(wù)人員或產(chǎn)品經(jīng)理準(zhǔn)確地把握和闡述用戶需求。

需求的審批

需求需要經(jīng)過排優(yōu)、審批的過程,并非所有需求和靈感都切實(shí)可行,一個(gè)好的想法同時(shí)也需要恰當(dāng)?shù)氖袌霏h(huán)境?焖僮兓氖袌霏h(huán)境要求簡潔靈活的需求批復(fù)、實(shí)現(xiàn)、追蹤流程,保持對(duì)市場的最高靈敏度,避免笨重的管理流程帶來滯后。另外,不同的需求是針對(duì)不同的客戶群,其定位和時(shí)效性都不同,這就需要通過不同的產(chǎn)品加以實(shí)現(xiàn),這一點(diǎn)至關(guān)重要,可以通過前面論述過的產(chǎn)品組合管理得以實(shí)現(xiàn)。

需求的復(fù)用

在Android的開發(fā)過程中,有效的需求復(fù)用可以很好地縮短整個(gè)軟件開發(fā)周期。通過需求管理流程,需求得以在不同的產(chǎn)品中實(shí)現(xiàn)復(fù)用,并且很好地支持設(shè)計(jì)開發(fā)的復(fù)用流程。產(chǎn)品線工程是Android產(chǎn)品系列開發(fā)的重要方法,需求復(fù)用的管理是支持產(chǎn)品線工程的必要手段。

需求的復(fù)用可以針對(duì)不同的層面。項(xiàng)目一級(jí)需求復(fù)用,是將業(yè)務(wù)規(guī)則、數(shù)據(jù)元素、用戶界面等定義為單一的實(shí)例且通過需求開發(fā)過程為項(xiàng)目成員共享和復(fù)用;組織一級(jí)的需求復(fù)用,是當(dāng)團(tuán)隊(duì)在多個(gè)項(xiàng)目協(xié)作時(shí),信息可以通過共享的需求庫進(jìn)行重用。這樣的需求庫可以被組織來為不同產(chǎn)品定義特性。


圖2 Android系統(tǒng)開發(fā)平臺(tái)

通過跨平臺(tái)應(yīng)用開發(fā)減少重復(fù)工作量

自推出到現(xiàn)在,Android歷經(jīng)多個(gè)版本, 前期的系統(tǒng)版本無論是從功能還是穩(wěn)定性都差強(qiáng)人意,直到1.6版本才有了第一個(gè)穩(wěn)定且功能強(qiáng)大的系統(tǒng)版本。除Android自身這么多版本以外,還存在由Android系統(tǒng)衍生出來的特定廠商的系統(tǒng),存在很多廠商基于Android某一個(gè)穩(wěn)定版本的基礎(chǔ)加以定制,得到的操作系統(tǒng),例如中移動(dòng)的OPhone系統(tǒng)、聯(lián)想的樂OS等。

開發(fā)廠商,尤其是應(yīng)用開發(fā)商,有時(shí)需要同時(shí)支持多個(gè)版本的多種系統(tǒng),多線作戰(zhàn)對(duì)于開發(fā)商而言是極大的挑戰(zhàn)?缙脚_(tái)的應(yīng)用開發(fā)可以幫助開發(fā)商良好地應(yīng)對(duì)多平臺(tái)多版本的應(yīng)用開發(fā)支持,從而提高開發(fā)效率,減少重復(fù)的開發(fā)工作。

跨平臺(tái)開發(fā)的實(shí)現(xiàn)需要借助工具的支持, 對(duì)工具而言要求包括兩個(gè)內(nèi)容。

首先,工具需要支持代碼生成并通過編譯后,可以運(yùn)行在不同的系統(tǒng)和平臺(tái)上,并且能夠支持跨平臺(tái)的部署和調(diào)試。通過跨平臺(tái)的編譯、部署和調(diào)試,極大地幫助開發(fā)人員提升開發(fā)效率,并且同時(shí)能夠保障應(yīng)用開發(fā)的質(zhì)量。

其次, 由于不同的系統(tǒng)和平臺(tái), 甚至Android不同的版本之間,其API調(diào)用都有所不同,如果針對(duì)每一個(gè)版本都需要調(diào)整代碼,那么將對(duì)后續(xù)的維護(hù)和升級(jí)都造成嚴(yán)重的困難。因此,跨平臺(tái)的開發(fā)要求工具能夠支持一套設(shè)計(jì)、一套實(shí)現(xiàn)能夠應(yīng)對(duì)多種系統(tǒng)和平臺(tái),從而減輕重復(fù)而枯燥的開發(fā)工作。而能夠?qū)崿F(xiàn)這一要求的最佳選擇就是模型驅(qū)動(dòng)開發(fā)。模型驅(qū)動(dòng)開發(fā)工具可以根據(jù)不同的目標(biāo)環(huán)境,基于相應(yīng)的框架和模型,生成適用于特定目標(biāo)環(huán)境的代碼。這對(duì)于手機(jī)開發(fā)這樣的嵌入式系統(tǒng)開發(fā)而言是至關(guān)重要的,尤其是當(dāng)需要適應(yīng)不同的目標(biāo)硬件、系統(tǒng)環(huán)境時(shí),模型驅(qū)動(dòng)開發(fā)由此極大地提高了軟件的復(fù)用度,使相同的設(shè)計(jì)和功能模塊,可以方便快捷地應(yīng)用部署到不同的產(chǎn)品設(shè)備中。同時(shí)由于是基于同一套設(shè)計(jì)和實(shí)現(xiàn)生成的代碼,其功能、質(zhì)量以及穩(wěn)定性都可以得到良好的保障,從而極大地減輕開發(fā)人員的重復(fù)工作量,讓他們從其中脫身出來,將精力放在更富有創(chuàng)造性和挑戰(zhàn)性的設(shè)計(jì)與開發(fā)工作中。

結(jié)束語

Android提供的標(biāo)準(zhǔn)化、開放的軟件平臺(tái)和操作系統(tǒng)是史無前例的創(chuàng)舉,其商業(yè)價(jià)值也逐漸凸顯,應(yīng)用軟件數(shù)量迅速突破了十萬大關(guān)。一片贊譽(yù)中,Android開發(fā)的道路卻并非總是坦途,尤其是對(duì)Android產(chǎn)業(yè)鏈中的不同廠商而言,無論是設(shè)備制造商,或是應(yīng)用開發(fā)商,市場競爭始終存在,優(yōu)勝劣汰是亙古不變的,如何在眾多的同行業(yè)競爭對(duì)手中突破重圍,脫穎而出,與每一個(gè)廠商切身利益緊密相關(guān)。

以上通過對(duì)Android系統(tǒng)開發(fā)的簡單分析, 提出Android系統(tǒng)開發(fā)平臺(tái)的概念,從產(chǎn)品組合、需求管理、建模與重用、協(xié)同開發(fā)等角度分析和總結(jié),提供一些能夠加速Android系統(tǒng)開發(fā),并有效提高產(chǎn)品質(zhì)量的方法和思路。

參考資料

《項(xiàng)目經(jīng)理到執(zhí)行官修煉之道——圖解組合管理》寧德軍,朱華宇,清華出版社 ISBN 978-7- 302-23638-2。

《實(shí)時(shí)設(shè)計(jì)模式》(美)Bruce Powel Douglass 著,麥中凡 ,陶偉等譯, 北京航空航天大學(xué)出版社 ISBN 7-81077-421-2。

作者姚冬,北京郵電大學(xué)軟件工程在職研究生,F(xiàn)就職于某知名跨國企業(yè),關(guān)注復(fù)雜系統(tǒng)開發(fā),以及軟件過程改進(jìn)等方面的研究。擁有12年的系統(tǒng)軟件開發(fā)和軟件工程實(shí)踐經(jīng)歷。

贊助商鏈接: