APICloud進階|什麼是敏捷軟件開發?

敏捷開發是軟件開發行業的熱門詞彙之一,它是管理軟件開發項目的另外一種方式。它不是一種特定的軟件開發方法,而是一組基於敏捷方法中所表達的價值觀和原則的方法和實踐的統稱,解決方案是經過自組織,跨職能的團隊之間的協做來發展的。編程

敏捷是一個用來描述強調增量交付、團隊協做、持續規劃和持續學習的軟件開發方法的術語,而不是試圖在項目接近尾聲時一次性交付全部內容。

敏捷側重於保持過程精益,並建立在最終實現以前通過屢次迭代的最小可行產品(MVPs)。反饋被不斷地收集和執行,總的來講,這是一個更加動態的過程,每一個人都朝着一個目標共同努力
-------------------------------------------------------------------------------------**架構

敏捷開發


Scrum和其餘領先的敏捷方法框架

  • 敏捷是一種思惟方式,是一套價值觀和原則。

  • 敏捷是一種思考和行動的方式。

  • 敏捷是涉及短週期、迭代和增量交付、快速失敗得到反饋、儘早向客戶交付業務價值以及有關人員協做、交互的一種開發方式。

  • 敏捷是一種關於透明度、檢查和適應的思惟方式。


然而,敏捷並不包含任何角色、事件或工件。例如,Scrum是敏捷保護傘下被普遍使用的框架之一,它能夠幫助你變得更加敏捷,然而在敏捷運動中還有更多的框架,如看板、XP、Crystal等,以下圖所示:工具


Scrum敏捷傘學習

Scrum測試

Scrum是一個框架,在這個框架中,人們能夠解決複雜的適應性問題,同時高效、創造性地交付最高價值的產品。它用於管理軟件項目、產品或應用程序開發。它的重點是自適應產品開發策略,其中跨職能團隊做爲一個單位,在2-4周內(Sprint)達到一個共同的目標。它由價值、工件、角色、儀式、規則和最佳實踐組成。spa

Lean設計

精益源自豐田生產系統(TPS),該系統在20世紀50年代、60年代及之後掀起了製造行業的革命。精益技術在製造業中佔有一席之地,幫助各行各業消除浪費、改進流程並促進了創新。軟件開發是精益方法的天然應用,由於它與製造很是類似,一般遵循一個已定義的過程,有一些已定義的驗收條件,並致使有形價值的交付。指導精益方法的全部實踐的關鍵概念,咱們稱爲精益支柱。他們是:代碼規範

  • 持續改進
  • 尊重員工
  • 輕量級的領導

看板blog

看板是一種高度可視化的工做流管理方法,在精益團隊中很流行。實際上,83%的實踐精益的團隊使用看板來可視化和積極地管理產品的建立,強調持續的交付,而不是給開發團隊增長過多的負擔。與Scrum同樣,看板是一個旨在幫助團隊更有效地協做的過程。

看板基於如下三個基本原則:

  • 可視化你今天要作什麼(工做流程):在彼此的上下文中查看全部項目是很是有用的
  • 限制進行中的工做量(WIP):這有助於平衡基於流程的方法,這樣團隊就不會一次開始和提交過多的工做
  • 加強流程:當某件事完成時,待辦事項列表中優先級第二高的項就會被拉進來發揮做用

看板經過定義最好的團隊工做流程,促進持續的協做,鼓勵積極的、持續的學習和改進。

動態系統開發方法(DSDM)

DSDM是一個由8個原則、一個生命週期和產品、角色和職責以及一些最佳實踐技術組成的框架。這些支持儘早交付戰略上一致的業務利益理念,從而爲組織提供最佳的投資回報(ROI)。

DSDM是一種將進度和質量優先級置於功能之上的方法,它在一開始就肯定了成本、質量和時間,並使用MoSCoW方法肯定了優先級,該方法將項目分解爲四種不一樣類型的需求:

  • 必須(M)
  • 應該(S)
  • 可能(C)
  • 沒有(W)

有八個原則支持DSDM Atern。這些原則指導團隊必須採起的一致的態度和思惟方式,以便儘快交付。

  • 專一於業務需求
  • 及時交付
  • 協做
  • 永不妥協的品質
  • 從穩固的基礎上逐步構建
  • 迭代式開發
  • 持續而清晰地溝通
  • 展現控制力

極限編程

最初由Kent Beck描述的極限編程(XP)已經成爲最流行、最具爭議的敏捷方法之一。XP是一種紀律嚴明的快速、持續地交付高質量軟件的方法。它的目的是在面對客戶需求變化時提升軟件質量和響應能力。它促進了客戶的高度參與,快速的反饋循環,持續的測試,持續的計劃,以及緊密的團隊合做,以很是頻繁的間隔交付工做軟件,一般是每1-3周。

