為什麼小米的系統 MIUI 能夠一周更新一次,而魅族的固件更新周期很長?


剛買了個Cherry的青軸機械鍵盤,有了打字的衝動,順便回顧一下MIUI開發流程的進化。先說明一下,我是MIUI的初始成員,長期負責最基礎的開發工作和每周的產品發布,有關開發流程的大部分的改變都是我來驅動的,我可以保證寫出來的都是第一手的資料,因為都在我的記憶裡面。

MIUI為什麼要每周五發布?這個項目開始的時間是2010年4月底,項目負責人是黎萬強,工程師是我和劉新宇,然後就沒有其他人了。新宇負責電話相關的改動,我負責系統升級,要保證可以在線升級(OTA)到下一個版本。兩個人非常興奮,也非常努力,暢遊在Android代碼的海洋裡面,很順利的在勞動節放假前發布了第一個內部版本。那一天,2010年4月30日,正好是周五。在那之後,公司內部的版本總是在周五發出來,當時是每周工作六天,周六還有時間修復周五版本的問題,有時候會發一個緊急更新,確保小米公司的同事們都能用上放心的系統。2010年8月16日MIUI正式發布之後,我們還是堅持每周五發布,其實沒有什麼特別的,因為之前已經是那樣了,每周五發布和OTA,就是MIUI的基因。

做到每周五按時發布,其實並沒有那麼輕鬆,不同的時期,不同的團隊規模,都有不同的挑戰。隨著MIUI的團隊規模越來越大,累積的功能越來越多,用戶預期越來也高,開發流程也跟著變化。從開始到現在,MIUI大概分為狂野、剋制、精準三個階段。

所謂狂野,就是想做什麼就做什麼,有什麼就發什麼。這是一個MIUI野蠻生長的階段,對於用戶的需求及時滿足,也經常能超出用戶預期,MIUI的口碑也是這個時期積累的。這個階段最大的挑戰就是如何儘快滿足用戶需求,如何最快的做出產品,而對於團隊管理,質量控制都沒有專門考慮,不過MIUI初始團隊的工程師素質都很高,也也沒有出現嚴重的問題。但是隨著團隊規模的擴大,新入職的同事的增多,某些發布的版本出現了一些問題,不得不在周六發布緊急更新。

所謂克制,就是要忍住。有時候做了一個新功能,如果不能馬上讓用戶用上,會很不舒服,但是如果因為這個功能導致用戶手機出了問題,那用戶會更不舒服。所以我們做了折衷,新功能提交在周三晚上截止,周四、周五只能提交資源改動,這樣我們可以有兩天的時間測試要發布的產品,如果有嚴重問題,可以馬上解決。如果兩天不夠,還可以更克制,大的功能周一就要提交,可以有四天的時間測試。這個階段,很多同事未必能剋制住,甚至老闆也很難做到克制,所以還是會有些問題,但是已經比狂野階段好了很多了。但是克制也讓很多同事不敢提交代碼,導致開發效率降低。

所謂精準,就是把正確的產品發給正確的用戶群。自從小米手機發布之後,MIUI的用戶群迅速擴大,到現在已經超過2000萬用戶了,而發燒友的比例其實只有一個百分點。這時候,大多數用戶的訴求是穩定,與此同時MIUI的忠實發燒友用戶也要服務好。這個時候開始了灰度機制,根據用戶對於新產品的接受程度,MIUI分為體驗版、開發版和穩定版。體驗版只針對高度發燒友用戶,不主動傳播,採取邀請制,討論區由用戶自己管理。開發版適合普通手機愛好者,喜歡新事物,但是又不想太折騰。穩定版自然適合普通大眾用戶,買手機就是要穩定,很多人甚至都不升級。目前體驗版、開發版和穩定版用戶的比例大概是1:1000:20000。

