三個(gè)主要誤區(qū)

  第一個(gè)是重視流程忽視人。敏捷宣言開(kāi)明宗義指出“人和溝通勝過(guò)過(guò)程與工具”。但是仍然有很多企業(yè)試圖通過(guò)創(chuàng)造一個(gè)完美的流程來(lái)實(shí)施敏捷。不可否認(rèn),合理的流程對(duì)于提高團(tuán)隊(duì)效率有一定的作用,但是企業(yè)真正要從敏捷改進(jìn)中獲益必須落實(shí)到人的改變上來(lái)。

  第二個(gè)是重視管理輕視工程。很多團(tuán)隊(duì)將敏捷等同于開(kāi)開(kāi)站會(huì)、做做迭代、搞搞回顧。到頭來(lái),一切流于形式。敏捷說(shuō)到底是對(duì)于軟件工藝性的認(rèn)識(shí)回歸,那么持續(xù)集成、自動(dòng)化測(cè)試、設(shè)計(jì)、重構(gòu)這些手藝是繞不開(kāi)的。不從這些根本的手藝上解決問(wèn)題,各種眼花繚亂的溝通手段實(shí)際上徒然增加了團(tuán)隊(duì)的成本。

  第三個(gè)是重視指標(biāo)輕視過(guò)程。很多團(tuán)隊(duì)特別是從CMM型組織轉(zhuǎn)向敏捷的團(tuán)隊(duì),熱衷于設(shè)計(jì)所謂的敏捷度量體系。度量應(yīng)該是幫助團(tuán)隊(duì)增強(qiáng)信心和持續(xù)改進(jìn),指標(biāo)不應(yīng)成為目的。我們要關(guān)心的不只是站在哪里,更應(yīng)關(guān)心我們將走向哪里。

  要解決這些問(wèn)題沒(méi)有任何靈丹妙藥,從來(lái)也不存在一個(gè)完美的、放諸四海而皆準(zhǔn)的流程。我們?cè)趲椭鞣N企業(yè)進(jìn)行敏捷流程改進(jìn)的過(guò)程中,總結(jié)了幾種改進(jìn)模式,這里跟大家分享一下。

  五種改進(jìn)模式

  跳躍:團(tuán)隊(duì)作為整體從一種實(shí)踐直接切換到另一個(gè)實(shí)踐方式上。

  有些實(shí)踐我們知道其目標(biāo),并且知道這種切換對(duì)團(tuán)隊(duì)的影響較小,或者不適于采用逐步推行的方案,我們采用跳躍的方式。

  例如,配置管理工具切換。某團(tuán)隊(duì)原來(lái)使用的配置管理工具是ClearCase,為了享受到SVN的原子提交、低成本分支等好處,我們往往采取跳躍的方式,即整個(gè)團(tuán)隊(duì)立刻從ClearCase切換到SVN上工作。這是因?yàn)榕渲霉芾淼那袚Q總的來(lái)說(shuō)對(duì)于團(tuán)隊(duì)的工作方式影響比較可控,而且使用簡(jiǎn)單。

  并行:團(tuán)隊(duì)中部分組織或個(gè)人使用原有實(shí)踐,而另一部分切換到另一個(gè)實(shí)踐方式。

  有些實(shí)踐知道其目標(biāo),但在整個(gè)團(tuán)隊(duì)推行可能會(huì)對(duì)工作方式造成較大影響,或者團(tuán)隊(duì)中的某些組織或個(gè)人不具備切換到新的實(shí)踐方式上的條件,我們采用并行的方式。

  例如,項(xiàng)目組持續(xù)集成。團(tuán)隊(duì)中某個(gè)項(xiàng)目組具備較好的持續(xù)集成基礎(chǔ),另一些項(xiàng)目組基礎(chǔ)較差。如果在整個(gè)團(tuán)隊(duì)推行持續(xù)集成,可能對(duì)團(tuán)隊(duì)產(chǎn)生較大的沖擊。而且持續(xù)集成的具體方案可能需要在一個(gè)項(xiàng)目組內(nèi)試驗(yàn)。這時(shí)候,先在一個(gè)項(xiàng)目組做起來(lái),然后推廣到其他的項(xiàng)目組。

  階石:為了達(dá)到一個(gè)長(zhǎng)遠(yuǎn)的目標(biāo),先實(shí)現(xiàn)一個(gè)較近的目標(biāo)。

  有些實(shí)踐有長(zhǎng)遠(yuǎn)的目標(biāo),但還看不清達(dá)成目標(biāo)需要的路徑,如果知道做某件事情一定有助于達(dá)成目標(biāo),可以先完成這件事情。例如,單元測(cè)試。有時(shí)候希望在某些團(tuán)隊(duì)中實(shí)施單元測(cè)試,但缺少合適的測(cè)試框架,那么在確定測(cè)試框架之前,實(shí)際上很難展開(kāi)后面的工作。這時(shí)可以先全力構(gòu)建這個(gè)測(cè)試框架。稱這種方式為階石。

  簡(jiǎn)化:為了達(dá)到一個(gè)長(zhǎng)遠(yuǎn)的目標(biāo),先實(shí)現(xiàn)一個(gè)較為容易實(shí)現(xiàn)的目標(biāo),但是這個(gè)目標(biāo)仍然能夠給我們帶來(lái)好處。

  有些實(shí)踐我們有一個(gè)長(zhǎng)遠(yuǎn)的目標(biāo),但是對(duì)于這個(gè)長(zhǎng)遠(yuǎn)的目標(biāo)還不太清楚,或者要達(dá)成這個(gè)長(zhǎng)遠(yuǎn)目標(biāo),要走的路還很長(zhǎng)。如果有些做法可以給我們帶來(lái)一些好處,雖然不如長(zhǎng)期目標(biāo)帶來(lái)的好處那么大,我們?nèi)匀豢梢韵茸銎饋?lái)。

  系統(tǒng)測(cè)試和低成本測(cè)試的拉通。系統(tǒng)測(cè)試和低成本測(cè)試?yán)ㄊ莻(gè)長(zhǎng)期而艱巨的任務(wù),比如可能需要良好的基礎(chǔ)設(shè)施的配合。但是我們可以做一些簡(jiǎn)單的事情來(lái)獲得相似的好處。

  暫停:暫不實(shí)施某個(gè)實(shí)踐。

  有些實(shí)踐,團(tuán)隊(duì)不具備實(shí)施條件,或者對(duì)團(tuán)隊(duì)的沖擊較大,可選擇暫不實(shí)施。例如TDD。實(shí)施TDD需要較高的條件。如果團(tuán)隊(duì)不具備這樣的條件,貿(mào)然推行難度非常大,這個(gè)時(shí)候常常選擇暫停。

  上面的5個(gè)模式所在維度并不相同。比如,并行是從組織的維度考慮的,而階石和簡(jiǎn)化是從目標(biāo)維度考慮。另外,在不同范圍內(nèi)看,同樣的實(shí)踐也可能屬于不同的模式,需注意模式的目的是為幫助參與者清晰把握問(wèn)題本質(zhì),認(rèn)識(shí)解決方案在時(shí)間和范圍上的局限性。所以把實(shí)踐與模式綁定的做法也不提倡。