一耙饰、敏捷的原則:
除了敏捷宣言之外挠阁,宣言的發(fā)起者還為敏捷方法提供了12條指導(dǎo)原則
- 1踢故、我們的最高目標(biāo)是通過盡早和持續(xù)地交付有價值的軟件/產(chǎn)品來滿足客戶。
- 2七冲、即使在項目開發(fā)的后期痛倚,仍歡迎對需求提出變更。敏捷過程通過擁抱變化澜躺,幫助客戶創(chuàng)造競爭優(yōu)勢蝉稳。
- 3、要不斷交付可用的軟件掘鄙,周期從幾周到幾個月不等耘戚,且越短越好。
- 4操漠、在項目過程中收津,業(yè)務(wù)人員與開發(fā)人員要每天在一起工作
- 5、要善于激勵項目人員,給他們所需要的環(huán)境和支持撞秋,并相信他們能夠完成任務(wù)
- 6长捧、團(tuán)隊內(nèi)部和各個團(tuán)隊之間,最有效的溝通方法是面對面的溝通吻贿。
- 7唆姐、可工作的軟件是衡量進(jìn)度的首要指標(biāo)
- 8、敏捷過程提倡可持續(xù)的發(fā)展廓八。項目方奉芦、開發(fā)人員和用戶應(yīng)該能夠保持恒久、穩(wěn)定的進(jìn)展速度剧蹂。
- 9声功、對技術(shù)卓越和好的設(shè)計的持續(xù)關(guān)注有助于增強敏捷性。
- 10宠叼、盡量做到簡介先巴、盡最大可能減少不必要的工作。這是一門藝術(shù)冒冬。
- 11伸蚯、最佳的架構(gòu)、需求和設(shè)計出自自組織團(tuán)隊简烤。
- 12剂邮、團(tuán)隊要定期回顧和反省如何能夠做到更有效,并相應(yīng)地調(diào)整團(tuán)隊的行為
二横侦、敏捷的原則的解讀
(一)挥萌、我們的最高目標(biāo)是通過盡早和持續(xù)地交付有價值的軟件來滿足客戶
- 第一點 是要滿足客戶需求。如果我們只創(chuàng)造了完美的項目計劃和文檔來讓公司的項目管理辦公室(PMO)或者質(zhì)量保證工程師(QA)滿意枉侧,那么我們就是失敗的引瀑。我們關(guān)注的焦點應(yīng)該是客戶,客戶滿意是衡量項目成功的關(guān)鍵因素榨馁。
- 第二點 是要盡早和持續(xù)交付憨栽。我們必須讓我們的項目和項目團(tuán)隊盡早交付及頻繁交付,鼓勵和支持團(tuán)隊成員認(rèn)同這個觀點翼虫。早起發(fā)現(xiàn)錯誤會有足夠的時間去修正屑柔,修正的成本也是最低的。
- 第三點 是要交付有價值的軟件蛙讥,而不是未完成的工作產(chǎn)品锯蛀、工作分解結(jié)構(gòu)(WBS)術(shù)語、文檔或者項目計劃次慢。應(yīng)該有具有目標(biāo)驅(qū)動旁涤,對軟件項目而言翔曲,目標(biāo)就是可工作的軟件;對于其他類型的項目而言劈愚,目標(biāo)是產(chǎn)出的產(chǎn)品和服務(wù)或者成果瞳遍。
(二) 即使在項目開發(fā)的后期,仍歡迎對需求提出變更菌羽。敏捷過程通過擁抱變化掠械,幫助客戶創(chuàng)造競爭優(yōu)勢。
如果是為了交付更好的成果和更高優(yōu)先級的產(chǎn)品注祖,那么變更對項目就是好事猾蒂。對于傳統(tǒng)項目管理而言,變通通常被認(rèn)為是負(fù)面的是晨,這意味著項目范圍蔓延和偏離了項目的計劃肚菠,需要引發(fā)變更成本。所以傳統(tǒng)項目中變更控制流程非常嚴(yán)格罩缴,只有最高優(yōu)先級的更變可以被批準(zhǔn)蚊逢。在傳統(tǒng)項目中,項目團(tuán)隊大量的時間和精力都用在記錄和管理變更請求上箫章。
在軟件項目或者其他類型的有高變更比率的項目而言烙荷,嚴(yán)格的變更管理流程會帶來很多問題。相比而言檬寂,敏捷項目管理允許變更的發(fā)生终抽,比如極限變成(XP)提倡"擁抱變化"。敏捷使用輕便焰薄、高可視化的方法來處理待辦事項的優(yōu)先級排序的變更拿诸。
高效處理變更可以幫助項目團(tuán)隊把更多的時間投入在產(chǎn)品開發(fā)商,而不是處理變更商塞茅。敏捷方法就是利用易理解、高可視的方法來處理變更季率,使項目更加靈活野瘦。
(三) 要不斷交付可用的軟件,周期從幾周到幾個月不等飒泻,且越短越好鞭光。
雖然我們倡導(dǎo)越早反饋越有價值,但是每個人都會要求完美泞遗,把工作長時間抓在受傷反而會適得其反惰许。最好的方式是盡早并且要經(jīng)常得到對工作產(chǎn)品的反饋,以避免在錯誤的道路上越走越遠(yuǎn)史辙。
本條準(zhǔn)則重點強調(diào)了將工作產(chǎn)品投入到測試環(huán)境從而獲得反饋汹买。頻繁測試和反饋對敏捷項目非常重要佩伤,團(tuán)隊需要根據(jù)已完成的產(chǎn)品反饋來確定如何繼續(xù)。當(dāng)然晦毙,反饋中也會存在變更的要求生巡。
短時間的交付有利于團(tuán)隊和業(yè)務(wù)人員之間的互動。頻繁的交付使得項目團(tuán)隊可以得到更多的商業(yè)機(jī)會和反饋见妒。通常在演示會上孤荣,團(tuán)隊會得業(yè)務(wù)優(yōu)先級高的變更請求。這都是有價值的须揣。
(四) 在項目過程中盐股,業(yè)務(wù)人員與開發(fā)人員要每天在一起工作
頻繁的演示是業(yè)務(wù)代表和開發(fā)人員在項目共同工作的一個很好的切入點。在實際工作中耻卡,開發(fā)人員每日和業(yè)務(wù)代表采用面對面的溝通往往比較困難遂庄,但是值得去推動。面對面的交流可以更好的觀察肢體語言劲赠,相比而言涛目,文檔、電子郵件或者打電話都不能有效地傳遞信息凛澎。
每天和業(yè)務(wù)代表共同工作霹肝,開發(fā)團(tuán)隊對業(yè)務(wù)的學(xué)習(xí)程度和速度都遠(yuǎn)超在需求收集會議中對業(yè)務(wù)的理解。因此塑煎,開發(fā)團(tuán)隊可以提出多種有價值的解決方案來代替直接的業(yè)務(wù)申請沫换。業(yè)務(wù)代表也可以學(xué)習(xí)到那些類型的解決方案或成本高或者開發(fā)速度慢,那些功能成本低最铁,進(jìn)而通過反饋來調(diào)整需求讯赏。
如果業(yè)務(wù)代表和開發(fā)團(tuán)隊不能每日在一起工作,那么也應(yīng)該盡量將兩個工作小組安排在一起冷尉,沒兩天或者頻繁的互動參與工作漱挎。有些團(tuán)隊使用"代理客戶"(PO或者BA有時候就會成為代理客戶),將"代理客戶"作為商業(yè)代表的替身雀哨。
(五) 要善于激勵項目人員磕谅,給他們所需要的環(huán)境和支持,并相信他們能夠完成任務(wù)
正如軟件估算模型性成本模型(COCOMO)所顯示的雾棺,好的團(tuán)隊成員和好的流程工具膊夹,這兩個因素影響之間的比例關(guān)系是10:1。這意味著員工對一個項目能否成功會起到更重要的作用捌浩,而不是工具和流程放刨。
顯示中,我們雖然不能確保每個團(tuán)隊都是被精挑細(xì)選出來的理想組合尸饺,就像中國跳水團(tuán)隊——夢之隊进统,但是我們可以嘗試去激發(fā)團(tuán)隊成員助币,讓他們成為一個可以自我驅(qū)動的理想團(tuán)隊。自組織團(tuán)隊作為項目的一個重要因素麻昼,一旦員工開始自組織和計劃工作奠支,其工作會更加高效。敏捷方法主張將團(tuán)隊從微觀管理和甘特圖中的任務(wù)式管理中脫離出來抚芦,聚焦工作技巧和團(tuán)隊協(xié)作從而提高生產(chǎn)率倍谜。
知識性項目也包含有特殊經(jīng)驗和技能的成員。如果開發(fā)團(tuán)隊可以更好地做出日常決定以及處理好計劃的工作叉抡,那么項目團(tuán)隊中每個成員都會是專家尔崔,可以為項目的成功予以支持。
(六) 團(tuán)隊內(nèi)部和各個團(tuán)隊之間褥民,最有效的溝通方法是面對面的溝通季春。
寫文檔可以很好地做記錄,但是速度緩慢會造成高成本消返。面對面的溝通可以快速傳達(dá)大量的信息载弄,包括表情和肢體語言。梅拉賓法則曾經(jīng)提出:“在信息溝通中撵颊,除了語言的表達(dá)方式外宇攻,信息還可以許多方式表達(dá)。說話的內(nèi)容盡占用7%倡勇,語音語調(diào)占38%逞刷,肢體語言占55%”。
在面對面的會談中妻熊,問題可以立刻得到解決夸浅,而不是被暫時擱置或者過一段時間再被反饋。但是面對面會談不能用于所有的溝通場所,是提倡盡量遵循。隨著團(tuán)隊規(guī)模的擴(kuò)大,面對面的溝通很難實現(xiàn),此時我們就需要引入適當(dāng)?shù)奈臋n要求唉工。
(七) 可工作的軟件是衡量進(jìn)度的首要指標(biāo)
首先,要將可工作的軟件作為項目的關(guān)注目標(biāo)芥被,努力將創(chuàng)建文檔等活動作為支持目標(biāo)的手段而不是首要任務(wù)烂斋。如果產(chǎn)品不能工作,就不能被認(rèn)為已完成了深啤。強調(diào)"可工作"的軟件是為了提醒團(tuán)隊功能特性只有被接受才算完成拗馒。項目是以結(jié)果為導(dǎo)向的,中間過程的可交付成果(比如文檔和部分完成的工作)都不會得到外部的認(rèn)可溯街,被客戶使用的產(chǎn)品才是項目的關(guān)注點
(八) 敏捷過程提倡可持續(xù)的發(fā)展诱桂。項目方洋丐、開發(fā)人員和用戶應(yīng)該能夠保持恒久、穩(wěn)定的進(jìn)展速度挥等。
一些快速應(yīng)用開發(fā)技術(shù)并非已達(dá)到可持續(xù)開發(fā)的水平友绝,很可能會由于工作時間過長而導(dǎo)致工作人員過度疲勞,從而造成不必要的錯誤肝劲。針對周期長且緊張的開發(fā)階段迁客,敏捷方法認(rèn)為應(yīng)保持穩(wěn)定的進(jìn)展速度,其價值在于允許團(tuán)隊成員維持工作和生活的平衡辞槐≈朗可持續(xù)的速度不僅對團(tuán)隊有好處,也會對整個組織帶來益處榄檬。過程的工作時間會導(dǎo)致員工辭職卜范,組織也會失去很多資源。重新雇傭和整合新的成員會是一個緩慢且高成本的過程鹿榜。
因此海雪,保持恒定的開發(fā)速度可以創(chuàng)造一個更加和諧、高效的團(tuán)隊舱殿,較小的壓力會提高工作效率奥裸、促進(jìn)團(tuán)隊之間的協(xié)作。
(九) 對技術(shù)卓越和好的設(shè)計的持續(xù)關(guān)注有助于增強敏捷性怀薛。
當(dāng)我們想開發(fā)團(tuán)隊可以努力工作并且交付大量有價值的產(chǎn)品時刺彩,我們也必須注意保持設(shè)計的清晰、高效和變更的靈活性枝恋。精益求精的技術(shù)和良好的設(shè)計會使產(chǎn)品或開發(fā)團(tuán)隊更好地理解與更新設(shè)計创倔。
在軟件世界中,一旦編程的基礎(chǔ)紊亂焚碌,組織將喪失對變更響應(yīng)的能力畦攘,失去其敏捷性。因此十电,我們需要給開發(fā)團(tuán)隊足夠的時間進(jìn)行重構(gòu)知押,重構(gòu)使編程更加穩(wěn)定從而維持更長的時間。
(十) 盡量做到簡潔鹃骂、盡最大可能減少不必要的工作台盯。這是一門藝術(shù)。
在軟件行業(yè)畏线,多達(dá)60%的功能很少被使用或者從來沒有被使用過静盅。因為很多功能并沒有被使用,而且復(fù)雜的系統(tǒng)會隱匿很多不確定性寝殴,所以敏捷方法專注于簡潔蒿叠,只完成必要的元素明垢。
復(fù)雜的項目耗時長,暴露的風(fēng)險相對比較多市咽,從而帶來更多潛在的失敗風(fēng)險痊银。因此,敏捷方法尋求"允許工作的最簡介產(chǎn)品"施绎,并將其推薦為首先的解決方案溯革。這種方法在減輕風(fēng)險的同時也幫助團(tuán)隊建立信息。
(十一) 最佳的架構(gòu)粘姜、需求和設(shè)計出自自組織團(tuán)隊鬓照。
人們喜歡自我組織,因為他們通過自己的方法最佳地完成工作孤紧、協(xié)調(diào)關(guān)系以及適應(yīng)環(huán)境豺裆,同時他們也非常理解和支持這種方式。
為什么最佳架構(gòu)号显、需求和設(shè)計來自項目團(tuán)隊臭猜,而不是來自項目團(tuán)隊外部的組織中的最佳架構(gòu)師、商業(yè)分析師和設(shè)計師押蚤?因為外部的建議可能存在很多優(yōu)點蔑歌,但是如果技術(shù)團(tuán)隊對其難以實施也是一個問題。
自組織團(tuán)隊由更高的所有權(quán)以及對架構(gòu)揽碘、需求和設(shè)計的榮譽感次屠,團(tuán)隊所創(chuàng)建的觀點如果已經(jīng)通過審查,就不要再去驗證雳刺。相反劫灶,如果一些觀點來自團(tuán)隊外部,那么需要團(tuán)隊來驗證是否可以成功使用掖桦,這又將是一個富有挑戰(zhàn)的任務(wù)本昏。
此外,自組織團(tuán)隊更加貼近項目的技術(shù)細(xì)節(jié)枪汪,因此最適合去識別實施中的問題涌穆。雖然可以嘗試采納外部的建議,但是敏捷依然采用團(tuán)隊的能力去打造最好的架構(gòu)雀久、需求和設(shè)計宿稀。團(tuán)隊成員是最了解項目的人,所以最應(yīng)該去授權(quán)參與項目赖捌。
(十二) 團(tuán)隊要定期回顧和反省如何能夠做到更有效原叮,并相應(yīng)地調(diào)整團(tuán)隊的行為
團(tuán)隊在項目進(jìn)展中要不斷地學(xué)習(xí),對已經(jīng)完成的任務(wù)進(jìn)行反思和調(diào)整巡蘸,從而為余下的項目工作做好準(zhǔn)備奋隶。
敏捷項目通常會在每個迭代的最后用回顧會的方式反映在項目工作中的一些機(jī)會以及待改進(jìn)的工作項上。一個項目會有多次的回顧悦荒,而不是每個項目僅有一次復(fù)盤唯欣,這樣可以注意到很多可能被遺忘的細(xì)節(jié),團(tuán)隊也會相應(yīng)地區(qū)調(diào)整和適應(yīng)行為搬味。