本文共 4386 字,大约阅读时间需要 14 分钟。
瀑布模型方法论 Waterfall Methodology | 敏捷方法论 Agile Methodology |
---|---|
瀑布涉及到一个大的团队规模,团队之间的协调减少。 Waterfall involves a large team size where coordination among teams decreases. | 敏捷的目的是为了更高的协调而减少团队规模。 Agile intends a smaller team size for higher coordination. |
客户只有在完成开发过程后才进行干预。 The customer intervenes only after completing the development process. | 从客户那里获得持续的反馈,以提供可靠和高质量的产品。 Continuous feedback is taken from the customer to deliver robust and high-quality products. |
它的方法是相当循序渐进的。 Its methodology is quite sequential. | 敏捷方法论是增量和迭代的。 Agile methodology is incremental and iterative. |
没有任何测试或开发级别相互重叠。 None of the testing or development levels overlap each other. | 测试和开发级别经常相互重叠 The testing and development levels often overlap each other |
验收测试只在最后阶段进行一次。 Acceptance tests are carried out only once, at the last stage. | 验收测试在每次迭代后持续进行。 Acceptance tests are taken continuously after every iteration. |
可交付成果的变更成本高昂。 Changes in deliverables are costly. | 更改是显而易见的,所以它不会对可交付成果产生太大影响。 Changes are obvious so it doesn’t impact that much on the deliverable. |
测试在项目结束时进行。当你要完成它的时候,你不知道它是否有效。任何功能中的任何故障都会让您回到产品的开始,从那里开始查找其根本原因。 Testing is performed towards the end of the project. You don’t know whether the deliverable works when you are about to finish it. Any failure in any of the functionality takes you back to the beginning of the product from where it started to find the root cause of it. | 测试是分块并行进行的,这样如果有任何功能失败,就可以快速轻松地进行分析和纠正。 Testing is done parallelly in pieces so that if any functionality fails it can be analyzed quickly and easily rectified. |
Agile methodology is an iterative and incremental approach to software development. In Agile, we have small incremental builds presented in multiple iterations to the end-user and other stakeholders for their feedback. Based on the feedback, changes are incorporated in the next iterations of the build on the basis of their priority.
敏捷方法是一种迭代和增量的软件开发方法。在敏捷中,我们在多个迭代中向最终用户和其他涉众提供小的增量构建,以获得他们的反馈。根据反馈,更改将根据优先级合并到构建的下一个迭代中。
基本上,敏捷是一种方法论,遵循这种方法论有不同的实现。下面是一些最广泛使用的敏捷实现:
敏捷方法论它侧重于增量开发方法,其中方法论的目标是快速交付产品。
敏捷方法论和其他传统方法论的主要区别在于,敏捷方法论遵循增量开发模型,而传统方法论遵循顺序模型。
在敏捷方法中,开发阶段和测试阶段同时运行。在传统方法中,一旦开发阶段结束,测试阶段就开始了。
敏捷方法提供了灵活性,因为引入变更更容易。在传统的方法论中,合并变更是困难的,因为在开发工作开始之前,需求被冻结。
敏捷方法需要较少的文档;由于交付速度快,开发人员可以根据需要对代码进行更改。而在传统的方法论中,开发过程只有在团队获得完整的文档化需求之后才开始。
客户参与敏捷软件生命周期的每一个阶段,评审产品并在需要时提出变更建议。在传统方法中,客户主要参与需求收集阶段;他们通常在开发生命周期的最后阶段看到最终产品。
下面是一些敏捷框架(Agile Frameworks)
XP的关注点:
XP 更倾向于适合中小规模的软件开发,这些软件的规格说明变更非常频繁,而且它们还可以进行接近实时的沟通。
实践 | 注解 |
---|---|
1. 计划与需求分析 |
|
2. 小规模,递增地发布 | 努力添加细微的、实在的、可增值的特征和新功能,频繁发布新版本 |
3. 系统隐喻 | 编程小组确认隐喻,便于建立命名规则和程序流程。 |
4. 简要设计 | 实现最简单的设计,使代码通过单元测试。假设变更即将发生,因此不要在设计上花费太多的时间,只是不停地实现。 |
5. 连续测试 | 在编写模块之前就生成单元测试用例。模块只有在通过单元测试之后才告完成。此外,程序只有在通过了所有的单元测试和验收测试之后才算结束。 |
6. 重构 | 清理和调整代码库。单元测试有助于确保在此过程中不破坏程序的功能。应在任何重构之后重新进行所有的单元测试。 |
7. 结对编程 | 两位程序员协同工作,在同一台机器开发代码库。这样就可以对代码进行实时检查,能极大地提高缺陷的发现率和纠正率。 |
8. 代码的集体所有权 | 所有代码归全体程序员所有,没有哪一个程序员只致力于开发某一个代码库 |
9.持续集成 | 每天在变更通过单元测试Unit Testing 之后将其集成到代码库中 |
10. 每周40小时工作 | 不允许加班。如果每周都会全力工作了40小时,就不需要加班。在重大发布前的一周例外。 |
11. 客户在现场 | 开发人员和编程小组可以随时接触客户,这样可以快速、准确地解决问题、使开发过程不至于中断 |
12. 按标准编码 | 所有的代码看上去必须是一致的。设计一个系统隐喻有助于满足该原则。 |
简单来说,XP这12个核心的实践可以归纳为4个概念:
转载地址:http://jtvdi.baihongyu.com/