MIUI進入精準階段還不到一年,當時是因為要開發V5,所以需要一個比較長的開發周期,同時又想核心發燒友用戶可以一起參與V5的開發,所以專門做了一個體驗版給幾十個用戶使用,就和MIUI剛開始的感覺一樣。從V5的口碑來看這個階段的成果還是很可觀的。V5發布之後,這個版本專門給高度發燒友用戶體驗最新的功能,這些功能他們滿意了之後才會進入開發版,現在這個版本已經有了好幾百人了,每個工作日都有新版本,很爽,很折騰,很發燒。

新功能都在體驗版開發,開發版的用戶其實不會受到影響,因為這些用戶喜歡體驗完整的新功能,而不是帶有問題的新功能。體驗版上的新功能完整之後,提交到開發版分支上,發出去之後對於開發版用戶來說還是新鮮的。現在MIUI團隊有300人,同時開發的項目有十幾個,每周達到完整的新功能很多,這樣可以保證開發版的新功能足夠吸引人。其實開發版還有內測,每周二下午開始,每天都有一個版本,給那些稍微喜歡折騰的開發版用戶,同時也能幫我們發現問題。

寫了這麼多,不知道有沒有回答問題,總結起來就是MIUI一直都在嘗試更好的開發模式,同時滿足不同用戶的需求,又能夠保證作為基因的每周發布。很多事情做不到,不是沒有能力去做,而是沒有想到可以那麼做。當然,如果能夠有MIUI這麼一個既有創新能力、又有執行能力,既充滿激情、又能夠剋制的團隊的話,做到每周發布就太容易了。


@李楠 先生的回答很有意思,先酸溜溜的指責了一下小米「用戶?都是這個循環中的測試者。」之後反覆強調Meizu是蘋果的學生,追求完美,「其實這和技術能力什麼的關係不大,這是兩種不同的信仰。」
卻在最後承認了蘋果的灰度機制「缺乏大規模的灰度發布,可能才是魅族的短板」

難道小米的穩定版/開發版/體驗版就不是灰度機制了?我是不是能理解成魅族在變相承認自己的不足,卻不肯向小米認搓,一定要把蘋果祭出來給自己找臉面?

耐人尋味啊~
=====================
關於問題本身,其實題主弄混了小米的穩定版/開發版/體驗版這幾個概念,穩定版其實更新不算頻繁,每月一次而已,小米1/1s和和很多第三方機型都不更新了

Meizu其實是傳統廠商的思路在做手機,而小米是互聯網時代的正常速度,君不見Firefox的nightly版近乎每日一更,chrome的canary版甚至可以做到一天幾更。

而且魅族以蘋果為師,用把產品看出作品,核心意義在表達囧王及其團隊對手機的理解,所以不太需要這種更新反饋機制;
小米出身互聯網,把產品看作服務,核心意義在於滿足用戶的需求,所以會快速迭代細心聽取用戶反饋;

這都是企業氣質確定的,樓上孫鵬敘述有不盡之處,貼一段視頻,應該可以幫助大家更深的來了解一下miui的用戶哲學「快速迭代的互聯網開發模式」
視頻封面快速迭代的互聯網開發模式(流暢)_448x336_2.00M_h.264視頻


miui定位為發燒友手機,基本上有兩個版本。開發版本和穩定版本。開發版本的問題很多。一般開源的系統都是這樣的,先是開發版本,然後再是穩定版本。就像fedora給redhat打前陣一樣。同樣miui也是這樣的。開發版本的問題很多。系統不穩定。但是都是最新的功能。用戶因為是發燒友。可以容忍其缺點。但是必須是最新的。可惜miui在小米推了手機後,發的心思就少很多了。小米本身沒有採用cm的源碼。而miui關於cm的其他機型的移植也慢了。估計雷不死一心圈錢搞營銷去了。
魅族走的是封閉的道路。最大的選擇權不再用戶,在於囧王---》估計信奉喬布斯的那個觀點:用戶根本不知道自己需要什麼----一個極端。不過囧王本身是手機最大的發燒友。。。不過魅族的固件也是bug很多。。速度很慢。確實是軟板。。不過被罵了這麼多年了。。。固件出問題的幾率比以前小多了,技術積累也好很多了。。。還有魅族很多東西不願開放。不知道什麼原因。估計和專利有關係吧?


