應(yīng)用軟件的“敏捷開發(fā)”模式:從小米MIUI談起
小米手機(jī)的用戶或許已經(jīng)發(fā)現(xiàn),手機(jī)所使用的Android ROM“MIUI”,自推出以來每周都會發(fā)布一次更新。小米CEO雷軍曾表示,MIUI采用了敏捷開發(fā)(agile develolment)的模式,因此可以在短時間內(nèi)完成開發(fā),實現(xiàn)軟件快速迭代。用戶對MIUI這一ROM的質(zhì)量或許見仁見智,不過,什么是“敏捷開發(fā)”?
作為一種相對新穎的產(chǎn)品開發(fā)模式,敏捷開發(fā)這一概念提出于2001年2月。當(dāng)時17名軟件工程師在美國猶他州Snowbird舉行會議,討論輕量級軟件開發(fā)方法,并發(fā)布了《敏捷軟件開發(fā)宣言》。這標(biāo)志著敏捷開發(fā)的誕生。這一模式隨后被硅谷創(chuàng)業(yè)公司大量應(yīng)用,并于近幾年被引入國內(nèi)。
最初的“敏捷宣言”強(qiáng)調(diào):個人和互動比流程和工具更重要;可運(yùn)行的軟件比復(fù)雜的文檔更重要;與客戶的合作比合同談判更重要;對改變的響應(yīng)比跟隨計劃更重要。
因此在敏捷開發(fā)模式中,一個項目被分解為多個部分或多個步驟。在每個階段完成后,項目都可以拿出一定程度可交付的產(chǎn)品。這樣做便于實現(xiàn)產(chǎn)品交付目標(biāo),降低整個項目的復(fù)雜度,同時在項目早期就能拿出初具雛形的產(chǎn)品。
以MIUI為例,早在2010年,MIUI就已經(jīng)出現(xiàn),并逐步培養(yǎng)起了一批用戶。然而,最初版本的MIUI僅僅只是Android系統(tǒng)的一個界面。當(dāng)前MIUI中用戶熟悉的語音助手、應(yīng)用超市、防打擾功能,甚至手電筒應(yīng)用,都沒有被包括在其中,而是在過去3年的開發(fā)過程中逐漸加入。每周的更新中,有相當(dāng)一部分是為了修復(fù)bug所做的更新,這也是分用戶覺得它“為了更新而更新”的原因。
總的來說,敏捷開發(fā)要求團(tuán)隊有極高的執(zhí)行力:增量開發(fā)目標(biāo)提出來容易,但是能力不夠就不能按時交付——這也是許多企業(yè)在實際執(zhí)行中,發(fā)現(xiàn)項目無法獲得預(yù)期效果的原因。同時要求測試驅(qū)動開發(fā),以便出現(xiàn)問題時,能迅速定位是由哪一步、哪個模塊引起。而作為創(chuàng)業(yè)型公司,“快速迭代”能在初期吸引足夠擁躉,從而為后期推廣鋪平道路。