Agile 是什么?


也許你已經習慣了 “Agile” 這個詞匯不斷地在你耳邊狂轟濫炸,諸如敏捷團隊、敏捷UX、敏捷建模、敏捷需求管理、敏捷架構等等。而且,人們還在不斷的將 “Agile” 和更多的詞匯進行組合,比如,也曾有人開始質疑是否存在 “Can Project Management be Agile?” 這回事。

同時,伴隨着各種敏捷軟件開發技術的涌現,將各種概念和方法進行對比也成為了時常出現的行為。例如:XP 和 CMMI,XP 和 Scrum,Scrum 和 CMMI,Scrum 和 Lean,Scrum 和 Kanban 等等。

那么,理清這些概念的基礎就是需要理解,Agile 是什么?

先看字面義,在韋氏詞典上查了 “Agile” 的釋義:

ag·ile
  adjective \ˈa-jəl, -ˌjī(-ə)l\
  : able to move quickly and easily
  : quick, smart, and clever

從釋義來看,“Agile” 可以應用於各種廣泛的領域,表示有能力通過適當的技能和控制來快速靈活的前進。

具體到軟件開發領域,“Agile” 是什么?

“Agile” 指的就是敏捷軟件開發宣言(Manifesto for Agile Software Development),“Be Agile” 指的就是要滿足敏捷宣言的定義和所遵循的原則。

敏捷軟件開發宣言(Agile Manifesto)

我們一直在實踐中探尋更好的軟件開發方法,身體力行的同時也幫助他人。由此我們建立了如下價值觀:

  • 個體和互動 高於 流程和工具
  • 工作的軟件 高於 詳盡的文檔
  • 客戶合作 高於 合同談判
  • 響應變化 高於 遵循計划

也就是說,盡管右項有其價值,我們更重視左項的價值。

敏捷宣言遵循的 12 條原則

  1. 我們最重要的目標,是通過持續不斷地及早交付有價值的軟件使客戶滿意。
  2. 欣然面對需求變化,即使在開發后期也一樣。為了客戶的競爭優勢,敏捷過程掌控變化。
  3. 經常地交付可工作的軟件,相隔幾星期或一兩個月,傾向於采取較短的周期。
  4. 業務人員和開發人員必須相互合作,項目中的每一天都不例外。
  5. 激發個體的斗志,以他們為核心搭建項目。提供所需的環境和支援,輔以信任,從而達成目標。
  6. 不論團隊內外,傳遞信息效果最好效率也最高的方式是面對面的交談。
  7. 可工作的軟件是進度的首要度量標准。
  8. 敏捷過程倡導可持續開發。責任人、開發人員和用戶要能夠共同維持其步調穩定延續。
  9. 堅持不懈地追求技術卓越和良好設計,敏捷能力由此增強。
  10. 以簡潔為本,它是極力減少不必要工作量的藝術。
  11. 最好的架構、需求和設計出自自組織團隊。
  12. 團隊定期地反思如何能提高成效,並依此調整自身的舉止表現。

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Principles behind the Agile Manifesto

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity--the art of maximizing the amount of work not done--is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM