我想知道哪些方法属于敏捷编程(极限编程,配对编程),哪些真正被使用/你使用过。迭代和增量式开发呢?
编辑:对于那些想要关闭这个问题的人因为“主观和有争议性”的人。 这个问题可以回答,因为敏捷开发是一个定义明确的表达。 http://en.wikipedia.org/wiki/Agile_software_development。 此外,许多用户对此问题感兴趣,关闭它并不考虑周全。
alt text http://img62.imageshack.us/img62/6374/dd997578teamprojagileum.png
相比之下,配对编程是一种工程实践(它是XP的众多实践之一,作为不可分割的整体捕捉到,但你也可以在XP之外使用它)。虽然我非常重视实践,但请记住,实践并不是终点,它们只是手段,就像我以前写过的那样previously。 敏捷不是关于做配对编程、站立会议等等。敏捷是关于最大化客户价值,同时最小化浪费,提供最优ROI。敏捷是业务导向的,实践只是在特定上下文中实现这个目标的一种方式。Scrum和XP(一起使用)是目前最常用的。
我刚刚看到了敏捷实践调查结果:2009年7月。虽然样本集比较小(123),但它提供了一些有趣的观点。例如,根据受访者报告,最有效的10个敏捷实践是:
还有关于以下方面的前十个敏捷实践的图表:
我们不是为了实践而实践。敏捷实践来自遵循敏捷原则,如宣言网站所解释的那样。最高的敏捷原则是:“通过及早和持续地交付有价值的软件来满足客户。” “早期”,“持续”和“有价值”是关键字。如果一个团队不了解这些原则如何推动实践,那么他们就有被像@Guildencrantz说的那样:盲目模仿,没有他们预期的神奇成功,宣布敏捷失败并放弃它的风险。
我手头没有好的引文,但通常认为在绿色项目上实施敏捷比将棕色项目转换为敏捷更容易。其中一个原因是现有代码通常以使添加自动化测试变得困难的方式编写。Michael Feathers写了一整本关于将测试添加到遗留代码的书。
许多人似乎误解了重构、配对编程和自组织团队的概念...这些对于那些从瀑布式开发中获得成功并已经根深蒂固的人来说可能很困难。让这些人尝试XP是一个问题。
正如其他人所提到的,敏捷是一个大伞词,可以以多种不同的方式实施;尽管如此,敏捷当前的流行状态导致许多公司试图实施敏捷,但实际上只是实施了一套类似于货柜崇拜的程序,并期望敏捷的灵活性。