当前位置: 首页 > 编程日记 > 正文

为什么Scrum模式适合软件开发?

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

摘自基于Visual Studio 2010 进行敏捷/Scrum模式开发

软件行业至今已经有超过40年的历史,很多在软件工程中的管理方法都是在不断摸索中改进而来的。早期的软件行业由于规模有限,绝大多数属于作坊型,几个人在一起靠着自己的聪明才智创造出软件产品;但是当团队规模不断扩大的时候,开发人员开始需要一种模型来组织越来越庞大的团队,满足越来越复杂的需求。因为没有经验可循,软件开发团队将很多传统工业工程的方法借鉴到软件行业,因而出现像“瀑布式”的模型。[1]“瀑布式”模型要求我们在实际的开发工作开始之前进行很多非常细致的设计和计划,力图将不可控的开发过程细化成可以控制的颗粒,以达到对复杂项目的总体控制目的。但是“瀑布式”模型忽视了软件项目的一个本质特点,那就是需求的不确定性;我们不可能像造汽车一样在上生产线之前把所有的零件都设计好,所有的流程都规定好,再进行装配;因为任何软件在实际进行编码之前都没有人知道这些代码应该如何实现,而且每一个开发人员的水平不同,习惯不同,写出的代码也是不同的;再加上客户对于软件的需求也是在不断变化的,一年之前的业务流程很可能在一年之后就产生的变化,如果还按照之前的需求进行开发,那么交付的时候肯定是无法满足要求的;更重要的事,在客户没有看到或者实际操作软件产品之前,他们永远也不能明确地告诉你他们要的到底是什么。因为这种种原因,造成了软件开发不可能采用传统的工程方法进行组织,因为其本身是一种需要依赖于开发人员智慧的探索性行为,也造成了我们的软件项目中有很大一部分是失败的。

Scrum模式的出现正是基于对于软件开发行为本质的认识,提供了一种松散的框架,让我们使用一种探索性的流程方法来组织本来就是探索性的开发过程;从根本上满足了软件开发本身对于流程的需求。这种方法论实际上是基于爱德华.戴明所提出的戴明环的管理方法;戴明环理论提出:人类在进行任何复杂活动时,获得成功的最有效过程要经过:Plan 计划– Do执行 – Check 检查– Act改进,四个子过程,并不停的迭代以便找到最佳的方法来解决问题。这个理论不是针对软件开发提出的,但是软件开发本身其实就是最典型的复杂活动。

这里我们再回头看看Scrum的流程,Scrum的流程主要包含以下内容:

(P) Release/Sprint Planning:发布/迭代计划

(C&P) Daily Scrum:每日回顾

(C&A) Sprint Review:迭代产品检查

(A) Sprint Retrospective :迭代流程检查

我们可以看到,Scrum模式的流程与戴明环仅仅相扣。有很多认为敏捷模式会弱化计划的作用,其实不然,敏捷模式更加强调计划,而且强调更加频繁的计划,比如:每日回顾这个流程就要求我们的团队每个成员每天早上用15分钟的时间来回答3个问题:

你昨天做了什么?

你今天计划做什么?

有什么问题阻碍你的开发进程?

其实这正是对于之前开发内容的检查,同时也是对后续开发内容的计划过程。


注1: 敏捷也与工业有关,比如说著名的《精益思想》一书。



转载于:https://my.oschina.net/shanlilaideyu/blog/486659

相关文章:

一分钟了解 TCP/IP 模型

原文讲的不是特别细,为了便于理解,我颠倒了顺序。写在开始 我们需要知道协议到底是什么。 在网络上,一个协议对应于管理系统之间如何相互通信的规则。然后我们需要知道什么是协议族。 一个协议族是一系列协同工作的协议的集合。什么是 TCP/IP…

网站流量UV是什么意思?什么是流量UV/PV/IP

雅虎统计基础数据定义PV(访问量): 即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客): 即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。IP(独立IP)&#xf…

摇橹船以“硬科技+人工智能”助推高质量发展

12月13日和14日,2021雷克大会暨智能经济年会在线上成功举办,大会得到了专业观众和行业媒体的广泛关注,全网累计数万人次在线观看直播。 本届大会聚焦产业智能化、智能基础设施、智能产业化和机器人产业发展助力智能经济等议题。专家学者和企…

一句话的设计模式(转)