這就是雷軍所說的"互聯網手機"中的一項重要特性,快速迭代--互聯網時代一切都是快.
魅族則更按照傳統智能手機的方式進行更新,所以兩者基本沒有可比性.
每周更新一次的MIUI雖然每次變化不大,但是隨時發現的BUG,一周之內就能解決,這不是隨便哪個團隊/公司都能做到的.互聯網的模式不是傳統領域的模式,不再是"把自己關在小屋裡憋三四年"弄出來個產品改變世界的模式,而是整個互聯網就是一個實驗室,隨時想到隨時做,出了問題隨時改.


小米是互聯網開發的信奉者:快速迭代。
開發就是為了發布,發布就是為了反饋,反饋就是為了指導下一步的開發。用戶?都是這個循環中的測試者。
用戶也往往可以接受這種安排:因為和多數互聯網產品一樣, MIUI 是可以完全免費得到的 - 如果你用的不是小米的話。

魅族是蘋果的信奉者:要給用戶最好的體驗。
那麼,完美比完成重要。所以魅族內部有不小的測試隊伍。用戶不是測試者,他們是付了錢的顧客。
嚴格說, Flyme 也的確無法免費得到。

其實這和技術能力什麼的關係不大,這是兩種不同的信仰。

哪種方式更容易收穫好的產品呢?
MIUI 不錯, Flyme 其實也不慢( 7/12 如果 Flyme 如期放出,那麼 Android4.0 穩定版的開發速度還更快)。
大而言之,經常發布的 Startups 們不錯,不常發布的蘋果也不錯。

條條大陸通羅馬。

(不過,蘋果的兩個灰度發布:開發者版本和 Cydia 社區,可以讓她不斷嘗試的同時,不影響用戶。所以,缺乏大規模的灰度發布,可能才是魅族的短板)


最根本的原因在於,兩者的目的不一致。小米要做一個優秀的系統,任何一個優秀的系統,最好的方式,就是不停的改,不停的測試。前者小米自己可以做到,但是後者,他把這個任務交給了廣大的用戶;魅族需要給用戶的是一款完美的手機,他可以容忍自己的手機上沒有某一項功能,但是他不能接受的是某一項功能出現低級的bug。依照這個思路,魅族系統的修改,測試都是自己完成的。
所以,就出現在這樣的現象,看起來好像小米很有能力,每周一次更新,但是可能你下載的更新版本bug比前一版本還要多;魅族可能隔了幾個月才出一次更新,但是最少,某些功能確實是在改進了。


軟體哪有不出BUG的
不斷的DEBUG,不斷的迭代,只要是收斂的,總歸能獲得好的體驗。
魅族什麼要把最好的給用戶,純粹放屁。就好像我每次改程序,V3.1 V3.2 V3.3都不發布,只有等到V4.0才發布,因為我要把最好的給用戶。那用戶在V3.0-4.0之間都在受罪。


為什麼沒人問CM為什麼能夠每天更新?


哈哈,其實小米每周一次更新,很有可能也是跟魅族學的,這事可能李楠都不清楚,因為M8時代李楠還沒來魅族,那個時候每到周未,便有一群人在論壇上等固件,很熱鬧也很瘋狂,我也經歷過,雷布斯看到了其中的價值,學了過去。


