scrum 敏捷开发

引言

之前的博客中涉及原理和技术方面的内容较多,本篇博客主要谈一谈经常提到的敏捷开发和 scrum。

敏捷开发

相信大部分人都学过瀑布开发模型,它是以文档为驱动的,在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。

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

核心原则:

  • 主张简单
  • 拥抱变化
  • 第二个目标是可持续性
  • 递增的变化
  • 令投资最大化
  • 有目的的建模
  • 多种模型
  • 高质量的工作
  • 快速反馈
  • 软件是主要目标
  • 轻装前进

常用工具:

  • Visual Studio Team Foundation Server
  • Atlassian Jira
  • Axosoft
  • LeanKit
  • Planbox

scrum

Scrum是一个偏重于过程的敏捷开发的具体方式。

Scrum开发流程中的三大角色:

  1. 产品负责人(Product Owner)

主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

  1. 流程管理员(Scrum Master)

主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

  1. 开发团队(Scrum Team)

主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

在这里插入图片描述

Scrum的开发流程:

  1. 首先需要有一个 Vision ,就是所做的产品或者所做项目的愿景。这个需要所有 Team Members,包括 Product Owner 一起确定,然后大家朝着同样的目标前进。
  2. 维护 BacklogVision 出现后,Product Owner 会维护一个 Scrum 中我们提到的第一个文档,即 Backlog。它可以理解成从产品当中,从各个角度收集的需求, Product Owner 要做的事情就是维护 Product Backlog,并且将 Backlog 一条一条的按照优先级排好顺序。Product Owner 是唯一有权利维护这个列表的人。这个时候合理利用工具,就能免去写文档的的这一步,可以直接将需求通过任务的方式收集,每个需求就是一条任务,Product Owner 可以给任务打标签来标示优先级。
  3. 拆分 Sprint ,随后团队成员会针对这个 Scrum 把它拆分成一个个的 Sprint ,就是开发周期。然后将 Backlog 里面的项目添加到 Sprint 中去,成为 Sprint Backlog。每一个 Sprint 开始的时候,需要进行一个Sprint Plan。
  4. 运行 Sprint Plan,Sprint Plan 就是整个团队一起,通过 Backlog 从优先级最高的这个item 开始挑,挑出 ProductOwner 对Backlog 进行介绍。紧接着的是,大家将 Backlog 拆分成单个的Task,每一个成员在每一天的工作当中领 Task,完成 Task。
  5. 在 Scrum run 起来之后,还有一件事情是 Daily Scrum 。在 Daily Scrum 中,每个成员只需三件事情:我今天做了什么,明天要做什么,有什么是我搞不定的。Daily Scrum 一般来说会控制在15分钟之内,而且所有的成员必须要站着开会。
  6. 当 Scrum 结束后,每个成员会产出一个产出物。这个产出物在 Scrum 里面,可以是一个可以运行的软件,也可以是一个可展示的功能。之所以这么说是因为有一个Sprint Rview 的阶段,需要通过 Demo 在 Product Owner 以及其他的 Stake Holders 面前,现场演示你做好的东西。
  7. 在 Sprint Review 结束之后就是 Retrospective。整个团队的人都要坐下来聊一聊,Sprint 做得好不好,有哪些地方需要修改。

参考

https://baike.baidu.com/item/敏捷开发
https://www.zhihu.com/question/19638322/answer/107371902

猜你喜欢

转载自blog.csdn.net/bingfeilongxin/article/details/88219166