“原文”: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.
采用Iterative
与Incremental
方式分阶段进行,密集review
是否符合需求。
4.
流程可以简单,但规划与执行必须严谨。
5.
强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整。
2 RUP
开发流程- Rational Unify Process
RUP
为IBM Rational
公司经过多年的研发与经验所提出的软件开发流程,其内容含盖Business
modeling, Requirement Modeling, Logical Design, Implementation, Testing, Deployment
等软件开发生命周期的直接工作,与Project Management, Change & Configuration Management
,Environment 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 tests
;4. Coding
前必须完成Unit Test
与Acceptance tests
程序,所有模块整合前都须经过Unit Tests
;5.
开发人员必须快速响应Bug
与需求变更;6.
要求二人一组使用一台计算机设计程序,当一人coding
时,另一人负责思考与设计;7.
程序 必须符合程序规范,并常做程序的重整(Refactoring)
。
XP
属于较精简的流程,于导入应注意几件事情:1.
最好有顾问给予协助;2.
持续的Review
;3.
可适当调整流程,但不可失去其基本精神。
4 SCRUM
开发流程
SCRUM
开发流程是Agile Process
的一种,以英式橄榄球争球队形(Scrum)
为名,基本假设是『开发软件就像开发新产品,无法一开始就能定义Final Product
的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功』。 Scrum
将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决
各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此SCRUM
非常适用于产品开发项目。
SCRUM
开发流程通常以30
天为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于30
天后交付成果,团队每天用15
分钟开会检视每个成员的进度与计划,了解所遭遇的困难并设法排除。
SCRUM
与传统开发流程及项目管理差异较大,于导入时最好有顾问协助。
5
总结
Agile Process
的精神已经成为共识,但是没有一种固定的流程可以重复使用在不同的项目上。 而且不管是RUP
、XP
、SCRUM
、或其它的开发流程都允许相当大的弹性,我们必须按项目性质的不同,调整或混合出适合的开发流程,并允许团队于进行中
做必要的弹性修改,方能达成目标。
6
参考数据
RUP
:
www.rational.com
XP
: www.extremeprogramming.org
SCRUM
: www.controlchaos.com
AGILE
: www.agilealliance.org
分享到:
相关推荐
### 敏捷开发流程详解 #### 一、敏捷开发概览 **敏捷开发**是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、快速响应变化和持续交付高质量的产品。与传统的瀑布式开发模型相比,敏捷开发更加...
Scrum+XP是敏捷开发中常见的模式,前者偏重于流程管理,而后者偏重于敏捷技术实践。由于敏捷开发的流程和方法对市场和技术变化的快速响应能力,使得其特别适合于移动互联网等快速发展的项目。敏捷开发模式能够使项目...
3. **Scrum框架**:Scrum是最常见的敏捷开发框架之一,包括Sprint(短期迭代)、产品待办事项列表、每日站会、回顾会议和计划会议等关键元素。Sprint是一个固定时间长度的工作周期,团队在这个周期内完成可交付的...
敏捷开发的过程是动态的,它要求开发人员和团队持续学习、适应和改进。它鼓励开发者快速交付价值,同时持续审视并提升软件开发过程本身。敏捷方法论不是一种固定的做法,而是一种适应变化、持续改进的态度和方法。...
Kanban是敏捷开发的一种可视化工具,姜信宝的分享可能涵盖了如何利用Kanban板来优化工作流程,提高团队的透明度和协作效率。 9. **张刚-敏捷视角下的设计方法改进**: 从敏捷的角度出发,张刚可能介绍了如何改进...
在敏捷开发中,常用故事点(Story Points)进行工作量估计,这考虑了任务的复杂性和不确定性。测试驱动开发(TDD)是Scrum中的常见实践,它要求在编写功能代码之前先编写测试用例,以确保代码质量。 **敏捷项目管理...
敏捷开发流程通常包括多个子项目,每个子项目都经过测试和集成,确保软件在整个开发过程中始终保持可运行状态。这种迭代开发的方式允许团队在每个阶段根据新的信息和需求调整方向,从而更好地适应变化。敏捷开发还...
3. **Scrum框架**:Scrum是最常见的敏捷开发框架,由角色(产品负责人、Scrum Master和开发团队)、事件(Sprint、Sprint Planning、Daily Scrum、Sprint Review和Sprint Retrospective)和工件(产品待办事项列表、...
这份手册涵盖了多个关键领域,旨在帮助团队高效地实现敏捷开发流程,提高软件开发的灵活性和响应能力。 1. **部署和管理** 敏捷开发框架强调快速迭代和持续集成,因此在部署和管理方面,它提倡自动化工具的使用,...
敏捷开发的12条原则进一步细化了这些价值观,强调了软件开发过程中注重价值交付、可持续性、优秀技能和设计的重要性,以及团队自组织和不断反思优化的行为。敏捷开发包含了多种实践模式,如AMDD、AUP、XP、FDD、...
总的来说,"力软敏捷开发框架资源手册"是一个全面的指南,它不仅提供了力软框架的技术细节,还强调了开发过程中的效率和协作。通过深入学习和实践手册中的内容,开发者将能够更熟练地运用力软框架,提升项目开发的...
故事板(Story Board)和看板(Kanban)是敏捷开发中常见的工具,用来追踪项目进度。敏捷开发强调团队协作,跨职能团队共同估算任务并进行迭代开发。为了提升代码质量,敏捷团队也可能会进行代码审查。 敏捷开发...
敏捷开发流程一般包括以下几个阶段: 1. **计划会议**:确定 sprint 的目标和工作范围。 2. **每日站会**:团队成员分享进度,讨论问题和障碍,以便快速解决。 3. **开发工作**:开发人员根据计划进行编码和测试。 4...
在敏捷开发实践中,常见的框架包括Scrum、Kanban、XP(极限编程)等。每个框架都有其特定的实践和规则,如Scrum中的冲刺(Sprint)、每日站会(Daily Scrum)、产品待办事项列表(Product Backlog)等,旨在帮助团队...
**CMM和敏捷开发概述** CMM,全称为Capability Maturity Model,能力成熟度模型,是一种评估软件开发组织过程能力的框架。CMM分为五个等级,从初等级的不成熟到最高级的优化,旨在通过提升过程管理和改进,提高软件...
火星人敏捷开发手册是2012年发布的一份详细指南,主要...火星人敏捷开发手册全面覆盖了Scrum敏捷开发方法的理论基础和实践操作,是一份宝贵的资源,对于希望实施或改进敏捷开发流程的团队来说,具有重要的参考价值。
**敏捷开发** 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法论,它强调灵活性和响应变化。在2001年,一群软件开发领域的专家共同提出了敏捷宣言,以此来对抗传统瀑布模型的僵化和低效。敏捷宣言包含四个核心...