火車模型發(fā)布模式:敏捷和穩(wěn)定

0 評(píng)論 17824 瀏覽 19 收藏 12 分鐘

編輯導(dǎo)語:我們都知道,火車的班次是經(jīng)過了長(zhǎng)時(shí)間的計(jì)劃和排列才得出的最終班次結(jié)果,火車的時(shí)間非常的穩(wěn)定,一般不會(huì)延誤或者遲到,他的信息網(wǎng)也非常密集;本文作者分析了火車模型發(fā)布模式的特點(diǎn),我們一起來看一下。

在說火車模型之前我們先來說說現(xiàn)有的版本發(fā)布模式。

參考喬梁的持續(xù)交付2.0中,從特性、時(shí)間、質(zhì)量三個(gè)角度總結(jié)的三種發(fā)布模式:

  • 項(xiàng)目制發(fā)布模式(Project Rlease Mode)
  • 傳統(tǒng)版本火車模式(Release Train Mode)
  • 城際快線模式(IntercityExpress Mode)

一、項(xiàng)目制發(fā)布模式

項(xiàng)目制發(fā)布模式是指在軟件某一個(gè)版本規(guī)劃中,預(yù)先確定這個(gè)版本所需包含的特性集合;當(dāng)版本的特性集合達(dá)到發(fā)布質(zhì)量標(biāo)準(zhǔn)后,才能發(fā)布該版本,版本之間的時(shí)間間隔不確定,而是根據(jù)前一版本所有特性集合開發(fā)完成并達(dá)到發(fā)布標(biāo)準(zhǔn)所需時(shí)間進(jìn)行評(píng)估確定的。

明顯的好處在于:可以確切地知道每個(gè)版本包括哪些具體功能,有利于商業(yè)套裝軟件的售賣模式符。

其不足之處在于:通常項(xiàng)目整個(gè)交付周期較長(zhǎng),參與人員眾多,需求的變更極易影響版本的交付時(shí)間。

二、火車模型發(fā)布模式

《啟示錄:打造用戶喜愛的產(chǎn)品》這邊說第一張就講到了許多成熟的互聯(lián)網(wǎng)公司都在使用火車模型發(fā)布模式。

Firefox目前正在采用的發(fā)布過程其實(shí)就是火車模型發(fā)布模式,使用一個(gè)新特性從實(shí)現(xiàn)并且進(jìn)入mozilla-central分支到發(fā)布到用戶手里只需要12-18周,并不向IE瀏覽器的更新以用一樣要幾年的時(shí)間。

如此的快速發(fā)布過程給整個(gè)項(xiàng)目帶來了更好的敏捷性和更強(qiáng)的穩(wěn)定性,在每個(gè)發(fā)布周期的測(cè)試和穩(wěn)定階段可以覆蓋更多的用戶來幫助FireFox的開發(fā)人員更早的發(fā)現(xiàn)和解決問題,保持在每次發(fā)布質(zhì)量上的信心。

下面就要介紹下Firefox的發(fā)布流程,每個(gè)獨(dú)立的發(fā)布火車(新的發(fā)布過程采用火車模型,固定的“發(fā)車”時(shí)間,特性的發(fā)布取決于該特性是否趕上最近的火車發(fā)車時(shí)間)包括6周的開發(fā)時(shí)間加上12周的穩(wěn)定時(shí)間:

新的開發(fā)成果不會(huì)直接發(fā)布到Aurora和Beta分支上,這些分支需要被開發(fā)人員和社區(qū)測(cè)試人員共同測(cè)試完方可;如果發(fā)現(xiàn)開發(fā)中存在程序問題或者BUG,就需要先解決問題。

如上圖所示,您能夠看出發(fā)布周期基本上是穩(wěn)定的18個(gè)星期。

Aurora和Beta分支基本上完全關(guān)注于穩(wěn)定性和測(cè)試,同時(shí),很多的工程師也在同步開始新的開發(fā)工作;所以,如果看更大的一張圖表的話,下面是真正進(jìn)行的過程:

在Aurora和Beta分支上經(jīng)歷的12周時(shí)間里,Mozilla開發(fā)社區(qū)并沒有在閑著,他們會(huì)繼續(xù)為后面的發(fā)布開發(fā)新的特性和bug fix。

每六個(gè)星期,他們的工作會(huì)被選擇性的合并到Aurora分支,繼而合并到Beta分支上;觀察上面的圖表,您會(huì)發(fā)現(xiàn)很重要的一點(diǎn)就是——每六個(gè)星期就會(huì)有一個(gè)新版本。

