在認(rèn)識(shí)到開發(fā)流程在某些情況下可能需要更多的靈活性后,基于簡化控制方法和評(píng)估此做法中風(fēng)險(xiǎn)的機(jī)會(huì),敏捷開發(fā)方法提供一個(gè)剪裁框架。剪裁程度取決于縮短項(xiàng)目周期的機(jī)會(huì)是否值得冒險(xiǎn)去不按順序或并行執(zhí)行開發(fā)步驟。
與IID類似,敏捷開發(fā)亦因速度和適應(yīng)性而區(qū)別于傳統(tǒng)方法。敏捷開發(fā)在進(jìn)行中確認(rèn)。通過采用下列七種敏捷SE的關(guān)鍵實(shí)踐,任何組織都可以提高其速度以達(dá)成客戶滿意。
1. 項(xiàng)目團(tuán)隊(duì)在定義明確的SE流程內(nèi)理解、尊重、工作和行為。這一流程在組織內(nèi)是系統(tǒng)性的,對(duì)于參與者是不容置疑的。
2. 項(xiàng)目執(zhí)行期間,盡量縮短項(xiàng)目所用時(shí)間或減少人員分流。把握每次機(jī)會(huì)推進(jìn)項(xiàng)目向前發(fā)展,特別是關(guān)鍵路徑上的活動(dòng)。
3. 所有關(guān)鍵參與者均通過物理或電子方式密切協(xié)作,其他參與者7天 ×24小時(shí)在線。
4. 對(duì)于自動(dòng)生成的電子文檔有一種很強(qiáng)的偏好。工程師依靠他們的工具和“電子工程筆記本”記錄決策的根本原因。運(yùn)行和復(fù)用的制品僅在必要時(shí)去做——而不是為了支持現(xiàn)有的制度或方針。筆記本是團(tuán)隊(duì)共同擁有且對(duì)所有人可用。
5. 通過正式、口頭協(xié)議實(shí)現(xiàn)基線管理和變更控制是基于“作出承諾,保持承諾”的紀(jì)律——參與者彼此堅(jiān)守責(zé)任。決策門協(xié)議通過有約束力的握手而確認(rèn)。這種形式涉及的是行動(dòng)的約束力,而不是文檔的量。
6. 通過專家咨詢、模型快速驗(yàn)證以及客戶的緊密合作,完成機(jī)會(huì)的探索和風(fēng)險(xiǎn)的降低。軟件開發(fā)是在快速開發(fā)環(huán)境中完成的,而硬件開發(fā)是在多學(xué)科模型工作場所中完成的。對(duì)獲得專家?guī)椭粦?yīng)有阻礙或惰性;需要尋求而不是抵制。
7. 建設(shè)性的面對(duì)面文化貫穿于項(xiàng)目組織之中。任何人都應(yīng)主動(dòng)找問題并將其傳遞給最可能的解決者。任何問題都應(yīng)得到解決。團(tuán)隊(duì)是成功的主體;這絕不是“別人的職責(zé)”。
敏捷開發(fā)原則(適于SE)如下:
● 最高的優(yōu)先級(jí)是通過盡早地和持續(xù)地交付有價(jià)值的軟件(以及其他系統(tǒng)元素)來滿足客戶。
● 歡迎變更需求,即使是在項(xiàng)目開發(fā)后期。敏捷流程利用需求變更幫助客戶獲得競爭優(yōu)勢。
● 不斷交付可用的軟件(以及其他系統(tǒng)元素),周期從幾周到幾個(gè)月不等,且越短越好。
● 在項(xiàng)目中業(yè)務(wù)人員與開發(fā)人員必須每天在一起工作。
● 善于激勵(lì)項(xiàng)目人員,給他們提供所需環(huán)境和支持,并相信他們能夠完 成任務(wù)。
● 在開發(fā)團(tuán)隊(duì)內(nèi)部和在團(tuán)隊(duì)之間,最有效的傳遞信息的方法是面對(duì)面的交談。
● 工作軟件(以及其他系統(tǒng)元素)是進(jìn)展的主要度量。
● 敏捷流程促進(jìn)可持續(xù)的開發(fā)。項(xiàng)目方、開發(fā)人員和用戶應(yīng)能夠維持一個(gè)恒久穩(wěn)定的步調(diào)。
● 對(duì)技術(shù)的精益求精以及對(duì)設(shè)計(jì)的不斷完善將提升敏捷性。
● 簡單性——盡最大可能減少不必要的工作的藝術(shù)——這是精髓。
● 最佳的構(gòu)架、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。
● 團(tuán)隊(duì)要定期反省如何能夠做到更有效,并相應(yīng)地調(diào)整團(tuán)隊(duì)的行為。