該方法的名字來源於將傳統軟件工程實踐的有益元素帶到「極端」水平的想法。例如,代碼審查被認爲是有益的作法。更極端的是,能夠經過結對編程的實踐來連續檢查代碼。

最初的XP方法基於四個簡單的價值觀:簡單、溝通、反饋和勇氣。

它還有12個配套實踐:

  • 計劃項目
  • 短時發佈
  • 客戶驗收測試
  • 簡化設計
  • 結對編程
  • 測試驅動開發
  • 代碼重構
  • 持續集成
  • 程式碼共有
  • 代碼規範
  • 隱喻
  • 可持續的開發節奏

極限編程

功能驅動開發(FDD)

功能驅動開發(FDD)是傑夫·德盧卡(Jeff De Luca)1997年爲一家大型新加坡銀行進行軟件開發項目時引入的。它是一種迭代的、增量的軟件開發過程,是一種敏捷的軟件開發方法。FDD將許多業界公認的最佳實踐融合在一塊兒。這些實踐是從客戶重視的價值功能(特性)的角度出發的。它的主要目的是及時地重複交付有形的、可工做的軟件。使用FDD的優點在於,它甚至能夠擴展到大型團隊,由於它的概念是「剛開始就足夠的設計」(JEDI)。因爲它以功能爲中心,所以它是保持對敏捷,增量和固有複雜項目的控制的絕佳解決方案。它包含五個基本活動:

  •  開發總體模型
  •  構建功能列表
  •   按功能規劃
  •  按功能設計
  •  按功能構建

功能驅動開發(FDD)

每一個項目都有本身獨特的模型,這將產生一個獨特的功能列表。最後三個活動是簡短的迭代過程,其特性的構建時間不會超過兩週。若是要花費兩週以上的時間,則必須將其分解爲較小的功能。

Crystal

Crystal方法是由Alistair Cockburn在90年代中期開發的一個方法論系列Crystal系列)。這些方法來自於Cockburn多年的研究和對團隊的訪談。Cockburn的研究代表,他採訪的團隊沒有遵循正式的方法論,可是他們仍然交付了成功的項目。Crystal系列是Cockburn對他們所作的使項目成功的事情進行分類的方式。方法論重點包括:

  • 交互做用
  • 社區
  • 技能專長
  • 人才專長
  • 通信技術

敏捷方法

「敏捷」一詞是2001年在《敏捷宣言》中提出的。宣言旨在創建指導更好的軟件開發方法的原則。敏捷宣言由4個重要的價值觀組成。閱讀敏捷宣言的方式並非說右邊的項目已經沒有價值了,而是敏捷運動更加劇視左邊的項目。

敏捷方法

讓咱們看一下敏捷方法的第一行。這句話代表,咱們重視人員的互動,溝通和協做,而不是擁有各類各樣的普遍的流程和工具。固然,程和工具頗有價值,可是,若是它們可以真正地支持人們一塊兒工做並交付出色的產品,那麼它們就更有價值。咱們如今在許多組織中看到的是,流程和工具自己就是目標。從敏捷的角度來看,咱們對它的指望是不一樣的。過程和工具應該支持人們一塊兒工做並向客戶交付價值。

敏捷方法原則

做爲敏捷方法的補充,敏捷聯盟還定義了12條基本原則,除了敏捷方法以外,這些原則還提供了指導和更詳細的解釋。

敏捷方法原則

  • 咱們的首要任務是經過儘早並持續交付有價值的軟件來知足客戶。
  • 即便在開發後期,也歡迎不斷變化的需求。敏捷流程利用變動來得到客戶的競爭優點。
  • 頻繁交付工做軟件,從幾周到幾個月不等,優先選擇較短的時間尺度。
  • 在整個項目中,業務人員和開發人員必須天天一塊兒工做。
  • 圍繞有積極性的我的構建項目。給他們須要的環境和支持,並信任他們能完成工做。
  • 在開發團隊中傳遞信息的最有效的方法是面對面的對話。
  • 可工做的軟件是進度的主要度量。
  • 敏捷過程促進可持續開發。
  • 發起人,開發者和用戶應該可以無限期地保持一個恆定的步調。
  • 持續關注技術卓越和良好的設計可提升敏捷性。
  • 簡潔性(最大化未完成工做量的藝術)相當重要。
  • 最好的架構、需求和設計來自自組織的團隊。團隊會按期思考如何提升效率,而後相應地調整其行爲。
相關文章
相關標籤/搜索