一极限编程XP:
概述:
极限编程是一个轻量级的、灵巧的开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。
核心价值:
极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。 XP用“沟通、简单、反馈、勇气和谦逊”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。
尊重一线人员
消除浪费
增强学习
尽量延迟决定
嵌入质量
快速交付
DSDM使用迭代软件过程,每一个迭代都遵循80%原则,即每个增量只完成能够保证顺利进入下一增量的工作,剩余的细节则可以在知道更多业务需求或者提出并同意变更之后完成。
DSDM的基本原则 DSDM方法建立在9条原则之上,而且在实施过程中,这9条缺一不可。
原则1:用户必须持续参与
原则2:必须授予DSDM团队制定决策的权利
原则3:注重产品的经常交付
原则4:满足业务用户用途是接受交付品的主要依据
开发人员不必沉溺于完美的解决方案之中,耽误项目时间。在受限的时间内,实现业务利益最大化的交付品才是最重要的。
原则5:迭代和增量式开发对得到正确的业务解决方案是必不可少的
采用迭代开发的方法,能够使业务流程逐步进化,使系统不断朝着满足业务需求的方向前进。
原则6:开发过程的所有变化可逆
采用迭代和增量式开发过程中,很可能会碰到走错的情况,此时需要回退到一个已知的可靠的点上。
原则7:在高层次上制定需求的基线
在业务研究中所得出的需求必须在高层次上达成一致。接下来在迭代过程中再得到详细的需求。
原则8:测试自始至终贯穿于开发周期之中
开发人员完成一个模块的开发后,自己会进行单元测试。当模块集成到现有系统后,测试人员需要执行集成测试。另外,回归测试在DSDM中占有很重 要的地位。
原则9:所有项目涉众间的通力合作是不可获缺的
五特性驱动开发:
特征驱动开发(FDD-Feature Driven Development)方法是敏捷软件开发过程中的一种,它强调特性驱动,快速迭代,即能保证快速开发,又能保证适当文档和质量,非常适合中小型团队开发管理。它提出的每个功能开发时间不超过两周,为每个用例user case限定了粒度,具有良好可执行性,也可以对项目的开发进程进行精确及时地监控。它抓住了软件开发的核心问题领域,即正确和及时地构造软件。FDD还打破了传统的将领域和业务专家/分析师与设计者和实现者隔离开来的壁垒。分析师被从抽象的工作中解脱出来,直接参与到开发人员和用户所从事的系统构造工作中。
FDD过程:
FDD是一个模型驱动( model-driven)、短期迭代(short-iteration)的过程。 注意,FDD是一个开发过程,过程总是有起点和终点,FDD的起点是起源于创建一个全局的模型轮廓(不要求很精确,大概模样就可以),然后是周期低于两周的一系列的"design by feature, build by feature"的迭代,逐渐丰富模型功能内容。一个FDD开发过程如附件1图所示。
其由5个活动组成:
1. 开发一个全局的模型 (Develop an Overall Model)
2. 建立特征列表
在此采用下述格式进行描述:
- 针对功能: <action>the<result><by | for | of | to>a(n)<object>
- 针对功能集:<action><-ing>a(n)<object>
- 针对主功能集:<object>management
3. 依据特征规划(Plan by Feature)
4. 依据特征设计(Design By Feature)
5. 依据特征构建(Build By Feature)
六水晶开发:
Crystal Methods(水晶方法族)由Alistair Cockburn在20实际90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。其目的是发展一种提倡“机动性的”方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。
水晶项目开发核心特征:
--经常交付;
--项目主办者根据团队的工作进展获得重要反馈;
--用户有机会发现他们原来的需求是否是他们真正想要的, 有机会将观察结果反馈到开发当中
--团队得以调整开发和配置的过程, 并且可以鼓舞士气
--规定Timing Box确定最终的迭代交付时间点