敏捷開(kāi)發(fā)中常見(jiàn)的九大誤解
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
一、敏捷是“一個(gè)”過(guò)程 敏捷不是一個(gè)過(guò)程,是一類過(guò)程的統(tǒng)稱,它們有一個(gè)共性,就是符合敏捷價(jià)值觀,遵循敏捷的原則。 敏捷的價(jià)值觀如下: 個(gè)體和交互 勝過(guò) 過(guò)程和工具 可以工作的軟件 勝過(guò) 面面俱到的文檔 客戶合作 勝過(guò) 合同談判 響應(yīng)變化 勝過(guò) 遵循計(jì)劃 由價(jià)值觀引出的12條敏捷原則: 1、我們優(yōu)選先要做的是通過(guò)盡早的、持續(xù)的交付有價(jià)值的軟件來(lái)使客戶滿意。 2、即使到了開(kāi)發(fā)的后期,也歡迎改變需求。敏捷過(guò)程利用變化來(lái)為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。 3、經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好。 4、在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員必須天天都在一起工作。 5、圍繞被激勵(lì)起來(lái)的個(gè)體來(lái)構(gòu)建項(xiàng)目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。 6、在團(tuán)隊(duì)內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對(duì)面的交談。 7、工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn)。 8、敏捷過(guò)程提倡可持續(xù)的開(kāi)發(fā)速度。責(zé)任人、開(kāi)發(fā)者和用戶應(yīng)該能夠保持一個(gè)長(zhǎng)期的、恒定的開(kāi)發(fā)速度。 9、不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力。 10、簡(jiǎn)單——使未完成的工作最大化的藝術(shù)——是根本的。 11、最好的構(gòu)架、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。 12、每隔一定時(shí)間,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對(duì)自己的行為進(jìn)行調(diào)整。 建立敏捷聯(lián)盟的17位大師所創(chuàng)立的敏捷方法包括:極限編程,scrum,特征驅(qū)動(dòng)開(kāi)發(fā),動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法,自適應(yīng)軟件開(kāi)發(fā),水晶方法,實(shí)用編程方法。這些方法統(tǒng)稱為敏捷方法。 其實(shí)每個(gè)人都可以從敏捷宣言和原則出發(fā),明確問(wèn)題,找出一些解決方法,形成自己的過(guò)程。我覺(jué)得國(guó)內(nèi)的軟件環(huán)境這么復(fù)雜,程序員的自主精神又這么強(qiáng),敏捷方法應(yīng)該是在中國(guó)首先提出才對(duì),只是國(guó)人都有唯標(biāo)準(zhǔn)唯規(guī)范至上的心理定式,即使找出好辦法,也覺(jué)得不規(guī)范,沒(méi)有深入形成理論,無(wú)法提升高度,始終是跟著鬼子屁股后面走,我想這也是國(guó)外軟件行業(yè)不成熟的表現(xiàn)之一吧! 二、敏捷僅僅是一個(gè)軟件過(guò)程 如果僅僅從軟件過(guò)程的角度去認(rèn)識(shí)敏捷實(shí)施敏捷,效果不會(huì)太好。敏捷相對(duì)以前的軟件工程最大的革新之處在于把人的作用提高到了過(guò)程至上,正如敏捷宣言的第一條“個(gè)體和交互勝過(guò)過(guò)程和工具”所說(shuō)的。 涉及到人的問(wèn)題,就已經(jīng)不再是過(guò)程所能覆蓋的了,就到了企業(yè)管理的層面上了,包括企業(yè)的價(jià)值觀和文化。這也是敏捷在國(guó)內(nèi)實(shí)施的最大障礙: 1、把客戶當(dāng)作合作伙伴而不是對(duì)手,從客戶角度出發(fā)去想問(wèn)題,充分的跟客戶溝通,而不是出了問(wèn)題推諉責(zé)任。目標(biāo)是讓軟件實(shí)現(xiàn)客戶的價(jià)值,而不是收錢就完事兒。 2、把人的能動(dòng)性調(diào)動(dòng)起來(lái),給動(dòng)力而不是給壓力。 3、要實(shí)用而不是要規(guī)范。讓開(kāi)發(fā)人員理解并實(shí)施,體驗(yàn)到敏捷的好處,而不是盲目機(jī)械地實(shí)施規(guī)范。 沒(méi)有絕對(duì)的權(quán)威,每個(gè)人都有可取之處。 三、迭代就是敏捷,up屬于敏捷 看到這么多人都把up歸入敏捷,我都開(kāi)始懷疑是不是自己搞錯(cuò)了。但是在我的印象中: up是重型的過(guò)程,雖然引入了迭代,但是其原則和價(jià)值觀與敏捷是不同的。敏捷注重的是反饋,迭代周期盡量的短,重在客戶的參與,通過(guò)客戶的參與,獲取持續(xù)的反饋,不斷調(diào)整使整個(gè)項(xiàng)目走在正確的方向上。同時(shí)也給客戶一個(gè)感受和思考的機(jī)會(huì),因?yàn)閷?duì)于大多數(shù)客戶而言,目標(biāo)是明確的(不排除有些客戶目標(biāo)也不明確),但是具體怎么做,開(kāi)始時(shí)是沒(méi)有想法的,只有看到具體的東西的時(shí)候,才知道“噢,原來(lái)可以這樣,那我想把這里調(diào)整一下”。 四、敏捷是徹底革命的 敏捷,特別是xp,讓人有耳目一新的感覺(jué),覺(jué)得以前的所有軟件工程理論,設(shè)計(jì)方法都可以拋棄掉了,推翻一切,從頭再來(lái)。抱著這種想法實(shí)施敏捷,那就錯(cuò)了,敏捷不是“石頭里蹦出個(gè)孫大圣”,以前的軟件過(guò)程中也有敏捷的影子,只是沒(méi)有像敏捷一樣上升到價(jià)值觀和原則的高度,比如快速原型法。敏捷是在對(duì)已有的軟件過(guò)程方法的改進(jìn),拋棄的是傳統(tǒng)軟件工程低效的外表,以往的軟件過(guò)程中很多技巧都是很實(shí)用的。實(shí)施敏捷應(yīng)該以現(xiàn)有的軟件過(guò)程為基礎(chǔ),從敏捷宣言和原則出發(fā),利用敏捷的方法來(lái)改善過(guò)程。 五、敏捷是反文檔的 文檔只是為了達(dá)成目標(biāo)的一種手段,如果這種手段是低效的,那就換一種手段。可是完全拋棄了文檔,怎樣解決溝通的問(wèn)題?難道你想每次溝通都完全用手比劃,用嘴說(shuō),跟不同的人重復(fù)表述同樣的想法,那樣更是低效的。 應(yīng)該清楚文檔的本質(zhì)是把知識(shí)顯性化。在一個(gè)項(xiàng)目中存在很多需要溝通的知識(shí),知識(shí)具備兩種形態(tài),顯性的和隱性的,傳統(tǒng)的觀念是盡量把隱性知識(shí)顯性化,即文檔化,而忽略了這其中的代價(jià)(特別是更新同步文檔的代價(jià))。 因此,在實(shí)施敏捷的時(shí)候,需要在團(tuán)隊(duì)內(nèi)明確哪些知識(shí)是必須顯性的,這些知識(shí)可以通過(guò)文檔交流。哪些知識(shí)是可以隱性的,這些知識(shí)則完全可以通過(guò)口頭的方式進(jìn)行交流,以達(dá)到溝通的最佳效率。 文檔不是目的,有效溝通才是目的。 六、為了敏捷而敏捷 “嗯,敏捷這么好,我們也敏捷吧”,可能很多人會(huì)有這種想法。忘了以前是在哪兒看的大師采訪錄: q:“我們現(xiàn)有的過(guò)程很好,不知道怎么用敏捷改進(jìn)?” a:“既然很好,那就不要用敏捷”。 做什么事情都要有明確目標(biāo)的,敏捷雖好,得看你需不需要,能不能解決你現(xiàn)在頭疼的問(wèn)題,如果不是,那就不要給自己找麻煩了。 七、敏捷是cmm的反義詞 在一些討論中,很多人把cmm作為敏捷的反義詞,我覺(jué)得這不是很合適。cmm只是一種衡量軟件成熟度的標(biāo)準(zhǔn),并非過(guò)程,和敏捷不是一類概念。如果要給敏捷找一個(gè)反義詞,我覺(jué)得傳統(tǒng)的瀑布式開(kāi)發(fā)應(yīng)該更合適一些。 并且,我認(rèn)為,如果cmm還能繼續(xù)流行下去的話,應(yīng)該會(huì)有公司可以用敏捷改善的過(guò)程通過(guò)cmm認(rèn)證。 八、敏捷是自由的,無(wú)約束的 敏捷強(qiáng)調(diào)的是自組織團(tuán)隊(duì),發(fā)揮人的能動(dòng)性,以動(dòng)力代替壓力,讓人有絕對(duì)自由的錯(cuò)覺(jué)。但是應(yīng)該清楚,凡是都是要講究一個(gè)平衡,人也是兩面的,消極的一面和積極的一面同時(shí)并存,絕對(duì)的自由會(huì)放縱人消極的一面。敏捷并非是絕對(duì)自由,無(wú)約束的。作為管理者,有一個(gè)職責(zé),就是引導(dǎo)團(tuán)隊(duì)成員用自己積極的一面去壓制消極的一面,不能放任團(tuán)隊(duì)中出現(xiàn)搭便車的現(xiàn)象,否則將打擊整個(gè)團(tuán)隊(duì)的士氣。如果實(shí)在無(wú)效,那就只能將其排除出團(tuán)隊(duì)了,這個(gè)懲罰夠有約束力吧? 九、重做就是重構(gòu) 重做不等于重構(gòu),很多場(chǎng)合這兩個(gè)概念是混淆的。但是在敏捷中,重構(gòu)的一個(gè)特征是必須可控的。當(dāng)對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行大的調(diào)整時(shí),如果沒(méi)有測(cè)試驅(qū)動(dòng)輔助的話,那么可控性就會(huì)很差,這不能叫做重構(gòu)。 該文章在 2010/7/25 2:32:22 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |