敏捷開發(fā)之我見

這幾年敏捷開發(fā)很火,好像誰不敏捷就是跟不上時代落后了,很多公司的項目管理者不管三七二十一照本宣科的按照敏捷開發(fā)流程和方法去實施,最后效果不盡然,這是犯了教條主義的錯誤,在我看來敏捷開發(fā)就是一種軟件工程思想而已,一種思想方法理論,任何思想方法理論都要結(jié)合具體的實際去實踐才是有效的,否則適得其反。那么接下來談?wù)勎覍γ艚蓍_發(fā)的看法和理解,希望能幫到你在敏捷的路上少走彎路。

首先我們來看看敏捷的核心思想,主要包含如下要點。

敏捷即是靈活快速的意思,敏捷開發(fā)宣言——

個體和交互 勝過 過程和工具

可以工作的軟件 勝過 面面俱到的文檔

客戶合作 勝過 合同談判

響應(yīng)變化 勝過 遵循計劃

這即是以價值為驅(qū)動,以人為本,持續(xù)快速迭代交付可運行工作的軟件,靈活適應(yīng)需求的變化,最終提前給客戶帶來市場價值。而傳統(tǒng)的瀑布式的開發(fā)模式是以需求文檔驅(qū)動,項目周期長,交付后的基本很難適應(yīng)需求變化或適用的成本非常高,所以項目的失敗率也高,這是兩者的主要區(qū)別,見下圖一目了然:

瀑布式開發(fā)模式流程圖

敏捷開發(fā)模式流程圖

敏捷開發(fā)需要把握如下10個原則:

1)目標是通過持續(xù)及盡早交付有價值的軟件使客戶滿意。

2)擁抱和適應(yīng)需求變化。

3)持續(xù)小版本迭代交付可工作的軟件,項目周期傾向于采取較短的周期。

4)項目開發(fā)過程業(yè)務(wù)或產(chǎn)品人員和開發(fā)人員必須合體合作,每一天都不例外。

5)信任和激發(fā)個體的戰(zhàn)斗力和創(chuàng)造性,從而達成目標。

6)高效溝通,常用面對面交談。

7)可工作的軟件是進度的首要度量標準。

8)以簡單為本,堅持不懈地追求技術(shù)卓越和良好設(shè)計和演變。

9)建立自組織團隊。

10)團隊定期反思后調(diào)整提高成效。

目前業(yè)界比較常用的敏捷開發(fā)的方法體系有七種:SCRUM、XP(極限編程)、Crystal Methods(水晶方法族)、FDD (Feature-Driven Development,特性驅(qū)動開發(fā))、?ASD(Adaptive Software Development,自適應(yīng)軟件開發(fā))、DSDM(動態(tài)系統(tǒng)開發(fā)方法)和輕量型RUP,其中scrum最為流行。好,接下來就重點聊聊我是如何結(jié)合實際去實踐scrum,容我娓娓道來。

SCRUM實施前團隊必須做到:

1.科普敏捷開發(fā)思想,團隊能理解并接受敏捷開發(fā),特別是產(chǎn)品人員。

2.個人要掌握自我管理和自組織的能力。

上圖是SCRUM開發(fā)流程的各個環(huán)節(jié),有三個角色、四個會和三個物件,這些環(huán)節(jié)我們都有實踐,只是我們會結(jié)合實際條件去做調(diào)整。

計劃會,即是需求討論會,可以多次,技術(shù)人員跟產(chǎn)品人員討論最終確定需求迭代開發(fā)的版本數(shù)及各版本的需求范圍;

每日站會,即項目例會,按項目線劃分,各pm或pl按項目實際情況1-2天舉行;

評審會,即是成產(chǎn)品上線后產(chǎn)品人員和用戶使用體驗,分析效果數(shù)據(jù)然后提出優(yōu)化需求然后按優(yōu)先級小版本迭代快速開發(fā);

反思會,即項目總結(jié)會,所有項目干系人參與總結(jié)項目開發(fā)過程的優(yōu)缺點,避免重復(fù)踩坑。

三個物件

產(chǎn)品backlog(即需求清單),即需求整體功能清單文檔及原型,產(chǎn)品人員動態(tài)維護跟進,隨時跟技術(shù)人員溝通;

Sprint backlog(即每個迭代版本的功能列表),需求迭代版本的功能清單文檔及原型,產(chǎn)品人員動態(tài)維護跟進,隨時跟技術(shù)人員溝通;

燃盡圖(即每個迭代版本的進度情況),即是項目進度跟蹤,各個項目組靈活把握,可以用excel表格也可以用trallo協(xié)同工具來跟進。

敏捷估算和開發(fā)任務(wù)認領(lǐng)這兩點我們沒有實踐,因為我們認為團隊的開發(fā)人員能力參差不齊,有實習生、應(yīng)屆生、普通開發(fā)、高級開發(fā)和資深開發(fā)組成,當然還有整個公司的架構(gòu)師提供架構(gòu)方案支持和技術(shù)方案評審,團隊人員的能力差異決定了我們還是按照傳統(tǒng)的方式分派任務(wù)和開發(fā)時間的評估,一般由pl或pm做好項目開發(fā)計劃、任務(wù)分派和開發(fā)時間評估,當然如果是高級開發(fā)以上可以自行評估開發(fā)時間(pl和pm審核確認),如果任務(wù)自行認領(lǐng)和敏捷估算開發(fā)時間,可想而知普通開發(fā)以下人員開發(fā)經(jīng)驗不足,很難一下子挑戰(zhàn)難度大的開發(fā)任務(wù)和評估把握好自己的任務(wù)時間,因此項目的質(zhì)量和時間幾乎是沒法保證的,那么就達不到高質(zhì)效按時完成項目的管理目標。如果團隊人員都是資深開發(fā)或高級開發(fā)以上組成,我認為是可以大膽去實踐敏捷估算和開發(fā)任務(wù)自行認領(lǐng),盡可能發(fā)揮個人的創(chuàng)造性和激情。

總而言之,敏捷開發(fā)只是一種軟件工程的方法論,一定要結(jié)合公司具體的實際情況來調(diào)整變通實踐,一切教條主義必將會失敗。


文/阿青,寫代碼寫詩寫職場的程序猿大叔,傾力原創(chuàng)簡單實用的硬干貨,轉(zhuǎn)載此文請聯(lián)系阿青。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容