软件工程实践: 敏捷开发流程图(scrum)

article/2025/9/11 9:21:01

软件开发模式之敏捷开发(scrum)

[原文]https://blog.csdn.net/xiajun2356033/article/details/81513957
[RbY本文转发时已对原文适当整理并纠错;]

转载说明:

  • 敏捷开发(scrum), 从上世纪90年代开始在国外提出, 2010年以后逐渐引起国内关注;
  • 有人对敏捷开发的理解是“快”,其实只是其正确实施的结果; 这不是敏捷开发的本质;
  • 软件工程实践, 跟造房子那样的土木工程完全不一样; 软件工程是用逻辑构件来搭建,不是物理结构,整个逻辑大厦任何一个节点不合格,软件就可能崩塌;
  • 试着把设计和编码分两个阶段,期望在设计阶段就把需求理清楚,结果证明不可行,而需求还在不断改变,甚至需求可能还是冲突矛盾的;
  • 人类大脑很少拥有完美的理性思维;我们的理性很多时候只能保障一个小环节,涉及到复杂系统就勉为其难了; 于是,敏捷开发就有用了。
  • 敏捷开发的特点就是“摸着石头过河”,又有点像深度学习中的梯度下降法,我们走一步看一步,每一步都走得很踏实(本地测试),逐渐趋近目标。
  • 敏捷开发比瀑布式开发对团队的要求相对低些,不一定要有高级架构师,不要求完全理性正确,每走一步都有及时的测试来验证。
  • 敏捷开发成功实施的前提是,团队成员对用到的技术栈要熟悉,大家对敏捷流程要认同。
  • 敏捷开发是用来提升协作效率的, 也引入了用来提高软件质量的迭代; 但却难以提升团队成员技术能力; 因此对开发人员个人素质要求更高些;
  • 敏捷开发也适合基于英特网的虚拟团队, 可远程协作分布式开发;尤其对3~12人的小团队更有优势。

本人看过国内最早提到"敏捷性"(介绍敏捷方法的使用,包括极限编程)的书, 是2010年版"图灵计算机科学丛书"之一的《软件工程(第4版)》; [美]Shari Lawrence Pfleeger & [加]Joanne M.Atlee 著; 杨卫东 译;
书名原文:Software Engineering: Theory and Practice , Fourth Edition.

阅读链接:
敏捷开发推荐书:敏捷革命
《敏捷革命:提升个人创造力与企业效率的全新协作模式》该书由【美】杰夫·萨瑟兰所著,于2017年4月由中信出版社出版发行。

-
  • 敏捷开发简介

这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp极限开发,人人都在谈论敏捷开发。那什么才是敏捷开发呢?

  • 本文目录

1.什么是敏捷开发?
2.传统的开发模式和敏捷开发模式的对比。
3.敏捷开发scrum的实施。

  • 一. 什么是敏捷开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  • 二. 传统的开发模式和敏捷开发模式的对比

瀑布模型:–传统的开发模式

在这里插入图片描述

优点:

  1. 为项目提供了按阶段划分的检查点。
  2. 当前一阶段完成后,您只需要去关注后续阶段.
  3. 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

缺点:

  1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
  2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
  3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
  4. 瀑布模型的突出缺点是不适应用户需求的变化。

敏捷模型:–敏捷开发模式
在这里插入图片描述

优点:

敏捷开发的高适应性,以人为本的特性。
更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

缺点:

由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

  • 三. 敏捷开发scrum的实施

Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,相当于大家像打橄榄球一样迅速、富有战斗激情; 而Sprint意思是短跑冲刺。Scrum就是这样的一个开发流程。

Scrum开发流程中的三大角色

– 产品负责人(Product Owner)

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

– 流程管理员(Scrum Master)

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

–开发团队(Scrum Team)

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

scrum开发流程图

在这里插入图片描述

1、我们首先需要确定一个Product Backlog(产品需求列表),这个是由PO负责的(如图(一))。

图(一)
在这里插入图片描述

2、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog。

3、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

4、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图)(如图(二)和如图(三))。

图(二)
在这里插入图片描述
图(三)
在这里插入图片描述

5、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本。

6、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品。

7、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中。

图(四)

在这里插入图片描述

本文链接:
敏捷开发管理工具:teambition
现代软件工程讲义4 Scrum/Sprint

参考链接:
敏捷开发之Scrum扫盲篇
百度百科
敏捷开发 模型讲解


http://chatgpt.dhexx.cn/article/XtJjlseF.shtml

相关文章

敏捷开发框架—Scrum

Scrum 1 什么是Scrum?2 Scrum的3种角色3 Scrum 敏捷开发流程 1 什么是Scrum? Scrum是一个敏捷开发框架,是一个增量的,迭代的开发过程。在这个开发框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代…

敏捷开发scrum详解 敏捷项目管理流程

