敏捷式开发(Agile Development)※极限编程(Extreme Programming)

来源:互联网 发布:川农网络付费 编辑:程序博客网 时间:2024/04/27 15:40

来自:http://members.tripod.com/jian_hu/fowler/newMethodology.html 

敏捷型方法
@XP(Extreme Programming -- 极限编程〕
@Cockburn的水晶系列方法
@开放式源码
@Highsmith的适应性软件开发方法〔ASD〕
@SCRUM
@功用驱动开发方法〔FDD〕
@动态系统开发方法〔DSDM〕

@敏捷型方法是“适应性”而非“预见性”。 工程方法试图对一个软件开发项目在很长的时间跨度内作出详细的计划,然后依计划进行开发。这类方法在一般情况下工作良好,但(需求、环境等)有变化时就不太灵了。因此它们本质上是拒绝变化的。而敏捷型方法则欢迎变化。其实,它们的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。

@敏捷型方法是“面向人”的(people-oriented) 而非“面向过程”的 (process-oriented)。 工程型方法的目标是定义一个过程,不管是谁用都工作。而敏捷型方法则认为没有任何过程能代替开发组的技能,过程起的作用是对开发组的工作提供支持。

“迭代式”(iterative〕开发方法: 这并不是一个新思路,迭代式开发方法已存在很久了,只是名称不同,如“递增式” (Incremental〕,“渐进式”(Evolutionary),“阶段式”(Staged〕, “螺旋式”(Spiral〕等等。


来自:http://school.ogdev.net/ArticleShow.asp?id=3802&categoryid=25

XP是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

XP中的重要惯例和规则
1 项目开发小组(Team)
2 计划项目(Planning Game)、验收测试、小规模发布(Small Releases)
3 简单设计,Pair Programming,测试驱动开发,重整和优化
4 频繁地整合,集体拥有代码(Collective Code Ownership),编程规范
5 Metaphor(系统比喻),不加班

来自:http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=1004&blogId=213

The Agile Manifesto (敏捷宣言)

獨立的工作成員與人員互動 勝於 流程與工具的管理
工作產生的軟體 勝於 廣泛而全面的文件
客戶的合作 勝於 契約的談判
回應變動 勝於 遵循計畫
The Agile Principles (敏捷原則)

最為優先的事情是透過早期與持續交付有價值的軟體來使客戶滿意。
歡迎需求的變動,即使是在開發的晚期。敏捷式流程駕馭變動來作為客戶的競爭優勢。
頻繁的交付工作產生的軟體,自數週至數月,週期越短越好。
領域專家與開發成員必須一同作業,並貫穿整個專案開發時期。
使用積極的工作成員來建構專案,給予他們環境以及支援所需的一切,然後信任他們能夠完成工作。
在開發團隊中最快也最有效的傳遞資訊方法就是面對面的溝通。
工作產生的軟體是衡量進度最主要的依據。
敏捷式流程倡導水平一致的軟體開發
專案發起者,開發人員以及使用者都必須持續的維持專案進度。
持續重視技術的優勢以及設計品質
最好的架構、需求以及設計會出現在能夠自我管理的團隊裡
在規律的反覆之間,團隊會反省與思考如何更有效率,然後相對的來調整與修正團隊的開發方式。

原创粉丝点击