我比較喜歡小米的這種方式,但只在一個公司中用過,恰巧也是免費軟體,那時候的周期是一個月發布一版。我能體會到的好處是:
1 用戶參與程度很高。當時用戶通過社區發布的BUG、提出的需求和參考的軟體很多,對我們來說獲益匪淺。
2 倒逼產品必須做減法。因為開發周期固定,做產品就不能隨心所欲的亂想,必須去思考什麼是最重要的,哪些是不需要做的。我記得那時候的產品溝通會說的最多的一句話就是,「這一點不做」。雖然每個人都認同做減法這樣的理論,但實際上我看到過很多公司的產品團隊,做加法做的不亦樂乎,包括我自己換到別的環境,每次討論需求的時候,也是忍不住想每次都多做一點東西。
3 倒逼產品必須重視結果。因為一個月一版,發版後就要看結果,非常直觀。我有個感觸是,在小公司中,如果不是這樣的流程,產品經理這個崗位在很多公司中是非常容易混日子的。我參與扭轉過一些虧損的公司,不少產品經理其實扮演的是項目經理,把需求做上線就一切OK。
4 節奏很清晰,執行非常快。這個很容易理解,因為限定了節奏,所以執行效率很高。不少創業小公司,最容易發生的情況是,回首一年,你覺得產品和技術部門是好像天天在忙,但是仔細回想,又不記不起具體做了哪些事情。
5 忠實粉絲的傳播效應。我記得當年每次發版後,都會立刻迎來下載量的新高。每次發版後,立刻有成百上千的媒體、極客和下載網站主動宣傳。因為主攻海外市場,所以需要翻譯,但是我們每次發版的3-5天內,就會有粉絲幫我們完成十多種語言的翻譯。

我經歷的幾個創業型的小公司,基本上全是沒有大資本投入的,需要滾動發展的。大多數情況下,你沒有頂尖的技術高手或產品專家,都是一群難兄難弟,摸索前進。感覺這種明確期限的快速迭代方式,好處非常明顯。記得有一個項目,就是屬於那種團隊天天都在忙,天天都在加班,但是每次一回想,重要的事情一件都沒有做,後來痛下決心,改為3個月一期的迭代方式,結果大事進展的非常順利。建議遇到類似情況的朋友,可以考慮一下小米這種做發。


從純粹軟體的角度說,一個Android的版本每天更新一次都是可以的。反正只要研發提交了代碼,你每天晚上從午夜開始在伺服器上編譯,上班前怎麼也弄完了。然後匯總個更新說明就可以發布了。
但問題是你這樣做了之後的軟體質量,就肯定沒辦法完全保證了。根據我個人的經驗,一個Android的軟體版本,一個正常配備的軟體測試團隊,要完成一個簡單的針對增量功能和大的整機功能的測試,需要半天到一天的時間,要保證整機功能比較完善,需要三天到一周的時間,要完成一個非常完整的測試,至少也要一周的時間。
我個人從2012年10月份開始使用小米1S,直到2013年6月,升級他的每一個版本。同時有意無意的自己做做體驗用戶測試。根據我的判斷,小米的開發版甚至是穩定版測試,都是不夠的。比如版本在很長時間裡存在頻繁通話之後的死機現象(工作性質決定,電話比較多,經常一個電話掛斷後30秒之內就有另一個電話進來,連續三次,小米1S必死機),從我購買直到2013年3,4月份,這個問題才得到基本解決。而這個問題,如果有對軟體的完整測試用例,在最基本的長通話短通話測試中肯定被發現了。
因此可以判斷,小米基本上是互聯網開發的模式,管它質量怎樣先發布一個版本再說,然後根據用戶的海量反饋解決最集中最突出的問題。這種方式不能說錯,但是這種方式給小米帶來的,就是他的定位始終不會高,比如我很難想像小米這樣的解決問題的順序,他能進入商務手機的市場。絕大多數商務用戶在發現小米那個死機問題之後,就會果斷更換一個手機,因為對他們而言,錯過一個重要電話可能就比小米那個手機都貴了。短期來看沒問題,長期來看,其品牌定位會很辛苦。說到這裡,可能有人會說谷歌就是這樣開發產品的,定位也沒問題。必須多提醒一句,谷歌是在開發自己的產品,完全是自己的基線,自己的核心技術,所以一旦一個產品穩定,就沒問題了。但是小米,始終是在用高通的晶元,而高通的每個晶元,實際上互相之間都是不能借用的,所以雖然我本人沒有再買小米的2或者2S/2A,但是從網路評論看,我感覺在8960上的這個過程,他們在8064平台上又來了一遍。後面的8974,他們能不重複嗎?恐怕很難。
魅族沒用過,不發表意見了。


用過MX2和M2的說兩句

M2更新周期很快,但你更新了四五周發現跟之前沒什麼區別,因為更新的很多小功能你用不到,更新了很多功能帶來的只是小BUG和不穩定,建議只更新開發周期比較長的穩定版。

MX2真心不想吐槽,一個通話偶爾會聽不到多方說話的BUG(我的是經常性的聽不到)半年才發布固件解決,是技術問題還是覺得這個問題不大慢慢弄?還有光感問題拖了大半年竟然要另一個項目組的工程師幫忙解決,你敢想像嘛?更新周期很長但哪次更新能大部分人滿意?每次幾個月發布的固件被吐槽到你不敢相信的地步。

就軟體的層次來說我認為小米比較好,實力也比魅族強,更新周期快還有維護其他品牌的更新。有開發版和穩定版供你選擇,滿足不同人的需求。

說句題外話,就是工藝外觀質感來說魅族秒殺小米,用過MX2之後再用M2感覺它就是個塑料。畢竟價格擺在那。


一周更新一次的是miui的開發版,穩定版是一個月一次。而且根據我的現實使用來看,4.0的開發版每周的更新沒多大變化,還不如安安心心用用穩定版。
魅族,不知道。


看到這個問題,也想說說自己的看法。其實如果問到為什麼,就是理念不同而已。一個主打發燒友,一個主打寧靜侘寂。但二者目前都有問題。小米,發燒友真的那麼多嗎?看小米和眾多的發燒友,就像幼兒園老師教了一個小朋友系鞋帶,小朋友學會了,幼兒園老師就誇小朋友說:真棒!簡直就是系鞋帶的發燒友!....那真的是發燒友嗎?不,那只是一些被1999吸引知道你是nb四核的「高復帥」。發燒友就得折騰,於是每周都要有固件。但...對著這群「偽發燒友」有這個必要嗎?別自欺欺人了...miui運營了這麼久早該尋求轉型了,發燒友不會永遠發燒的。魅族 ?剛好相反,太淡定了吧親~miui比flyme穩定那麼多還每周更新,你放著那麼多bug不修復你看的下去么?侘寂也好融入平淡生活不把刷固件變成生活的一部分等等這些都沒問題,但是前提是你足夠穩定不影響用戶的正常使用。話說回來,你穩定了,誰還跟你要固件?很奇怪,miui和flyme剛好是兩個極端,一個不斷的發沒多大意義的固件,一個有意義的留著不發。一個帶著濃重的市場營銷人員風格,一個帶著濃重的工程師情懷。


我以前用的M1,據說M2很穩定,我只噴我所我感受到的。

即使用的是穩定版,手機還是經常重啟,打開相機的時候也經常卡頓。路上看到有意思的事情,拿出手機照相,發現相機界面打開後就一直卡在那裡,就有想摔手機的衝動。這樣的情況還會出現在跟人分享照片打開圖庫的時候,在接到一條簡訊要解鎖的時候。

安卓的碎片化讓它不穩定,但是絕大部分集中在安裝的app上,比如玩遊戲時死機或者強制退出或者體驗不佳,這些好歹是可以接受的,畢竟不是很緊急。但是當使用手機本身的一些功能的時候,卡頓還無所謂,著急的是重啟、死機,體驗會降到冰點。

前幾天幫我哥整送他的M1,還是想摔。

MIUI一個周更新一次自然有喜歡的人群,也是一個很好的噱頭。在我的旁邊,總有人跟我說,小米的功能太強大了。這自然跟每周更新的新聞有關。這個迅速擴展口碑的法寶,是我以後遠離小米的原因,也讓我對安卓持謹慎態度。

我不喜歡鎚子的設計,但是我很喜歡老羅的底線:必須要很穩定,才會公開發布或者發售。我覺得老羅抓住了點。