提前幾個(gè)月制定發(fā)布火車的時(shí)間表,原因純粹是讓各種業(yè)務(wù)和技術(shù)部門有足夠多的時(shí)間進(jìn)行預(yù)計(jì)劃,以便做出依賴和影響的相關(guān)評(píng)估工作。

這種模式期望通過更長(zhǎng)時(shí)間的預(yù)計(jì)劃,保障三個(gè)維度(時(shí)間、質(zhì)量、特性)都能符合預(yù)期。

這種模式的好處在于:用戶可以事先了解重要特性在各版本的分布,以及對(duì)應(yīng)版本的發(fā)布時(shí)間,并能夠提前體驗(yàn)到最新產(chǎn)品版本所提供的新特性;然后再根據(jù)體驗(yàn)結(jié)果,決定是否將其應(yīng)用于自己的生產(chǎn)環(huán)境上;而且,既便決定要在自己的生產(chǎn)環(huán)境中使用這個(gè)版本,也可以等到這個(gè)新版本成熟穩(wěn)定之后再使用。

其不足之處在于:需要提前較長(zhǎng)時(shí)間做時(shí)間計(jì)劃,而且制定發(fā)布計(jì)劃的活動(dòng)是一個(gè)非常正式和結(jié)構(gòu)化的過程;并且需要一些格式化數(shù)據(jù),以確保參加發(fā)布火車的團(tuán)隊(duì)能夠?qū)φ郊尤氲目尚行宰龀雠袛唷?/p>

這些數(shù)據(jù)包括:

  • 發(fā)布詳細(xì)信息(相對(duì)標(biāo)識(shí)、名稱、部署日期、風(fēng)險(xiǎn)級(jí)別、發(fā)布類型——企業(yè)、計(jì)劃或投資組合);
  • 整個(gè)生命周期中各個(gè)階段及預(yù)定日期,如下圖(LibreOffice5.4版本火車的時(shí)間表 )所示;
  • 每個(gè)階段要完成的活動(dòng)和任務(wù);
  • 里程碑時(shí)間和質(zhì)量要求;
  • 負(fù)責(zé)管理發(fā)布火車的主要負(fù)責(zé)人。

三、城際快線模式(Intercity Express Mode)

城際快線模式(Intercity Express Mode)是指在發(fā)布策略三要素中選擇固定其中的時(shí)間和質(zhì)量?jī)蓚€(gè)維度,且時(shí)間周期相對(duì)較短(如一個(gè)星期,甚至一天),針對(duì)那些在發(fā)布時(shí)間點(diǎn)前已達(dá)到固定質(zhì)量標(biāo)準(zhǔn)的特性進(jìn)行發(fā)布。

它與傳統(tǒng)發(fā)布火車模式的區(qū)別在于兩點(diǎn):

  • 發(fā)布周期間隔較短,通常在兩個(gè)星期內(nèi);
  • 負(fù)責(zé)特性開發(fā)的團(tuán)隊(duì)可以自己選擇搭乘哪列城際快線,而不必提前很長(zhǎng)時(shí)間確定下來。

這種模式常見于提供互聯(lián)網(wǎng)服務(wù)或SaaS服務(wù)的軟件公司,其好處在于減少了團(tuán)隊(duì)及角色之間的協(xié)調(diào)成本——因?yàn)槊總€(gè)人都事先知道每次發(fā)布的具體時(shí)間點(diǎn),所有工作任務(wù)都可以按這個(gè)時(shí)間點(diǎn)提前進(jìn)行協(xié)調(diào);而且,即使某個(gè)特性沒有及時(shí)趕上最近的一次版本發(fā)布,他們也確切地知道這個(gè)特性是否可以在下一次發(fā)布時(shí)間點(diǎn)對(duì)外發(fā)布。

比如,F(xiàn)acebook Web主站的發(fā)布周期是每個(gè)工作日兩次發(fā)布。

這種城際快線模式的優(yōu)點(diǎn)在于:

  • 每個(gè)人都非常清楚各個(gè)時(shí)間點(diǎn);
  • 每個(gè)人都感覺到特性進(jìn)展;
  • 速度不斷提升;
  • 更加聚焦于生產(chǎn)質(zhì)量。

