敏捷开发简单的说是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
在这个过程中我们要完善各个小项目,最终我们的大项目才能更完美。
极限编程
极限编程是一个轻量级、灵巧的软件开发方法,同时它也是一个非常周密和安全的方法.
敏捷开发过程往往是一个自适应过程,要不断的在需求的变化下有一定的适应能力。下面作者就提到了一些比较流行的敏捷开发方法:
(1) XP(极限编程)。XP是一个轻量级的、灵巧的软件开 发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以 从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的 小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整 开发过程。
(2)SCRUM方法论。Scrum是一种迭代式增量软件开发过程,SCRUM方法论中其核心仍然迭代和增量,首先对于产品需求会划分为多个迭代或增量,每个迭代都需要在1个月能够交付,而一个月即是一次冲刺,而一个迭代版本又需要转化到每天的进度跟踪和问题解决,这就是每天的15分钟会议(每日站立会议),在会议上必须回答当天的进度,明天的计划和是否存在问题。
(3)Crystal Methods-水晶方法。水晶方法把 开发看作是一系列的协作游戏,而写文档的目标就是只要能帮助团队在下一个游戏中取得胜利就行了。水晶方法的工作产品包括用例、风险列表、迭代计 划、核心领域模型,以及记录了一些选择结果的设计注释。水晶方法也为这些产品定义了相应的角色。然而,值得注意的是,这些文档没有模板,描述也可不拘小 节,但其目标一定要清晰,那就是满足下次游戏就可以了。我总是将这些思想以下面的方式向我的团队成员表达:通过它们,你只要了解你明天加入这个团队所要知 道的内容就行了。对于水晶方法论,根据方法论的轻重可以分为透明水晶和橙色水晶等。透明水晶一般是轻量级的团队适用。不管是哪种水晶,都会对团队的角色, 团队的工件和产出,核心实践,支持过程等进行定义。
(4)上下文驱动测试。以测试驱动开发也是提高软件项目适应性的一种方法。
(5)精益开发。
(6)(理性)统一过程。软件项目最后肯定是要将各个模块组合起来的,敏捷开发最后也需要一个理性的统一过程;当然这样是用例驱动的过程。
文章最后提出讨论了我们是否引入敏捷开发方法到我们的项目开发中。
我觉得这篇文章的贡献就是对敏捷开发做了一个系统的总结,具体怎么做都介绍的很清楚,能给很多软件开发者指导作用。