其他樓上那麼多人的回答已經很全面,總結起來一句話,做產品的方式:小米偏向互聯網公司,魅族偏向傳統公司。


為什麼一個系統要頻繁更新,原因不外乎以下幾點:首當其衝的當然修復系統漏洞或者BUG,每周都有BUG要修復,可見開發一個系統的工作量的確很大。因為MIUI定位的是那些發燒喜歡刷機的用戶,所以,每次刷機都會將更新的東西和修復的東西全部列舉出來,讓刷機者有一種自豪感,還有什麼比能夠使用更先進的系統,更好玩的系統更有意義的呢,久而久之就形成了第二點:慣例。當然有的人喜歡頻繁的看見系統更新,就跟裝了豌豆夾,每天都要把所有的應用升級到最新一樣的強迫症,所以利用這部分人的心理,給人一種望梅止渴的那種饑渴的感覺,達到某種熱度和關注度,也是一種非常好的營銷方式。最後一點也就是增加新的功能了,在抄襲風肆虐的今天,別人有的,MIUI反正全都會有,贊一個!


作為小米v5的用戶之一,確實很佩服小米的這種模式,目前用的是開發版。
第一感受是小米很有活力,能給用戶放心的感覺(不是沒有bug的放心,而是感覺買了這個手機還會有人在負責)。
第二感受小米的工程師可能會比較累,一周更新一次(當然這也有可能是並非每個MIUI小團隊都是每周更新)。
第三感受是,開發版bug確實比較多,如相機長按拍照功能偶爾失效等,偶爾不能接受,有時候想反饋意見,但很多時候只有零碎的時間,或者不能上網,覺得MIUI的反饋功能還可以做得更好些,不只是單單的四個報告,如支持離線提交反饋(有網時再自動提交)、支持關鍵字的提交,如「相機」。
總之,MIUI雖然有問題,但核心是很好的,值得支持。
沒怎麼用過魅族,無發言權。


首先佩服小米。Android平台更新快,機型多,能在這種情況下,還在跟進bug,改進功能,不容易。
不過,我不支持每周一版本的更新方式,更反感以此為榮的宣傳。
軟體、硬體不是互聯網,對於一款已經推出的軟體,更新頻率是否越多越好?
每次更新都要花費用戶的時間、每次更新都是對上個版本的否定,為什麼不能沉穩一點,做好了再更新?甚至我覺得,對於應用、軟體,更新越頻繁,品質越差。
而且,更新應該以功能為重。比如windows和flash,頻繁更新,但絕大多更新都沒太大變化,體驗非常不好。
總之,每周更新,對於絕大多數軟體來說,都不是個值得炫耀的事情,還是希望小米不用這麼教條,與其每周更新一些不疼不癢的功能,不如實實在在的開發功能。


作為魅族flyme的用戶之一,確實很佩服魅族的這種OS,目前用的是flyme2.3版。
第一感受是魅族很穩重,能給用戶優越感的感覺(不是像不像蘋果的優越,而是感覺買了這個手機還會有人在問是不是小米)。
第二感受魅族的工程師可能會比較累,每天神壇上都被罵娘(當然這也有可能是並非每個魅黑都是水軍)。
第三感受是,2.3版bug確實比較少,如系統拍照功能,偶爾不能接受,有時候想偷拍妹紙,但很多時候群狼太多,或者忘關閃光,覺得flyme的拍照功能還可以做得更好些,不只是單單的800萬,如支持紅外透視(公交車的神器)、支持崩潰功能,如小米。
總之,Flyme雖然不完美,但核心是很好的,值得支持。
沒怎麼用過粗糧,無發言權。


推薦閱讀:

如何評價 Zealer 的 MX4 視頻評測?
這個視頻是魅族官方還是粉絲做的?
如何評價魅族 MX4?
魅族 MX4 有哪些問題?
魅族科技是怎麼想到要投資《端腦》這部動畫的?

TAG:小米科技 | 魅族科技 | Android |