在大学里,我们谈到了敏捷编程,但也谈到了有多少敏捷方法没有在商业中使用,比如结对编程。
我想知道哪些方法属于敏捷编程(极限编程,结对编程),哪些方法是真正使用的/你们使用的。那么迭代和增量开发呢?
编辑:致那些因为“主观和争辩”而想要结束这个问题的人。这个问题是可以回答的,因为敏捷开发是一个定义好的表达。http://en.wikipedia.org/wiki/Agile_software_development。此外,许多用户对这个问题感兴趣,关闭它并没有经过深思熟虑
发布于 2010-03-01 06:03:30
敏捷开发本身并不是一种方法论,它是一个总括的术语,描述了几种敏捷方法论(它们都属于迭代和增量开发- IID家族)。
alt text http://img62.imageshack.us/img62/6374/dd997578teamprojagileum.png
在Agile Manifesto in 2001的签署上,代表了以下方法论: eXtreme编程(XP),Scrum,DSDM,自适应软件开发,水晶,特征驱动开发,实用编程。他们中的每一个都共享敏捷宣言的核心价值,但实现它们的方法略有不同。
相比之下,结对编程是一种工程实践(它是XP的实践之一,它将many practices捕获为一个不可分的集合,但您可以在XP之外使用它)。而且,虽然我非常重视实践,但请记住,实践并不是目的,在我写previously时,它们只是一种手段。敏捷不是关于进行结对编程,站立会议等。敏捷是关于最大化客户价值,同时最小化浪费,以提供最优的ROI。敏捷是面向业务的,实践只是在给定的上下文中实现这一目标的一种方式。
Scrum和XP (一起使用)是当今最常用的。
发布于 2010-03-01 05:11:33
听起来你真的很想知道人们在现实世界中实际使用的是什么。有很多关于敏捷实践/方法中的内容和不是的内容的站点。
因此,到目前为止,我在最近(最近5年)的角色中的经验是:
发布于 2010-03-01 12:16:31
关于在行业中使用的实践的一些最新经验数据:
我刚刚遇到了Agile Practices Survey Results: July 2009。这是一个相当小的样本集(123),但它提供了一些有趣的观点。例如,最有效的10个敏捷实践(根据受访者的报告)是:
可发货Meeting
><
>
还有排名前十的敏捷实践的图表:
想要采用,但还没有开始。
实践不是重点
我们不是为了实践而做实践。敏捷实践源于遵循manifesto website上解释的agile principles。最高的敏捷原则是:“通过早期和持续交付有价值的软件来满足客户”。早期、持续和有价值是那里的关键词。如果一个团队不理解这些原则是如何驱动实践的,那么他们就有可能像@Guildencrantz所说的那样,成为货物狂热的信徒,没有他们期望的神奇子弹般的成功,宣布敏捷是失败的,然后放弃它。
在新项目中保持敏捷比将项目转换为敏捷要容易得多:
我手头没有一个很好的引用,但人们通常认为在greenfield projects上实现敏捷比将brownfield project转换为敏捷更容易。其中一个原因是,现有代码通常以一种难以添加自动化测试的方式编写。Michael Feathers写了一整本关于向遗留代码添加测试的书。
https://stackoverflow.com/questions/2352616
复制相似问题