随着互联网的兴起,用户对线上软件的依赖度越来越高,从而导致用户对软件的需求越来越多,所以软件的更新迭代速度越来越快。对于互联网公司来说,速度成了企业竞争制胜的关键因素,一方面用户的需求在不断变化,另一方面采用传统开发模式的互联网哦你公司难以满足这些需求,所…

什么是敏捷管理及scrum方法

敏捷管理是规划和指导项目流程的迭代方法。现实的感受就是产品交付周期变快了,每个项目迭代通常是安排在两周内。 Scrum是敏捷项目管理方法中的一种方法。是一种迭代式增量软件开发过程。 Scrum主要角色包括主管、产品负责人、开发团队。主管的职责与项目经理类似&a…

敏捷开发流程【Scrum】

敏捷是项目管理里的一种方法论,适用于“范围和需求都不明确”的项目,采用小步快跑的方式,每1–4周就完成一次迭代并投入使用、收集反馈,然后再次迭代,从而不断逼近真实需求的一种方法论! Scrum是敏捷里最具…

什么是敏捷管理 常用的敏捷Scrum会议有哪些

企业敏捷性的目的是为了快速适应市场变化,如果团队不能针对竞争威胁和客户需要尽快做出调整,从而导致的失败或耽搁对公司来说代价高昂。因此,敏捷理念必然带给了团队切实好处,否则它的应用也不会如此广泛。那么敏捷常用的会议使用…

使用Scrum进行敏捷项目管理

Scrum是一种敏捷方法,旨在指导团队进行产品的迭代和增量交付。通常被称为“敏捷项目管理框架”,其重点是使用经验过程,使团队能够快速,有效,有效地做出改变。传统的项目管理方法确定了需求,以控制时间和成本…

敏捷项目管理Scrum方法实践

敏捷项目管理Scrum方法实践 1.Scrum实践概述 Scrum是迭代式增量软件开发的一种流程,是敏捷方法论中的重要框架之一,通常应用于敏捷软件开发。Scrum团队主要由敏捷教练、产品负责人(代表利益客户)、开发团队组成。 首先产品负责人…

什么是SCRUM敏捷开发

Scrum 是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是一至四周。在Scrum中&#xff…

八分钟敏捷开发(scrum)扫盲

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。 Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 敏捷开发的特点就…

敏捷开发之Scrum扫盲篇

现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节&#x…

敏捷开发scrum模型

一、 什么是敏捷? Agile在中文的字面意思是敏捷、灵活、利落。相应的“敏捷开发”也可以通俗地理解成为快速高效地进行开发。但敏捷不是开发的具体方法,它是一套能够指导企业进行高效开发的价值观与原则。 二、产生 瀑布模型 瀑布开发就相当于服务员将…

什么是敏捷开发(Scrum)?

什么是敏捷开发(Scrum)? 进入我的博客阅读体验更好哦!博客文章链接:什么是敏捷开发(Scrum) (lxq.icu) 何为Scrum Scrum是一个轻量级框架,它可以帮助人们、团队和组织通过针对复杂问题的自适…

Scrum 敏捷项目管理

在理解敏捷项目管理之前,我们先看一下它与传统项目管理之间有什么联系和差异。 传统项目管理模式:一般指瀑布模式。它必须完成上一阶段工作并通过检验才能启动下一阶段工作,将整个项目过程划分为五大过程组。 要求在项目建设时,…

scrum 和敏捷介绍(概念、流程、自己的理解)

scrum 和敏捷介绍 背景 本文介绍 scrum 框架,基于自己的理解,有些可能不够准确,请评论反馈 scrum是敏捷中的一种,比较出名的一种,但并不是所有 scrum的规模是比较小的,通常都是小团队10人内的 很多公司…

什么是scrum敏捷项目管理

在项目管理中,不少企业和项目团队也发现传统的项目管理模式已不能很好地适应今天的项目环境的要求。因此,敏捷项目管理应运而生,本文将为大家介绍Scrum敏捷项目管理以及应用方法。 1. 什么是Scrum敏捷项目管理 敏捷项目管理作为新兴的项目管…

敏捷开发(scrum)简介

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 一、四大价值观&am…

Python面试题

1、用一条SQL语句查询出每门课都大于80分的学生姓名。 select name, min(fenshu) from stu; select name, min(fenshu) from stu group by kecheng; select name, min(fenshu) from stu group by kecheng having min(fenshu)>80 select name from(select name, min(fens…

110道Python面试题

作者 | 哈哈 来源 | python爬虫人工智能大数据(ID:pylearn) 1、一行代码实现1--100之和 利用sum()函数求和 2、如何在一个函数内部修改全局变量 函数内部global声明 修改全局变量 3、列出5个python标准库 os:提供了不少与操作系统…

吐血总结!100个Python面试问题集锦(下)

来源 | Python语音识别 作者 | 深度学习与python(ID:PythonDC) Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的100个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出&#…

吐血总结!100个Python面试问题集锦

Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的100个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这100道面试题涉及Python基础知识、Python编程、数据分析以及Py…