無論是在軟件或者治理 行業(yè)敏捷開發(fā)已成為眾多高效開發(fā)團(tuán)隊的制勝之道。敏捷開發(fā)可以說是在開發(fā)中面臨迅速變化需求中的一種快速開發(fā)能力。當(dāng)然,敏捷不僅是簡單的快速,而是在開發(fā)過程中短周期的不斷改進(jìn)、提高和調(diào)整;當(dāng)然也不僅僅是一個版本只做幾個功能,而主要的是突出重點(diǎn)。
在國外軟件企業(yè)中,幾乎將近半企業(yè)是已采納敏捷方法進(jìn)行開發(fā),隨著近年來受軟件外包和外企的帶動,敏捷開發(fā)在中國也出現(xiàn)了日漸普及的態(tài)勢,如騰訊,IBM等等內(nèi)部幾乎所有的開發(fā)團(tuán)隊都在實(shí)施敏捷方法。敏捷開發(fā)的流行絕非偶然,因此,51CTO記者采訪了AdMaster(精碩科技)首席布道師程顯峰,講解了敏捷開發(fā)在團(tuán)隊中的實(shí)踐以及進(jìn)展現(xiàn)狀。
以下是相關(guān)的采訪實(shí)錄:
敏捷在項(xiàng)目中的實(shí)踐
記者:有些人認(rèn)為敏捷開發(fā)并不適用于水平一般的程序員或團(tuán)隊,您是怎么認(rèn)為的?
程顯峰:至于敏捷開發(fā)是不是用這種程序團(tuán)隊,特別適合訓(xùn)練有素的團(tuán)隊,反過來說,如果不是一個訓(xùn)練有素的團(tuán)隊,實(shí)施傳統(tǒng)軟件工程也會失敗,所以我覺得基本的要求是跟原來的一些要求基本一致的,包括溝通能力、協(xié)調(diào)能力,對于項(xiàng)目變動的操縱 能力都是一樣的,包括傳統(tǒng)軟件開發(fā)當(dāng)中講的項(xiàng)目可控,整個項(xiàng)目可復(fù)制,同樣的資源配比還可以復(fù)制這個項(xiàng)目,如果原來的項(xiàng)目這些做得比較好的話實(shí)施敏捷項(xiàng)目就會容易一些。
記者:很多人為了編寫易變更的代碼,在采納敏捷時,拋棄許多習(xí)慣用法,由你的經(jīng)驗(yàn)出發(fā),如何去看待這個問題?
程顯峰:從我在實(shí)施的過程中第一點(diǎn)需要強(qiáng)調(diào)的就是大部分跟傳統(tǒng)的軟件工程還是一樣的,現(xiàn)在異化的部分過于被強(qiáng)調(diào)了,搞得大家以為是完全新的、不一樣的東西,傳統(tǒng)軟件包括需求治理 、進(jìn)入操縱 、質(zhì)量治理 、測試體系,這些東西在敏捷里也都要體現(xiàn)、都要實(shí)施,而且要求可能還會更高,并不是把一些傳統(tǒng)的東西拋棄掉了,既沒有進(jìn)入治理 又沒有版本操縱 ,幾個人一商量就定了敏捷,這是完全的一種誤解,而且還是要好的工程基礎(chǔ)才能實(shí)施。
記者:所以傳統(tǒng)的方法對于程序員的要求還是比較高的吧?敏捷這樣的功能經(jīng)過修改之后就可以推出一個小的版本?
程顯峰:并不是說推出小版本就要降低難度,這是沒有因果關(guān)系的,小的版本即使推送上去,如何保證這個小的版本是對的?你也需要大版本的方法,比如軟件測試、進(jìn)入操縱 、需求治理 ,這些東西都得有,你采納操縱 好它,雖然你推得比較快,看上去可能是一個一個的,如果你要是推的沒有章法的話一樣也是亂套的,不是你想要的東西,也會造成大量的浪費(fèi),我是這么覺得的。對于一個失敗的項(xiàng)目就要說出失敗的原因,這才是解決失敗項(xiàng)目的辦法,敏捷的方法不是,這個邏輯就是有問題的,我覺得這個沒什么好說的。
記者:對于一個失敗的軟件項(xiàng)目來說,您認(rèn)為敏捷方法是它的救星嗎?
程顯峰:其實(shí)我覺得敏捷的方法不是任何失敗項(xiàng)目的救星,這是肯定的。至于失敗這個事情,看上去可能是分工的原因,深層次可能是不交流、不溝通的原因。敏捷比較注重強(qiáng)調(diào)溝通互動這些方面,它是有強(qiáng)調(diào)這些東西,如果你的問題恰巧是由于不溝通導(dǎo)致的,采納了敏捷的方法可能會有極大的改善,但也非常取決于實(shí)施的人和分析的效果。好多人說敏捷就是一個筐,什么東西都可以往里面扔,實(shí)際上也確實(shí)有點(diǎn)這個樣子。
我覺得敏捷的方法更多的是注重發(fā)現(xiàn)問題的框架,就是能讓你更快地發(fā)現(xiàn)問題、暴露問題。至于怎么解決問題,原來能解決的就能解決,要是原來解決不掉,誰也幫不了你。如果原來你有溝通問題,但是很長時間才能暴露出來,這個東西能讓你在短時間內(nèi)暴露出來,那么就有助于解決這個問題。很多人為了編寫易變更代碼采納敏捷。
記者:想要做到敏捷開發(fā),每個團(tuán)隊都要經(jīng)歷這樣一個轉(zhuǎn)型期,那么在轉(zhuǎn)型期還需要每個團(tuán)隊根據(jù)自身的不同,找出合理有效的解決方法。你們團(tuán)隊的是如何來解決的?
程顯峰:每個團(tuán)隊都要經(jīng)歷一個轉(zhuǎn)型期,我是傾向于比較和氣 地對團(tuán)隊進(jìn)行改進(jìn),實(shí)施的東西盡量不要讓團(tuán)隊有一個明顯的轉(zhuǎn)型期,比如版本操縱 ,原來的版本操縱 提交的力度、上線的流程就是這樣,我會給大家介紹一個新的系統(tǒng),但是并不會太影響大家的工作,適應(yīng)起來又很快,這樣的改進(jìn)效果是比較立竿見影的,而且影響又是很小的,我特別喜歡的改進(jìn)是這樣的,這種改進(jìn)不是間或一次才會用到的,我特別喜歡這種改進(jìn),就是你天天都會用到的,我特別喜歡那種天天都是這么調(diào),但是每天都能省一分鐘的。
大家可能都覺得敏捷特別奇妙 ,每天能省百分之二十的時間,現(xiàn)在我還沒發(fā)現(xiàn)這種現(xiàn)象,我不喜歡這種東西,如果不是特別想省百分之二十的時間的話就不會讓大家經(jīng)歷一個轉(zhuǎn)型期,比如你告訴大家一個技巧,每天能省兩分鐘,這種東西大家天天用的話實(shí)際積存 下來的效果才是比較明顯的,你要是教給大家一個方法,比如能省二十分鐘,實(shí)際上這種方法看上去是非常美麗,但它不是什么場景都能用得到,所以我就不太喜歡這樣的方法?,F(xiàn)在有一部分也不用敏捷,我也不太情愿 教那個部分,就是每天早上例會的時候站在那里說一通。我也跟他們講過,他們有的話可以,沒有也OK,有些東西我的要求就比較死,比如上線的流程、可控性,我在這個方面的要求就比較死,開不開會對于我的項(xiàng)目沒有什么影響,但是上線的流程就不一樣,我要往回退的話就要花成本。
對于小的團(tuán)隊來講真的是可有可無的,因?yàn)閳F(tuán)隊的人都坐在一起工作,未必需要一個站到板子上的形式?,F(xiàn)在有人把形式看得很重,本來例會是很簡單的,五分鐘就開完了,但是吵起來了,開不完,因?yàn)橐话愣际情_早會,吵完以后心情就不好,所以效率就下來了,這也是很正常的,但是你不要想著美麗的東西,我對美麗的東西感覺都不有用 。
記者:會不會因?yàn)椴怀尺@個架把錯誤帶到真正開發(fā)的過程中?
程顯峰:會,所以我們要讓在實(shí)際的工作當(dāng)中發(fā)揮,其實(shí)例會也不是吵架的會,還有很多的會可以發(fā)現(xiàn)這個問題,比如通過Review,可以有各種各樣的方法去發(fā)現(xiàn),不用拘泥于這種形式上的東西。其實(shí)最難改變的往往是那些小的習(xí)慣,比如他就情愿 用這個手指頭去敲鍵盤,但是這可能會影響他的效率,他不情愿 改。這種習(xí)慣的話改的阻力反而比較小,你讓他去開個例會他覺得耽誤時間,但是要讓他改這個的話他可能會改。你想他要敲多少?天天可能都要去敲,這種感覺可能是持續(xù)的。
記者:這種其實(shí)是屬于比較個性化的調(diào)整,每個人的使用習(xí)慣不一樣,有些人可能喜歡用這個手按著,有些人喜歡用那個手按著,你要主動發(fā)現(xiàn)各個人在工作當(dāng)中需要調(diào)整的地方?
程顯峰:我一致認(rèn)為團(tuán)隊就是一個消滅 個性的過程,而且這一點(diǎn)我是非常講究的,包括編輯器的使用習(xí)慣和配色都有強(qiáng)烈要求,不像別的看上去那么自由,坐在哪里無所謂,但是你用電腦的方式必須是我規(guī)定好的。沒有一個共同基礎(chǔ)的團(tuán)隊根本就不叫有團(tuán)隊,總有一些東西是有共同基礎(chǔ)的,而且一些高效的團(tuán)隊很可能所有的東西都是共同基礎(chǔ),就像特種兵出去打仗,一個手勢就得去殺人,你還能問這個是什么意思?就像我們用別人的電腦,或者在團(tuán)隊當(dāng)中用其他人的電腦,那些配色習(xí)慣都是一樣的,我們溝通交流起來就會非常容易。
現(xiàn)在新人如果不配色,直接就卡掉,新人培訓(xùn)就不合格,所以必須要有配色,包括快捷鍵的使用,不能人家給你一套代碼你還慢吞吞的,這會非常影響別人的心情。因?yàn)橛行┖鲇茙熖焯於既ズ鲇聘鞣N敏捷方法,但又不注重工程實(shí)踐,不注重觀察細(xì)節(jié),所以就做不到。他們不會注重這種實(shí)踐,比如咱倆是木匠,我天天使完的刀子隨手一扔,天天你給我收拾,你也不情愿 ,雖然我是大牌,但是你也不情愿 ,這種工作才是能省很多時間的,你說好我也說好,大家都用一個工具箱,這樣才能省下很多時間。我就覺得能省時間的話,就是在任何層面上都是節(jié)約和幸免浪費(fèi)的表現(xiàn),我是這么覺得。