當(dāng)然,也有其不足之處:

  • 未完成的代碼也會(huì)一同發(fā)布出去;
  • 每個(gè)人都有緊迫感;
  • 如果頻率變慢,需要更多做計(jì)劃的時(shí)間。

那么,這樣的發(fā)布火車,間隔多長(zhǎng)時(shí)間發(fā)出一趟合適呢?

在不了解企業(yè)具體狀況時(shí),這是一個(gè)非常難回答的一個(gè)問題,但仍舊可以給出一些建議,即:在不影響用戶體驗(yàn)、不增加成本且合規(guī)的前提下,讓發(fā)布周期盡可能縮短到令你感到有些緊張的節(jié)奏;比如原來每個(gè)月發(fā)布一個(gè)版本,現(xiàn)在可以把兩個(gè)星期做為一個(gè)目標(biāo)(當(dāng)然,這不可能輕松做到)。

四、分支策略與版本發(fā)布模式之間的關(guān)聯(lián)關(guān)系

分支策略與版本發(fā)布之間有一種微妙的相關(guān)性,在時(shí)間周期較長(zhǎng)的項(xiàng)目制發(fā)布模式下,研發(fā)團(tuán)隊(duì)采用的分支策略通常會(huì)傾向于主干開發(fā)模式;而在使用城際快線模式的團(tuán)隊(duì)中,也通常會(huì)傾向于采用主干開發(fā)模式。

而發(fā)布周期在兩者之間時(shí),其分支策略通常會(huì)傾向于“多分支開發(fā),主干發(fā)布”的模式(無論是特性分支也好,還是團(tuán)隊(duì)分支也好);當(dāng)然,這并不是絕對(duì)的,其中會(huì)有很大的重疊部分,通常會(huì)受團(tuán)隊(duì)成員人數(shù)和產(chǎn)品架構(gòu)影響。

項(xiàng)目制發(fā)布模式不會(huì)消失。畢竟每個(gè)新產(chǎn)品在完成第一個(gè)基本的MVP前,都需要這樣一個(gè)首次啟動(dòng)過程,目前仍舊有很多傳統(tǒng)IT企業(yè)采用項(xiàng)目制發(fā)布模式。

然而,城際快線模式越來越受到歡迎,已經(jīng)有越來越多的企業(yè) 開始使用這種城際快線模式。

即使在那些目前的版本發(fā)布周期較長(zhǎng)的企業(yè)中,也常常在項(xiàng)目制發(fā)布模式中套用城際快線模式,即:在項(xiàng)目周期內(nèi)加入固定時(shí)間的迭代,并要求在每個(gè)迭代結(jié)束時(shí)都能得到可交付狀態(tài)的產(chǎn)品——這里的可交付狀態(tài)是指軟件可以正常運(yùn)行,且已完成的軟件特性達(dá)到發(fā)布質(zhì)量標(biāo)準(zhǔn),而非可商業(yè)化發(fā)布。

一般來說,當(dāng)發(fā)布周期短到一定程度后,主干開發(fā)模式更加具有優(yōu)勢(shì),因?yàn)榉种ч_發(fā)模式的合并成本會(huì)成為城際快線發(fā)布模式的障礙。

如果發(fā)布周期等于或短于兩個(gè)星期,建議軟件團(tuán)隊(duì)毫不猶豫地改進(jìn)工作方式,轉(zhuǎn)向“主干開發(fā)模式”。

很多互聯(lián)網(wǎng)公司選擇城際快線模式,如2010年之前,F(xiàn)acebook主站就開始使用這種城際快線模式;2012年更是達(dá)到每個(gè)工作日定時(shí)發(fā)布兩次,其移動(dòng)端的發(fā)版節(jié)奏也從最初的項(xiàng)目制發(fā)布模式改為城際快線模式。

而google的Chrome PC版本也是選擇了城際快線模式 ,其Beta版本每周發(fā)布一次,而Stable版本每月發(fā)布一次。

在國(guó)內(nèi)公司中,2011年的百姓網(wǎng)也使用這種發(fā)布火車模式,每個(gè)工作日早上七點(diǎn)鐘更新其網(wǎng)站。

雖然項(xiàng)目制發(fā)布方式短期內(nèi)不會(huì)消失,但是,城際快線模式可以做為軟件交付團(tuán)隊(duì)能力的一種指示器。

參考文章:

喬梁 :持續(xù)交付2.0

標(biāo)點(diǎn)符:軟件開發(fā)中的火車模型發(fā)布模式

 

本文由 @非魚 翻譯發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!