如题,实际上,我想这是很困难的。 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆。 下列是我之前在学习《大话设计模式》时做的笔记总结,当中有部分措辞来自其作者程杰。(非常感谢他为…

高性能ORM框架XLinq功能详细介绍

之前简单介绍了XLinq的一些功能,有很多功能都没有提到,现在给XLinq加了一些功能,这次把所有功能都介绍一遍。 设计目标 易用性 在使用一个框架的时候 应该没几个人会喜欢写一大堆的配置文件吧 也应该没几个人会喜欢为了完成一个小功能却需要写…

太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜!

作者 | 周萝卜来源 | 萝卜大杂烩一直想做一个从爬虫到数据处理,到API部署,再到小程序展示的一条龙项目,最近抽了些时间,实现了一个关于知乎热榜的,今天就来分享一下!数据爬取首先我们看下需要爬取的知乎热榜…

linux的more 命令

名称:more 使用权限:所有使用者 使用方式:more [-dlfpcsu] [-num] [/pattern] [linenum] [fileNames..] 说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键&#xff08…

20155222卢梓杰 实验三 免杀原理与实践

实验三 免杀原理与实践 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 实验步骤如下 1.先对实验二中生成的exe进行检测 65款杀毒软件有36款认为不安全 39款杀毒软件有6款认为不安…

Linux wc命令详解

通常利用Linux的wc命令和其他命令结合来计算行和其他信息。在Linux下用wc进行计数。返回文件的行数、字数、字节数等。看个例子:wc wc1.txt3 5 16 wc1.txt输出信息依次是:行数 字数 字节数 文件名称。再具体点,单个统计。#wc -m filename&…

(剑指Offer)面试题54:表示数值的字符串

题目: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14"…

「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!

论 AI 圈活菩萨,非李沐老师莫属。前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番。如此给劲的分享&#xff0c…

spring-redis-data的一个坑

事故原因: 运维报告redis内存直线上升,然后查询发现都是setrange操作,review代码,没法发现setrange操作 代码如下: redisTemplate.opsForValue().set(groupidxxxResult.getSeriesNo(), JSON.toJSONString(xxxRquestDTO…

Linux如何搜索文件的方法

#whereis 查找已经安装的软件 在Linux上查找某个文件是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。 Linux下的文件表达格式非常复杂,不象WINDOWS,DOS下都是统一的AAAAAAA.BBB格式 那么方便查找,在WINDOWS中…

python socket编程

python 编写server的步骤:1.第一步是创建socket对象。调用socket构造函数。如:socket socket.socket( family, type )family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的…

AI 语言模型真的是越大越好吗?这个模型优于 Gopher

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 近年来对于 AI 语言模型的有一个争议就是 —— 越大越好。 DeepMind 正在质疑这个理由,并表示给 AI 一个记忆可以帮助与它 25倍大小的模型竞争。 去年 6 月,OpenAI 发布 GPT-3 模…

[20180412]订阅+镜像切换

订阅镜像切换 主数据库挂了之后&#xff0c;镜像数据库没挂&#xff0c;那么就需要把镜像数据库设置成主数据库。1.修改主机名&#xff0c;改成和主数据库一样的&#xff0c;重启2.修改数据库中的主机名IF SERVERPROPERTY(ServerName)<>SERVERNAMEBEGINDECLARE srvname s…

【Cocos2d开发】Cocos2d下安卓环境的搭建

在进行Cocos2d游戏开发前 我们先来配置一下环境&#xff0c;我们先来准备一下工具&#xff0c;我们所需要的工具分别为&#xff1a;1.Cocos2d引擎2.JDK3.SDK4.NDK5.ANT6.ADT1.下载Cocos2d-x引擎&#xff0c;目前最新版本为3.6&#xff0c;本教程的所有例子以3.4版本为例&#x…

Linux时间转化方法

Linux时间转化方法&#xff1a;(1)date -d"2008年 12月 17日 星期三 17:27:22 CST" "%s"该命令将2008年 12月 17日 星期三 17:27:22 CST转化为时间戳结果:1229515680(2)将时间戳1123495443 换算成可以识别的年月日分秒date -d 1970-01-01 UTC 1123495443 s…

有的放矢,远程操控中实时音视频的优化之道

5G远程操控场景&#xff0c;对实时音视频传输的时延、卡顿率和抗弱网等指标都有着非常高的要求&#xff0c;本文将会介绍如何结合5G网络特点&#xff0c;在实时音视频通信链路中进行联合优化&#xff0c;满足行业场景远控需求&#xff0c;降低画面时延。 在上一篇文章中&#x…

Quartz动态添加、修改和删除定时任务

2019独角兽企业重金招聘Python工程师标准>>> Quartz动态添加、修改和删除定时任务 转载于:https://my.oschina.net/haokevin/blog/1795161

Linux下运行run文件

必须到Linux下的终端&#xff0c;不能用远程命令 #chmod 755 文件名 #./文件名

第五届中国企业服务年会:洞见2022数智化的“光与火”

汇智聚能&#xff0c;一起点亮“高增长的下一步”。 在疫情防控与复工复产双重因素的带动下&#xff0c;企业数智化成为不确定环境中的确定项&#xff0c;“ABCD&#xff08;人工智能、区块链、云计算、数据&#xff09;X”引爆生产力、生产资料、生产关系和基础设施革命&#…

QTP连接oracle

2019独角兽企业重金招聘Python工程师标准>>> 首先&#xff0c;因为群里很多朋友说QTP连接oracle有点麻烦&#xff0c;我针对于连接oracle做一个完整的教程&#xff0c;希望需要学习的朋友都可以来看一下&#xff1b;具体方法如下&#xff1a; 1、无论是什么语言&am…

java子类对象和成员变量的隐写方法重写

1、子类继承的方法只能操作子类继承和隐藏的成员变量名字类新定义的方法可以操作子类继承和子类新生命的成员变量&#xff0c;但是无法操作子类隐藏的成员变量&#xff08;需要适用super关键字操作子类隐藏的成员变量。&#xff09; public class ChengYuanBianLing { publi…

Linux的cron和crontab定时任务

定时任务调用shell本地Windows写一个shell test.sh #!/bin/bashecho "Course Arrange Job runs well at: " date "%Y-%m-%d %H:%M:%S" >> /usr/www/wwwshell/www.txt 先在服务器执行看可不可以 注意需要 # dos2unix ./test.sh 再 # ./test.sh需要…

用AI创造可持续发展社会价值,第二届腾讯Light·公益创新挑战赛正式启动

12月23日&#xff0c;“创变者”2021年度腾讯Light论坛在厦门正式举办。在论坛上&#xff0c;由全国妇联宣传部指导&#xff0c;腾讯公司联合中国儿童中心主办&#xff0c;企鹅伴成长、腾讯华东总部、腾讯SSV创新办学实验室、企鹅爱地球、腾讯优图实验室、腾讯云AI、腾讯云微搭…

CSS3 @keyframes animate

2019独角兽企业重金招聘Python工程师标准>>> 1.keyframes定义和用法 通过 keyframes 规则&#xff0c;您能够创建动画。 创建动画的原理是&#xff0c;将一套 CSS 样式逐渐变化为另一套样式。 在动画过程中&#xff0c;您能够多次改变这套 CSS 样式。 以百分比来…

linux系统命令学习系列-文件和目录管理

复习上节内容&#xff1a;1. 定时执行任务命令crontab –e, crontab –l,crontab –r2. 作业&#xff1a;定义一个定时任务&#xff0c;每分钟向/tmp/test.txt文件输出hello worldcrontab –e*/1 * * * * echo ‘hello world’>>/tmp/test.txt本节我们来说一下文件和目录…

GPT-3再进化:通过浏览网页来提高事实准确率

作者 | OpenAI来源 | 数据实战派为了让 GPT-3 模型可以更准确地对开放式问题进行回答&#xff0c;研究人员使用了基于文本的网络浏览器对 GPT-3 进行微调。微调后的 WebGPT 模型可以对人类实时回答问题的方法进行学习&#xff0c;比如提交搜索、跟踪链接并上下滚动网页。研究人…

lamp-安装脚本-修订版2

#!/bin/bash #write by zhang_pc #at 2015.08.07 #apache2.4 php.5.4 mysql5.5 #脚本说明&#xff0c;如果脚本所在目录有源码包就用本地的&#xff0c;否则就从互联网下载APR_FILESapr-1.5.2.tar.gz APR_DIRapr-1.5.2 ARP_PRE/usr/local/apr APR_URLhttp://mirror.bit.edu.cn/…