淺談「敏捷」開發(fā)

敏捷軟件開發(fā)宣言

敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個子項(xiàng)目,各個子項(xiàng)目的成果都經(jīng)過測試,具備可視、可集成和可運(yùn)行使用的特征。換言之,就是把一個大項(xiàng)目分為多個相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
??在2001年,17位編程大師共同發(fā)布《敏捷軟件開發(fā)宣言》。其他的核心思想可以分為以下四個部分:

  • “人”以及“人與人的互動” > “過程”和“工具”;
  • 可運(yùn)行的軟件 > 面面俱到的文檔;
  • 客戶合作 > 合同談判;
  • 響應(yīng)變化 > 遵循計(jì)劃。

基于《敏捷軟件開發(fā)宣言》的思想,其共有12條原則,這里不一一敘述,可以在這里查看詳情。

敏捷過程模型

1. 特點(diǎn)

開發(fā)過程中的“變化”無處不在,也是不可避免的。在實(shí)際項(xiàng)目中,很難預(yù)測需求和系統(tǒng)何時以及如何發(fā)生變化,并且對于開發(fā)者來說,要將變化的意識貫穿在每一項(xiàng)開發(fā)活動中。面對這寫要求,敏捷開發(fā)應(yīng)運(yùn)而生。所有敏捷過程模型都遵循敏捷軟件開發(fā)宣言和敏捷原則,每種模型又各有特點(diǎn),一下介紹兩種:XPSCRUM。

2. XP(extreme programing)

  • 背景:
    1996年由Ken Beck等人提出,著名書籍:
    《Extreme Programing Explained:Embrace Change》。
  • 基本觀點(diǎn):
    軟件開發(fā)是人與人合作進(jìn)行的過程,因此成功的軟件開發(fā)過程應(yīng)該充分利用人的優(yōu)勢,而弱化人的缺點(diǎn),突出人在軟件開發(fā)過程中的作用。
  • 適用范圍:
    XP適合規(guī)模小,進(jìn)度緊,需求變化大,質(zhì)量要求嚴(yán)的項(xiàng)目。功能需求可以固定的,可以作比較精確的需求設(shè)計(jì)的,生命周期很長的,超大型軟件項(xiàng)目不適于適用XP方法。
  • 核心價(jià)值觀:
    • 溝通問題往往是由于開發(fā)人員與設(shè)計(jì)人員,設(shè)計(jì)人員與客戶之間的溝通不暢造成的;
    • 簡單在系統(tǒng)可運(yùn)行的前提下,做最簡單的工作。時刻保持代碼的簡單,無冗余;
    • 反饋盡快獲得用戶反饋,越詳細(xì)越好,使得開發(fā)人員能夠保證自己的成果符合用戶的需要;
    • 勇氣“擁抱變化”對于用戶的反饋,要用于對自己的代碼進(jìn)行修改,丟掉壞的代碼。
  • XP設(shè)計(jì)過程:
    • XP Planning:計(jì)劃階段
    • XP Design:設(shè)計(jì)階段
    • XP Coding & Testing:編碼與測試階段
XP process
XP process

3. SCRUM

  • 背景:
    1990年代由Schwaber & Beedle提出并實(shí)踐。
  • 特點(diǎn):
    整個開發(fā)過程由若干個短的迭代周期組成,一個短的迭代周期稱為一個Sprint,每個Sprint的建議長度是2到4周。使用產(chǎn)品Backlog來管理需求,是一個按照商業(yè)價(jià)值排序的需求列表,列表?xiàng)l目的體現(xiàn)形式通常為用戶故事。在Sprint中,Scrum團(tuán)隊(duì)從產(chǎn)品Backlog中挑選最高優(yōu)先級的需求進(jìn)行開發(fā)。挑選的需求在Sprint計(jì)劃會議上經(jīng)過討論、分析和估算得到相應(yīng)的任務(wù)列表(backlog)。在每個迭代結(jié)束時,Scrum團(tuán)隊(duì)將遞交潛在可交付的產(chǎn)品增量。
  • 基本過程:
    • 找出完成產(chǎn)品需要做的事情;
    • 決定當(dāng)前的沖刺需要解決的事情;
    • 沖刺沖刺Sprint;
    • 每日站會。
  • 常用方式:
    • Sprint Burndown Chart
    • Task board

個人總結(jié)

我個人認(rèn)為敏捷開發(fā)中最重要的因素是: 。
??通過對《敏捷軟件開發(fā)宣言》的學(xué)習(xí),“人與人的合作交流”就一個敏捷軟件開發(fā)項(xiàng)目是否成功的主要因素。所以在軟件軟件開發(fā)過程中,開發(fā)者的編程環(huán)境需要做到盡量的開放,而且盡量實(shí)現(xiàn)“結(jié)對編程”,這樣才能使得開發(fā)過程變得不易于原計(jì)劃脫軌,大大增強(qiáng)了開發(fā)的成功率。
??而對于較為典型的SCRUM和XP這兩種敏捷過程模型,Scrum注重的是管理和組織實(shí)踐,而XP關(guān)注的是實(shí)際的編程實(shí)踐,兩者都聚焦于信息價(jià)值流和信息溝通除了迭代長度稍有差別外,大多數(shù)Scrum實(shí)踐與XP是兼容且相互補(bǔ)充。
??所以說:組合使用Scurm和XP會有顯著收獲!

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

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

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