敏捷开发 开发模型 项目管理 java【东北培训】
速度是企业竞争致胜的关键因素,软体专案的最大挑战在于一方面要应付变动中的需求,一方面要在紧缩的时程内完成专案,所以软体团队除了在技术上必须日益精进,更需要运用有效的开发流程,以确保团队能够发挥综效。 这正是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**是两种常见的敏捷开发框架,它们提供了具体的方法论来指导团队实施敏捷开发。 1. **Scrum**:偏向于过程,强调通过固定的会议和角色来确保项目的顺利进行。 2. **XP (Extreme Programming)**:...
Scrum敏捷开发流程说明 本文档主要阐述了基于Scrum敏捷方法的产品开发过程,以及每个过程相关的产出物。 Scrum敏捷开发流程是一个迭代式开发过程,强调团队协作、快速响应变化和不断改进。 1. 角色及职责 * 产品...
Scrum作为敏捷开发的一种方法,基于经验型流程控制理论,倡导从实际经验中学习并据此作出决策。它的核心价值观包括承诺、专注、公开、尊重和勇气。Scrum的特点包括高效、简单、快速响应、自组织和良好的沟通。目标是...
全面的敏捷开发实施流程信息,供刚开始的实施敏捷开发的团队了解Scrum敏捷
敏捷开发流程与方法讲义.pptx
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
敏捷开发流程总结 敏捷开发流程是一个轻量级的软件开发方法,旨在通过增量的、迭代的开发过程来交付有价值的软件。整个开发周期包括多个小的迭代周期,每个小的迭代周期称为一个Sprint,每个Sprint的建议长度为2到4...
敏捷开发的入门!系统讲解敏捷开发的相关知识!
一套个人在敏捷开发中总结的敏捷开发流程规范与流程每一步的输出制品。
敏捷开发流程详细说明 敏捷开发流程详细说明 敏捷开发流程详细说明
华为敏捷软件开发流程解读,大厂的成功实践总结,站在巨人肩膀
敏捷开发
《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...
Scrum敏捷开发流程框架是一种广泛应用于软件开发领域的项目管理框架,尤其在复杂和不确定性的环境中,Scrum展示了其灵活性和高效性。Scrum的核心在于它强调迭代和增量开发,通过频繁的反馈和调整来应对变化,确保...
"敏捷开发 敏捷开发 敏捷开发 敏捷开发"这个标题多次提及敏捷开发,表明其重要性和讨论的焦点。 描述中重复的“敏捷开发敏捷开发”,进一步强调了这一主题的重要性,暗示内容可能涵盖了敏捷开发的各种方面,如原则...
“敏捷框架6.1.6.2企业专业版”可能提供了丰富的功能,如项目管理工具、敏捷图表、自动化流程等,以支持上述敏捷原则的实施。对于开发者和项目经理来说,学习和应用这个框架可以帮助提高项目交付的速度和质量,同时...