软件项目管理论文——敏捷方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
敏捷开发
1 概述
1.1什么是敏捷开发
◆敏捷方法的产生-
2001年2月,17个方法学家在美国犹他州Snowbird成立了敏捷软件开发联盟(),并共同起草了《敏捷软件开发宣言》,这标志着敏捷开发的诞生。这一模式随后被硅谷创业公司大量应用,并于近几年被引入国内。
敏捷开发模式中,一个项目被分解为多个部分或多个步骤。在每个阶段完成后,项目都可以拿出一定程度可交付的产品。这样做便于实现产品交付目标,降低整个项目的复杂度,同时在项目早期就能拿出初具雏形的产品。
◆敏捷宣言的4条价值观
1)个体和交流胜于过程和工具
2)工作软件胜于综合文档
3)客户协作胜于洽谈协议
4)回应变革胜于照计划行
◆敏捷宣言的12条基本原则
l)最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意
2)即使到了开发的后期也欢迎改变需求,敏捷方法得用变化来为客户创造竞争优势
3)经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间
隔越短越好
4)在整个项目开发期间,商务人员和开发人员必须天天都工作在一起
5)围绕被激励起来的个体来构建项目,给他们提供所需的环境和支持,并且信任他们能
够完成工作
6)在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈
7)工作的软件是首要的进度度量标准
8)敏捷方法提倡可持续的开发速度,责任人、开发者各用户应该能够保持一个长期的、
恒定的开发速度
9)不断地关注优秀设计的技能和好的设计会增强敏捷能力
10)简单——使未完成的工作最大化的艺术——是最根本的
11)最好的架构、需求和设计出自于自组织的团队
12)每隔一定时间,团队会在如何才能更有效工作方而进行反省,然后相应地对自已的行
为进行调整
1.2 敏捷方法的过程模型
主要的几种敏捷方法的过程模型如下:
➢SCRUM
➢极限编程XP
➢自适应软件开发Adaptive Software Development
➢精益软件开发Lean Software Development
➢特征驱动开发Feature Driven Development
➢敏捷统一开发过程Agile Rational Unified Process
➢动态系统开发方法Dynamic System Development Method
➢水晶系列方法Crystal
这些敏捷方法的共同点是:使用短的固定长度迭代和反馈快速递交测试过的工作软件
2过程模型介绍
2.1SCRUM并列争球法
Scrum的英文意思是橄榄球运动的一个专业术语,表示。争球。的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。而Scrum 就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。
2.1.1三大角色:
➢产品负责人(Product Owner)
主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。
➢流程管理员(Scrum Master)
主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。
➢开发团队(Scrum Team)
主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。
2.1.2 Scrum流程图
图 1 Scrum流程图
如何进行Scrum开发?
1、我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个
是由Product Owner 负责的;
图 2 Product Backlog
2、Scrum Team根据Product Backlog列表,做工作量的预估和安排;
3、有了Product Backlog列表,我们需要通过Sprint Planning Meeting(Sprint计划会议)来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;
图 3 任务看板
4、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);
5、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的Sprint burn down (Sprint燃尽图);
图 4 每日站立会议
6、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员;