准备Scrum之旅 之 XP、RUP和Scrum的比较 ——《轻松Scrum之旅》(18)

 XP、RUP和Scrum的比较

 

    很快,所有的资料都在网页中显示出来了,经过整理,关毅把以下内容复制到了一个Word文档里。


资料库


*极限编程(eXtreme Programming,XP)
    极限编程的思想源自Kent Beck和Ward Cunningham在软件项目中的合作经历。在这里,“eXtreme”的意思是希望将软件开发过程中一些好的方法发挥到极致。XP注重的核心在于“沟通、简明、反馈和勇气”,用一句话来概括XP的这4个核心价值观就是:通过充分的交流和沟通,使产品的设计尽可能简单明了;同时通过客户经常性的反馈,生产出符合客户要求的软件产品,并且有勇气迎接需求的改变。
    另外,极限编程者还总结出一系列经典的实践,形成了XP的12个主要实践方法,这些方法对极限编程具有指导性的意义,分别是:客户计划的制定、小版本发布、隐喻、结对编程、测试驱动开发、重构、稳定的进度、代码共享、编码规范、简单的设计、持续集成、现场客户。
*RUP(Rational Unify Process,Ratioanl统一过程)
    RUP试图总结现代软件开发过程中所有好的实践经验,形成一种有很强适应性的软件开发过程。它包括了软件开发中的6大经验,分别是:迭代式开发、管理需求、可视化建模、使用基于组件的软件体系结构、验证软件质量、控制软件变更。
RUP将软件开发周期按时间和RUP的核心工作流划分为一个二维空间,如图3-4所示。

 
图3-4  RUP核心工作流

    从图3-4中的横轴来看,RUP把软件开发的生命周期划分为多个循环迭代,每个迭代生成产品的一个新版本,每个迭代由4个连续的阶段组成,分别是:初始阶段,了解项目的大致需求,建立业务模型,确定系统范围;细化阶段,设计、确定系统的体系结构,制定工作计划;构造阶段,构造产品并继续演进需求、体系结构、计划直至产品提交;移交阶段,完成产品的最终版本并交付给用户使用。
    从图3-4的纵轴来看,RUP的9个核心工作流分别是:业务建模、需求、分析与设计、实现、测试、部署、配置与变更管理、项目管理、环境。
    RUP的基本原理是:以满足客户需求、为客户创造价值为最终目标;尽可能早且不断地化解重大风险;把注意力放在可工作的软件上;在项目执行过程中尽可能早地适应变化;在项目早期设计、实现并测试一个可执行的架构;使用组件来构造系统;建立高效、协作的团队;要始终重视产品质量,否则追悔莫及。
    以上RUP的基本原理构成了RUP的灵魂,在这些指导原则下,RUP又给出了其他一些最佳实践,比如:为了化解业务风险,它始终以用例为中心;不是逃避变化,而是直面变化;为了化解时间风险,它采取迭代开发,尽量在早期探知到时间的延迟,以便采取更灵活的策略;为了化解技术风险,它强调架构设计;为了化解质量风险,它强调测试优先。而这些也恰好是RUP的主要特点。在这些最佳实践之后,才是具体的过程组织形式:具体由哪几个阶段组成?而每个阶段又包括哪些工作流,要产出哪些产品?而且这些形式不是固化的。RUP只是提供一个模板,可以在开发过程中进行裁减。
*Lean(精益软件开发方法)
    精益生产的概念首先出现在制造业中,由日本的丰田公司提出。大规模制造理论认为,一定程度的浪费、一定程度的废品是正常的和被允许的。而在软件开发中,资源浪费、成本居高不下也同样成为软件开发的一大障碍。处于变革的十字路口的软件开发行业,总是能不断地从其他行业中寻找可借鉴的理论。这种借鉴来的思路就被称为精益编程(Lean Programming)。
    Lean方法的主要思路有:消除浪费,将所有的时间花在能够增加客户价值的事情上;延迟决策,在一个复杂多变的环境中进行软件开发,需要根据实际情况保持可选方案的开放性,但时间不能过长;尽早交付,软件交付的周期越快,用户的需求就会越清晰,软件应对需求变化的灵活性就越高,让客户的需求来推动工作的进展;加强学习,承认变化的存在及其不可预见性,加强反馈和交流,在实践中发现问题、解决问题,并最终形成解决方案;授权给团队,正确的决策取决于准确的信息,让开发团队参与决策,让团队成员充分发挥自己的潜力。
    无数的经验和教训都已经证明,软件开发中一个巨大的浪费源头就是不注重质量而导致的返工。人们常常为了追赶工期而降低对质量的要求,殊不知这会带来更大的损失。Lean强调消除浪费,这正是为了避免低质量和返工造成的浪费。尽管这样做一开始看起来似乎有些麻烦,但它所带来的收益是实实在在的。
    如果采用Lean方法,还要注意不要钻牛角尖。消除浪费并不意味着扔掉所有的文档;尽量推迟决策并不意味着拖延决策,不能晚到错过了时机、耽误了工作才作出决策;尽快交付并不意味着匆忙交付和马虎行事,否则会为日后的系统维护带来更多的麻烦和浪费,这恰恰是与消除浪费的原则背道而驰的;授权给团队也并不意味着放弃领导。
    关毅收获不小:看来XP、RUP、Lean这些开法方法都是符合敏捷精神的。XP偏重工程实践,缺少框架,好像不是很系统,没有有效地指导我们应该先做什么、再做什么。RUP的框架太过繁琐,9个核心工作流程的每一项市面上都有厚厚的一本书,让人望而生畏。尽管RUP也是敏捷,不过要想快速上手好像有点困难,倒是很多好的实践可以学习和借鉴一下。还有一些例如Crystal、DSDM等方法,用的人都比较少,如果相信群众的话,就应该放弃。那么,Scrum又是什么样子呢?为什么叫“Scrum”这么一个怪名字?它有什么魅力能够成为当今最流行的敏捷软件开发方法?关毅又开始了搜索。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值