敏捷开发和scrum学习

更新时间:2023-06-10 03:08:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

敏捷开发和scurm学习笔记

软件开发的生命周期

A、软件生命周期(SDLC)的一般步骤包括:确定问题、可行性分析与开发计划、收集需求、分析与设计、编码开发、测试、安装、维护。

B、典型的几种生命周期模式包括:瀑布模式、演化模式、螺旋模式、快速原型模式、喷泉模式和混合模式等。

瀑布模式:只有当一个阶段的文档获得认可才可以进入下一个阶段。

演化模式:用户先给出待开发产品的核心需求,并且在核心需求实现后,再提出反馈以支持系统的最终设计和实现(相当于多个瀑布式开发)。

螺旋模式:在瀑布模式的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制,知道采取了消除风险的措施后,才开始计划下一阶段的开发(它是瀑布模式和演化模式的结合,并加入了两者所忽略的风险分析所建立的一种软件开发模式;它是典型的迭代式生命周期模式)。

过程开发模式(混合模式或元模式):是把几种不同模式组合成一种混合模式,它允许一个项目能沿着最有效的路径发展。

敏捷开发的起源

1976年出现了第一部敏捷开发的书籍《软件度量》,阐述了迭代和增量开发实践。 2001年2月,敏捷开发宣言后成立敏捷联盟。

敏捷开发模式:敏捷开发生命周期的典型代表是XP编程(极限编程),是把传统的系统设计和实现由敏捷软件开发过程中的验收测试、重构和测试驱动所代替;把传统的集成和部署由敏捷软件开发中的持续集成和短周期所取代。

敏捷开发

A、 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

B、 敏捷开发的优点:帮助团队了解整个项目的开发过程

C、 目前使用广泛的敏捷开发方法:极限编程(XP)、Scurm开发、精益开发(Lean Development)、动态系统开发方法(DSDM)、特征驱动开发(Feature Driver Development)、水晶开发(Cristal Clear)等等。

D、 极限编程:

主要目的:降低需求变化的成本,提倡互动交流、反馈、简单、勇气、团队。 定义了一套简单的开发流程,包括:编写用户案例,架构规范,实施规划,迭代计划,代码开发,单元测试,验收测试等等。

核心做法:小规模,频繁的版本发布,短迭代周期。

·测试驱动开发(Test-driven development)。

·结对编程(Pair programming)。

·持续集成(Continuous integration)。

·每日站立会议(Daily stand-up meeting)。

·共同拥有代码Collative code ownership.

·系统隐喻(System metaphor)。

E、 Scrum开发

Scrum是一个敏捷开发的框架,它由一个开发过程,几种角色以及一套规范的实施方法组成的,它可以被运用于软件开发,项目维护,也可以被用来作为一种管理敏捷项目的框架。

Scrum定义了四种主要的角色:

1、产品拥有者(Product Owner):该角色负责产品的远景规划,平衡所有利益相关者(stakeholder)的利益,确定不同的产品需求积压的优先级等。它是开发团队和客户或最终用户之间的联络点。

2、利益相关者(Stakeholder):该角色与产品之间有直接或间接的利益关系,通常是客户或最终用户代表。他们负责收集编写产品需求,审查项目成果等。

3、Scrum专家(Scrum Master):Scrum专家负责指导开发团队进行Scrum开发与实践。它也是开发团队与产品拥有者之间交流的联络点。

4、团队成员(Team Member):即项目开发人员。

Scrum的名词解释:

1、 Backlog:可以预知的所有任务,包括功能性的和非功能性的所有任务。

2、 Sprint:一次跌代开发的时间周期,一般最多以30天为一个周期。在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。

3、 Sprint backlog:一个sprint周期内所需要完成的任务。

4、 ScrumMaster:负责监督整个Scrum进程,修订计划的一个团队成员。

5、 Time-Box:一个用于开会时间段。比如每个daily scrum meeting的time-box

为15分钟。

6、 Sprint planning meeting:在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块,决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。

7、 Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向ScrumMaster汇报三个项目:今天完成了什么?遇到了障碍无法继续下去?明天要做什么?通过该会议,团队成员可以相互了解项目进度。

8、 Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。

9、 Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。

实施Scrum的过程介绍(循环操作)

1、 确定SprintBacklog:将整个产品的backlog分解成Sprint Backlog,这个

Sprint Backlog是按照目前的人力物力条件可以完成的。

2、 召开sprint planning meeting:划分,确定这个Sprint内需要完成的任务,

标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。

3、 Sprint开发周期:进入sprint开发周期,在这个周期内,每天需要召开

Daily Scrum meeting。

4、 成果演示:整个sprint周期结束,召开Sprint review meeting,将成果演

示给Product Owner。

5、 回顾:团队成员最后召开Sprint retrospective meeting,总结问题和经验。 每日会议:

目的:信息同步平台,非交流问题、讨论问题渠道。

形式:固定地点、时间的站立会议。

对sprintbacklog形成燃尽图。

敏捷开发的原则和方法

迭代式开发:即整个开发过程被分为几个迭代周期,每个迭代周期是一个定长或不定长的时间块每个迭代周期持续的时间一般较短,通常为一到六周。 增量交付:产品是在每个迭代周期结束时被逐步交付使用,而不是在整个开发过程结束的时候一次性交付使用。每次交付的都是可以被部署到用户应用环境中被用户使用的、能给用户带来即时效益和价值的产品。

开发团队和用户反馈推动产品开发:敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。同时,团队对于用户的需求也能及时提供反馈意见。

持续集成:新的功能或需求变化总是尽可能频繁地被整合到产品中。一些项目是在每个迭代周期结束的时候集成, 有些项目则每天都在这么做。

开发团队自我管理:拥有一个积极的、自我管理的、具备自由交流风格的开发团队,是每个敏捷项目必不可少的条件。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。

流程图

精髓:

专注于在最短的时间内实现最有价值的部分。

快速的经常的监督实际产品发展的状况(两周~一个月)。

团队按照商业价值的高低先完成高优先级的产品功能,并自主管理,凝结了团队智慧创造出最好的方法因而提高效率。

每隔一两周或者一个月,我们就可以看到实实在在的可以上线的产品。此时,就可以下一步的决定是继续完善功能实现更多需求或者直接发布了。

F、 精益开发

1、 精益开发的原则:

强调学习。

在最后时刻做决定。

用最快的速度交付用户。

给团队自主权。

诚信。

全局观。

G、 构件技术介绍

构件技术是指通过组装一系列可复用的软件构件来构造软件系统的软件技术,通过运用构件技术,开发人员可以有效的进行软件复用,减少重复开发,缩短软件开发的时间,降低软件的开发成本。

H、 自我管理的原则:

目标原则:大到职业规划、小到每件事情的目标,对于目标的制定和管理,都需要我们不断的去制定和执行。

学习能力:学历代表过去,经验代表现在,学习能力代表未来,一个人的学习能力代表了他将来的成绩。

心态:一个人的态度决定一个人的“高度”,激情而投入的做事与麻木而呆滞的做事会导致完全不同的两种成果。

要事第一:工作要有计划和优先级。

执行力:有目标是方向,没执行也不会有结果,执行力是快速完成的保障。

本文来源:https://www.bwwdw.com/article/75t1.html

Top