從按版本發(fā)布走向按需求發(fā)布

在傳統(tǒng)企業(yè)應(yīng)用開(kāi)發(fā)中,大家都是按版本進(jìn)行發(fā)布

客戶意見(jiàn)收集 》形成需求文檔 》 需求評(píng)審 》 系統(tǒng)設(shè)計(jì) 》 開(kāi)發(fā) 》 測(cè)試 》發(fā)布 》 客戶驗(yàn)收。。。第二輪。。。第三輪;
在這種背景下,一般版本的發(fā)布時(shí)間是固定死的,比如簽合同的時(shí)候就約定了幾月幾日進(jìn)行項(xiàng)目的上線。而且這個(gè)時(shí)間基本都是很趕的,合同一簽訂下來(lái),就意味著開(kāi)始沒(méi)完沒(méi)了的加班,大家天天都是忙得天昏地暗的,誰(shuí)還管發(fā)布幾個(gè)中間版本,做幾個(gè)里程碑。。。

而做互聯(lián)網(wǎng)產(chǎn)品,天生就要求按需求發(fā)布

做產(chǎn)品開(kāi)發(fā)的在版本發(fā)布方面的自主性會(huì)好一些,畢竟來(lái)自公司內(nèi)部的壓力比來(lái)自客戶的壓力還是要小很多的。然而對(duì)版本更新的頻次要求就高很多,甚至是沒(méi)有上限的,道理很簡(jiǎn)單,誰(shuí)先最先面向市場(chǎng)推出了一個(gè)新功能,誰(shuí)就是整個(gè)市場(chǎng)的No1,誰(shuí)就在這個(gè)功能上深深的打上自己的烙印。從各大公司的情況看,MIUI是每周一次(黑色星期五);同程每周四發(fā)布;亞馬遜是每天幾十次版本更新;(這里的對(duì)比數(shù)據(jù)并不是說(shuō)明亞馬遜比小米牛逼幾個(gè)檔次,這里的情況是由產(chǎn)品特點(diǎn)決定的)

一提起按需發(fā)布,各位開(kāi)發(fā)團(tuán)隊(duì)的老大們首先要面對(duì)的至少有以下方面的挑戰(zhàn):

  1. 測(cè)試壓力會(huì)很大:這個(gè)應(yīng)該是我們還是在按版本發(fā)布的主要原因,每一次需求的上線,意味著至少要經(jīng)歷開(kāi)發(fā)自測(cè)、測(cè)試人員測(cè)試環(huán)境測(cè)試、業(yè)務(wù)人員開(kāi)發(fā)環(huán)境驗(yàn)收三個(gè)階段,而其中“測(cè)試人員測(cè)試環(huán)境測(cè)試”這個(gè)步驟需要考慮當(dāng)前代碼的影響范圍,范圍內(nèi)的進(jìn)行深入測(cè)試,范圍外的也需要進(jìn)行冒煙測(cè)試。這個(gè)時(shí)間成本是很大的。
  2. 頻繁部署耗時(shí)、易出錯(cuò):開(kāi)發(fā)自測(cè)環(huán)境的部署、測(cè)試環(huán)境的部署、生產(chǎn)環(huán)境的部署,每一次部署都需要時(shí)間,都可能導(dǎo)致生產(chǎn)故障。出的故障次數(shù)多了,大家潛意識(shí)就想離部署遠(yuǎn)一點(diǎn);
  3. 升級(jí)影響正常業(yè)務(wù)運(yùn)行:線上的頻繁啟停可能會(huì)臨時(shí)性的中斷業(yè)務(wù)訪問(wèn)。

但是帶來(lái)的好處更是意味深長(zhǎng):

  1. 搶占市場(chǎng)先機(jī):盡可能快速的響應(yīng)市場(chǎng)需求,對(duì)搶占市場(chǎng)具有戰(zhàn)略意義;快速的更新意味著可以第一時(shí)間得到用戶的反饋,并進(jìn)行優(yōu)化后快速推出,形成良性循環(huán);
  2. 能充分發(fā)揮研發(fā)的價(jià)值:研發(fā)出來(lái)的東西是丟倉(cāng)庫(kù)一段時(shí)間,還是馬上就賣(mài)出去,這個(gè)意義是大不一樣的;這還涉及到丟倉(cāng)庫(kù)一段時(shí)間后,開(kāi)發(fā)人員自己都忘記當(dāng)初的需求和設(shè)計(jì)了,一旦出現(xiàn)問(wèn)題,開(kāi)發(fā)人員需要苦苦追憶過(guò)往,個(gè)中煩躁,誰(shuí)經(jīng)歷誰(shuí)知道。。。
  3. 降低團(tuán)隊(duì)管理的復(fù)雜度:這里的降低是相對(duì)于按照版本發(fā)布來(lái)說(shuō)的,每一次版本的開(kāi)發(fā)計(jì)劃安排,都意味著需要平衡不同開(kāi)發(fā)人員的進(jìn)度,因?yàn)椴煌_(kāi)發(fā)人員的經(jīng)驗(yàn)、解決難題的能力、學(xué)習(xí)的能力等都是不一樣的,導(dǎo)致任務(wù)的安排很難面面俱到。任務(wù)安排后,同樣要每天去了解大家的開(kāi)發(fā)進(jìn)度,確認(rèn)是不是有人的計(jì)劃延遲了,會(huì)不會(huì)導(dǎo)致A程序員等B程序員的情況發(fā)生等。在測(cè)試階段,為了保證改bug的時(shí)間,又不能放新的需求進(jìn)來(lái),部分bug少的程序員就會(huì)處于waiting狀態(tài)。當(dāng)然以上三個(gè)階段,在真實(shí)情況下,都會(huì)協(xié)調(diào)程序員之間相互協(xié)助,但這個(gè)協(xié)調(diào)本身就是導(dǎo)致管理復(fù)雜的原因之一。
  4. 降低開(kāi)發(fā)團(tuán)隊(duì)管理的技術(shù)門(mén)檻:國(guó)內(nèi)的開(kāi)發(fā)團(tuán)隊(duì)管理者(或者是項(xiàng)目經(jīng)理)基本都是開(kāi)發(fā)出身,而且是屬于學(xué)而優(yōu)則仕的那種。原因也很簡(jiǎn)單,非這樣的人沒(méi)法把控項(xiàng)目的進(jìn)度,因?yàn)殚_(kāi)發(fā)任務(wù)安排、工時(shí)評(píng)估、協(xié)調(diào)資源解決技術(shù)難題、面向需求提出技術(shù)解決方案等,都需要深厚的技術(shù)根底。但是按需求發(fā)布可以弱化這方面的要求,只要有一定開(kāi)發(fā)經(jīng)驗(yàn)、擅長(zhǎng)溝通協(xié)調(diào)的人即可擔(dān)任管理工作。技術(shù)方案方面的事情可以以“專(zhuān)家評(píng)審會(huì)”的形式來(lái)解決。
  5. 打造面向創(chuàng)造價(jià)值的團(tuán)隊(duì)文化:作為開(kāi)發(fā)人員,誰(shuí)也不想整天被領(lǐng)導(dǎo)站在后面監(jiān)督,畢竟大家做的是創(chuàng)造性的工作,天天被人監(jiān)督的話,連起碼的尊重都得不到,剛?cè)肼毜男』镒舆€能操兩年,經(jīng)驗(yàn)豐富的老鳥(niǎo)們呢?面向需求的發(fā)布,可以把大家的關(guān)注點(diǎn)都集中到完成了多少需求的開(kāi)發(fā)、以及該需求產(chǎn)生了多少價(jià)值上來(lái),團(tuán)隊(duì)的領(lǐng)導(dǎo)者也和大家一樣是一個(gè)需求的開(kāi)發(fā)者,而不僅僅是一個(gè)監(jiān)督者。至于團(tuán)隊(duì)的管理者,那更是為大家服務(wù)的,團(tuán)隊(duì)內(nèi)部并沒(méi)有對(duì)立點(diǎn)。共同的價(jià)值取向就會(huì)把大家緊緊團(tuán)結(jié)在一條船上。

既然好處有這么多,而且都有著不可抗拒的誘惑力,那就只能盡力去克服困難了:

  1. 測(cè)試壓力大:
  • 最終極的解決辦法肯定是提高自動(dòng)化測(cè)試覆蓋的范圍,減少人工測(cè)試的工作量。各大互聯(lián)網(wǎng)公司的流水線開(kāi)發(fā)為什么這么牛B,自動(dòng)化測(cè)試應(yīng)該說(shuō)是首功。
  • 但是小公司沒(méi)法一下就打造這么完善的自動(dòng)化測(cè)試體系出來(lái),只能說(shuō)前期先用人力頂上,這部分的人力成本投入相對(duì)廉價(jià),但是可以提高開(kāi)發(fā)的輸出,還是比較合算的。另一方面,逐漸提高自動(dòng)化測(cè)試的覆蓋范圍。
  1. 頻繁部署耗時(shí)、易出錯(cuò):
  • 規(guī)范代碼管理,按需求開(kāi)分支,專(zhuān)人合并,提高代碼質(zhì)量;
  • 增量發(fā)布,只有增量發(fā)布,才能減少影響范圍,減少線上業(yè)務(wù)驗(yàn)收的范圍,當(dāng)然就會(huì)減少出錯(cuò)的可能性;
  • 搭建自動(dòng)發(fā)布平臺(tái),增量發(fā)布會(huì)導(dǎo)致發(fā)布更復(fù)雜,自動(dòng)發(fā)布平臺(tái)能大大減少這部分工作。
  1. 升級(jí)影響業(yè)務(wù):
  • 這個(gè)問(wèn)題其實(shí)在引入集群、分布式session后已經(jīng)影響很小的,只有在數(shù)據(jù)庫(kù)表發(fā)生變更時(shí)必須停機(jī)發(fā)布以外,其他情況都可以做到用戶無(wú)感知;
  • 接口做版本,接口有變化需求時(shí),升級(jí)版本,以免影響調(diào)用者。

總結(jié):只要有了明確的方向,每天進(jìn)步一點(diǎn),目標(biāo)并不是那么遙不可及!

各位開(kāi)發(fā)團(tuán)隊(duì)的帶頭大哥們,你們也不想整天盯著小伙子們有沒(méi)有在賣(mài)力干活,整天揪心版本能不能按時(shí)發(fā)布,整天干著這些毫無(wú)技術(shù)含量的事吧;你們也想和大家一起去創(chuàng)造實(shí)實(shí)在在價(jià)值(做開(kāi)發(fā)),也想研究一下最新最前沿的技術(shù)(提升技能),也想消除和團(tuán)隊(duì)的對(duì)立點(diǎn)融為一個(gè)整體吧!那還等什么,按需求發(fā)布走起來(lái)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,558評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,992評(píng)論 19 139
  • 坐公交見(jiàn)一猥瑣大叔,不停摸一女孩屁股。我實(shí)在是看不下去了,走上前也摸了一下。
    棉花兔閱讀 342評(píng)論 0 5
  • 少時(shí)趕路 看桃花是桃花 門(mén)前一枝 深深,淺淺 一片,一片,一片 一片 沒(méi)有一片是一樣 少年笑的癡 落在肩頭 小心拂...
    老少女哪吒閱讀 238評(píng)論 0 0
  • 我喜歡寫(xiě)小說(shuō),從小就喜歡。 第一次接觸簡(jiǎn)書(shū)還是從讀書(shū)群里了解到,說(shuō)既是電腦可以寫(xiě)也是手機(jī)可以創(chuàng)作。手機(jī)寫(xiě)小說(shuō)非常符...
    青青籬笆竹閱讀 202評(píng)論 3 3