`

常见的敏捷开发流程比较

阅读更多

“原文”:http://blog.csdn.net/binnacler/archive/2009/06/17/4277883.aspx

繁体词汇转换:使用Word2003转成繁体再转回简体 by BlueAeri

 

速度是企业竞争致胜的关键因素,软件项目的最大挑战在于一方面要应付变动中的需求,一方面要在紧缩的时程内完成项目,所以软件团队除了在技术上必须日益精进,更需要运用有效的开发流程,以确保团队能够发挥综效。 这正是Agile Process ( 敏捷的软件开发流程) 于近年来兴起的主要原因,本文将介绍数种广为接受的软件开发流程,及其在运用上的建议。

 

1  Agile Process - 敏捷的开发流程

几乎所有的软件项目都会在起始阶段面临选择开发流程的困难,一种是完备的开发流程,另一种是简易轻便的流程。 虽然我们了解采用完备的开发流程可以提高软件的质量,但是因为欠缺人力、工具与时间,我们常会被迫采用简化的流程,但事与愿违,大部分的情况我们仍然难以 在预算内及时完成项目。
    Agile Process (
敏捷的开发流程) 是一种软件开发流程的泛称,Agile Process 具有下列几项共通的特性:
1. 
客户与开发人员形成密切合作的团队,因为客户无法于初期定义完整的规格,而开发人员于开发过程中也常常无法知悉外在环境或业务的变动,所以需要两者密切合作方能开发适用的软件。
2. 
项目最终的目标是可执行的程序,因此所有的中间产品必须经过审慎评估,确认有助于最终目标,才需要制作中间产品。
3. 
采用IterativeIncremental 方式分阶段进行,密集review 是否符合需求。
4. 
流程可以简单,但规划与执行必须严谨。
5. 
强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整。

 

2  RUP 开发流程- Rational Unify Process

RUP IBM Rational 公司经过多年的研发与经验所提出的软件开发流程,其内容含盖Business modeling, Requirement Modeling, Logical Design, Implementation, Testing, Deployment 等软件开发生命周期的直接工作,与Project Management, Change & Configuration ManagementEnvironment support 等支持性工作。  RUP 的内容非常丰富,不同的项目需要不同调整,IBM Rational 提供RUP workbench 工具,方便调整RUP ,并公布于Web ,方便项目成员遵循统一的流程规范进行工作。
    RUP
的主要精神为:1. 项目进行采 用Iterative 程序分阶段渐进地完成项目功能;2. 广泛使用Visual Modeling 于商业需求分析、系统分析与系统设计;3. 强调架构设计;4. 对每项工作所需要的技术、工具、做法、模板、检查项目均有详细的定义,架构 完备且具有可调整的弹性。
因为RUP 的流程规范与相关技术较复杂,所以导入时必须注意几个因素:1. 主管的支持以确保足够的资源投入;2. 分 阶段导入;3. 适当的训练与密切的顾问咨询;4 . 使用Modeling 技术时需要考虑Coding 的实作环境;5. 良好团队的管理,以沟通、耐心与坚持解决变革的人性阻力。

 

3  XP 开发流程- eXtreme Programming

    XP 亦称为终极流程,是最轻量级的开发流程,其最主要的精神是『在客 户有系统需求时,给予及时满意的可执行程序』,所以最适合需求快速变动的项目。XP 经过6 年的实作与修改,已演化为精致的开发流程,但仍不失其精简的特性,它强调客户所要的是workable 的执行码,所以把与撰写程序无关的工作降 至最低,并要求客户与开发人员最好以side-by-side 的方式一起工作。
    XP
开发流程的基本步骤为:1. 开发人员随时可以和客户进行 有效沟通,撰写user stories 以确认需求。  2. 简易快速的系统设计,撰写独立的验证程序以解决特殊困难的问题,找出算法即可丢弃验证程序。  3. 规划多次小型阶段的项目计划,以最快速度完成每一阶段的程序交付客户,客户负责Acceptance tests4. Coding 前必须完成Unit TestAcceptance tests 程序,所有模块整合前都须经过Unit Tests5. 开发人员必须快速响应Bug 与需求变更;6. 要求二人一组使用一台计算机设计程序,当一人coding 时,另一人负责思考与设计;7. 程序 必须符合程序规范,并常做程序的重整(Refactoring)
    XP
属于较精简的流程,于导入应注意几件事情:1. 最好有顾问给予协助;2. 持续的Review3. 可适当调整流程,但不可失去其基本精神。

 

 4  SCRUM 开发流程

    SCRUM 开发流程是Agile Process 的一种,以英式橄榄球争球队形(Scrum) 为名,基本假设是『开发软件就像开发新产品,无法一开始就能定义Final Product 的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功』。  Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决 各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此SCRUM 非常适用于产品开发项目。
    SCRUM
开发流程通常以30 天为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于30 天后交付成果,团队每天用15 分钟开会检视每个成员的进度与计划,了解所遭遇的困难并设法排除。
    SCRUM
与传统开发流程及项目管理差异较大,于导入时最好有顾问协助。

 

总结

    Agile Process 的精神已经成为共识,但是没有一种固定的流程可以重复使用在不同的项目上。 而且不管是RUPXPSCRUM 、或其它的开发流程都允许相当大的弹性,我们必须按项目性质的不同,调整或混合出适合的开发流程,并允许团队于进行中 做必要的弹性修改,方能达成目标。

 

参考数据

RUP www.rational.com
XP
www.extremeprogramming.org
SCRUM
www.controlchaos.com
AGILE
www.agilealliance.org

 

 

分享到:
评论

相关推荐

    最完整的Scrum敏捷软件开发过程.ppt

    什么是敏捷软件开发? 敏捷方法的项目计划 敏捷项目管理和传统项目管理 为什么使用敏捷? Scrum概述 Scrum的角色 ...敏捷开发中的估计方法 测试驱动开发 Scrum应用 支持工具和模版 一些常见的误解

    敏捷软件开发.pdf

     5A.1.6敏捷开发在纪律上要求很低  5A.1.7敏捷只适合最优秀的开发人员  5A.1.8敏捷是既老又新的、失败的、没有尝试过的  5A.2敏捷方法集的演进  5A.2.1XP第2版  5A.2.2Scrum  5A.2.3实用主义和无名的  5A....

    敏捷软件开发简介

    第一节 敏捷方法的含义 第二节 软件开发过程的比较 第三节 极限编程( eXtreme Programming ,XP)简介 准则 法则 活动 实践 讨论 应用实例 常见问题

    Android敏捷开发指南

    作者中分析了移动开发中常见的问题,从两方面阐述了ThoughtWorks使用的测试开发方案和相应的架构方法与常用工具应用,并进一步阐述了为移动开发流程所提供的持续发布方案。随着云计算、移动互联等一系列新技术概念的...

    敏捷软件测试常见的七个误区

     敏捷软件测试指的是在敏捷软件开发过程中跟质量相关的一系列活动,和传统意义上的软件测试有很多区别,因为敏捷软件测试的概念一直比较模糊,所以经常会有人走入误区,我曾经在瀑布型的软件开发模式下做过几年的...

    Web开发敏捷之道-应用Rails进行敏捷Web开发(第三版)

    在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分...

    软件工程相关资料.rar

    绝对超值!包含10个软件工程相关资料。均为完整版。如下:CMM软件过程改进前常见问题解答.doc。...敏捷开发流程与方法.ppt。敏捷开发项目流程指引.ppt。软件CMM-2015.ppt。软件架构设计.pdf。软件需求.pdf

    软件过程及生命周期模型

    软件过程及生命周期模型,常见软件开发模型 RUP 敏捷开发 迭代开发 增量开发

    将看板应用于软件开发:从敏捷到精益

    如今在敏捷软件开发中,项目的可视化(例如在墙壁上放置任务卡片就是常见的实践)往往被叫做“软件看板”,或者“任务看板”。我们甚至可以看到一些产品维护团队在类似瀑布过程模型中使用看板系统。那么,看板到底是...

    《iOS6开发指南》精彩书摘

    介绍了完整的iOS应用分析设计、编程、测试和发布过程,开发过程采用敏捷开发方法。敏捷开发方法非常时候与iOS开发,广大读者能够认真学习。开发采用的架构是分层设计的,对于iOS开发也是非常重要的。  本书没有包括...

    数据可视化,大屏,移动报表,数据中台,WEB应用的微代码NoBI(No Only BI)开发平台

    支持仪表盘备份恢复快照等, 满足企业级的版本控制开发上线流程要求。支持用户/组功能权限控制,支持行级别/字段级别数据权限控制。支持Django插件方式应用,可无限扩展,打造你专属的个性化应用。支持Django插件方式...

    软件测试常见面试题.zip

    请描述一下你对敏捷开发和测试驱动开发(TDD)的理解。 二、测试策略与计划 在一个软件开发项目中,你会如何制定软件测试计划?请详细描述你的步骤和考虑的因素。 在测试过程中,你如何确定测试的优先级?有哪些...

    hyperf-iot 是基于 Hyperf v2.1+VUE Primen 开发的号卡分销系统.zip

    这种特性使得开发者能够轻松地在静态网页中插入动态内容,实现数据渲染、条件判断、循环处理等功能,极大地简化了Web开发流程。同时,PHP也支持纯脚本文件编写,适用于构建复杂的后台逻辑。 PHP语法简洁明了,借鉴...

    软件测试常见面试题.pdf

    它在软件开发过程中的作用是什么? - 11. 请解释一下测试驱动开发(TDD)的概念以及如何实施。 - 12. 什么是负载测试和压力测试?它们的目的和区别是什么? - 13. 请描述一下持续集成(CI)和持续交付(CD)对软件...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

     国内知名的高端IT技术作家,已出版《Spring 2.0宝典》、《基于J2EE的Ajax宝典》、《轻量级J2EE企业应用实战》、《Struts 2权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。 目录: 第0章 学习Java...

Global site tag (gtag.js) - Google Analytics