相关文章推荐
傻傻的滑板  ·  Google 云端硬盘 - Tableau·  2 月前    · 
卖萌的紫菜  ·  Microsoft .NET ...·  1 年前    · 

软件开发模式之敏捷开发(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扫盲篇
百度百科
敏捷开发 模型讲解

软件开发模式之敏捷开发(scrum)[原文]https://blog.csdn.net/xiajun2356033/article/details/81513957[RbY本文转发时已对原文错误适当纠正;]简介这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp敏捷开发,人人都在谈论敏捷开发。那什么才是敏捷开发呢?目录1.什么是敏捷开发?2.传统的开发模式和敏捷开发模式的对比。3.敏捷开发scrum的实施。一. 什么是敏捷开发敏捷开发 Scrum 本指橄榄球运动中的“争球”的动作——团队通力合作,在场地内传球。这个过程需要认真配合、信念一致、目标明确。这个过程完美体现了对一个团队的所有要求。 用 Scrum 命名一种开发过程,比喻开发团队在开发一个项目时,像打橄榄球一样迅速、激情,人人你争我抢地完成它。 Scrum 方法——简单说,就是以 交付 与 迭代 为核心的方法。「每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些任务是不是自己应该做的,看看有没有更好的方法」 Scrum 中三个角色 Product Own 》许多IT主管或是工程师,都把 敏捷开发 误以为是一种快速交付的方法,就因为它比传统开发方法快一些,当然;还有它叫做「敏捷」的缘故。因此我们常常听到主管们在会议上抱怨:「不是已经在RUN 敏捷开发 法了吗,为什么开发速度还是那么慢呢?」. 「敏捷」二字的误导 这一篇文章的目的不在回答上面那个说来话长,...
原创作品,转载请注明出处http://blog.csdn.net/baodinglaolang/article/details/10042857 android 敏捷开发 系列(二)——《 敏捷开发 架构图》 书接上回,首先奉上 敏捷开发 的架构图 首先为大家解释里面的几个概念 Frame 整个项目的框架、组织者。里面并没有实际的代码,只是通过配置文件决定了项目需要哪几个模块 Mo...
在讲 敏捷开发 之前,我们先来看一下,开发 模式 都有哪些。开发 模式 包括:瀑布式开发(也叫线性开发 模式 )、快速原型开发、螺旋开发、迭代式开发(也叫迭代增量式开发)以及 敏捷开发 。那接下来,我们就来看一下,这四种开发 模式 的特点。 1. 瀑布式开发(也叫线性开发 模式 ): 定义: 软件开发 领域,传统瀑布式开发是最典型的预见性的方法,对于产品研发的过程定义非常明确,严格遵循预先计划的需求、分析、设计、编码、测试的...
大家好,我是煎饼哥,本期向大家介绍一个关于 敏捷开发 的方法,叫做 scrum ,相信资深的产品经理都接触过类似的项目管理方法。 scrum 敏捷开发 ,是一个美国统计学教授记录了多年工作经验,总结出来的一套简单易懂的开发方法,我接触过不少产品经理,惊奇发现不少产品经理的确是产品把控的非常好,输出的BRD,MRD,PRD等都非常专业,但是却没一套很好的项目管理方法。   干货分享第一期:10分钟教会
敏捷开发 流程是一种快速、灵活的 软件开发 方法,它通过迭代的方式来开发项目,并且重视通过持续的交流、协作和调整来满足客户的需求。 Scrum 是一种 敏捷开发 流程的具体实现方法。它是由三种角色组成的:产品负责人、 Scrum 团队和 Scrum 经理。产品负责人负责确定项目的目标和范围, Scrum 团队负责执行项目并交付可用的产品,而 Scrum 经理则负责协调团队的工作并确保项目的进度。 Scrum 流程通常分为以下几个步骤: 1. 冲刺计划会议:在开始新的冲刺(迭代周期)之前,团队会进行冲刺计划会议,确定在本次冲刺中要完成的工作。 2. 每日站立会议:每天举行的短暂会议,用于更新团队成员的工作进度、讨论任何问题并寻求解决方案。 3. 冲刺审查会议:在冲刺结束时举行的会议,用于回顾本次冲刺的成果、讨论改进方法并确定下一步工作。 4. 冲刺总结会议:在冲刺结束后举行的会议,用于回顾 ### 回答2: 敏捷开发 流程是一种迭代、增量式的 软件开发 方法。它强调通过紧密合作和快速响应变化来提高团队的效率和产品的质量。 敏捷开发 流程主要包括需求分析、计划、设计、编码测试和发布等阶段,每个阶段都是迭代进行的。团队成员在每个迭代期间都要进行会议讨论、交流以及及时地调整开发计划和需求。 敏捷开发 流程注重客户需求的积极响应,团队与客户之间的密切合作和及时反馈是其关键。 Scrum 是一种 敏捷开发 框架,它是通过在开发过程中强调团队合作、迭代开发和持续改进来实现项目管理的。 Scrum 流程包括三个关键角色: 产品负责人、 Scrum 团队和 Scrum 大师。产品负责人负责所有关于产品的决策和需求管理,包括产品待办事项的整理和优先级排序。 Scrum 团队由开发人员组成,他们承担编码、测试和提交可交付的工作成果。 Scrum 大师负责支持团队高效完成工作,并确保 Scrum 流程的正确执行。 Scrum 流程由一系列时间盒(time-boxed)的活动组成,例如每日站会、Sprint计划会议、Sprint评审和Sprint回顾会议。每个时间盒内的工作是固定的,活动的目标必须在规定的时间内完成。这种时间限制鼓励团队高效工作,并提供了一个持续改进的机会。 总结来说, 敏捷开发 Scrum 流程都强调迭代开发、团队协作和持续改进。它们通过灵活的方法和强调人际间的互动,帮助团队更好地应对需求变化和提高工作效率,从而保证项目的成功。 ### 回答3: 敏捷开发 流程是一种迭代与增量的 软件开发 方法,它强调通过频繁的沟通、快速回应变化以及高度协作的方式来适应需求的变化。 敏捷开发 流程可以提高团队的灵活性和适应性,同时也能够减少开发中的风险。 Scrum 流程是 敏捷开发 流程中的一种常见方法,它侧重于团队合作和自组织。 Scrum 流程将工作分为若干个可以在短时间内完成的时间段,称为“冲刺”。每个冲刺通常持续一至四个周,在冲刺开始前,团队确定要完成的任务和目标。在每个冲刺期间,团队会每天进行短暂的会议,称为“每日站会”,以便了解进展情况和解决问题。 Scrum 流程中的关键角色包括产品负责人、 Scrum Master 和开发团队。产品负责人负责定义产品需求和优先级,并在每个冲刺中确定需要完成的任务。 Scrum Master 负责确保团队能够按照 Scrum 流程进行工作,并协调团队内外的事务。开发团队是负责实际开发任务的成员,他们通过自组织的方式进行工作,并在每个冲刺期间交付可用的软件。 Scrum 流程强调快速的反馈和可视化,通过可见的工作看板和冲刺回顾会议,团队能够及时了解项目的进展和问题,并做出相应的调整。 Scrum 还鼓励团队进行定期的迭代回顾和持续改进,以提高团队的工作效率和建设质量。 总之, 敏捷开发 流程和 Scrum 流程都是遵循快速响应变化,并通过高度协作的方式进行工作的 软件开发 方法。它们能够提高团队的灵活性和适应性,同时也能够加速项目的交付进度,提高客户满意度。