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

摘自基于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

为什么Scrum模式适合软件开发?相关推荐

  1. 适合软件开发团队的知识管理系统有哪些?10大知识库盘点

    知识管理系统并没有一个统一的定义,不同的知识库工具适合的人群也不一致,所以本文将对比以下10大知识库工具(含开源.免费等):1.PingCode:2.Confluence:3.MediaWiki:4. ...

  2. [企业软件应用落地展示页H5页面模板] 适合软件开发相关公司的套件ui模板+自适应手机

    介绍 一款紫色的企业应用软件落地展示页H5页面模板.采用bootstrap .sass和jquery设计开发.专门为SASS.初创企业.网络代理.创意代理.软件代理.产品开发公司利基以及软件和产品相关 ...

  3. 【软件项目管理】敏捷软件开发 —— Scrum模式

    什么是敏捷软件开发 前提 : 传统软件开发模式 -- 瀑布模型 在谈论这个问题之前,我们先来回顾一下传统软件开发模式 -- 瀑布模型 在瀑布模型中,软件开发过程被分为严格的 需求分析 -- 系统设计 ...

  4. 通过造车来了解软件开发模式

    看到 好的 东西, 老是忍不住收藏一下,谢谢作者:伯乐在线 - 艾凌风 的文章, 若有不妥,请留言. 1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的 ...

  5. 软件开发的模式及其优缺点

    软件开发是指根据客户要求开发出软件系统或系统中软件部分的过程.软件开发需要经过需求分析.设计.实现和测试等一系列过程.其开发模式是多种多样的,下面由沐渥科技小编给大家讲解下软件开发的多样模式及其优缺点 ...

  6. 女生是否适合学软件开发?

    相信很多人都会有这样的疑问?女生是否适合学习软件开发呢?我们对软件开发的认知,计算机好像都是男生才会喜欢,比如,男生爱好打游戏,男生喜欢去捣鼓计算机,是不是更适合学习计算机呢?其实不然,我们都知道物以 ...

  7. 软件开发流程与项目管理

    软件开发的流程 什么是软件 与计算机系统操作有关的计算机程序,可能有的文件,文档及数据 软件开发的流程 瀑布模型 -> 敏捷模型 (XP,SCRUM) -> DevOps 瀑布模型 软件开 ...

  8. 软件开发教父与国内高手论道实录全文

    新浪科技讯 2005年6月2日,来自信息产业部.北京市科委.中国软件行业协会的领导,北大.北邮软件学院的院长们齐聚一堂,和世界五大软件开发教父之一的matin(马丁-福勒)先生一起,就目前西方软件开发 ...

  9. 借助开源项目,学习软件开发 .

    转载自:http://blog.csdn.net/bruce0532/article/details/7382673 由于不明原因,本文不是完整的... 其他某些部分:http://sbbs.me/v ...

最新文章

  1. 【论文阅读记录】Real-Time Correlative Scan Matching
  2. Windows文件被占用解决办法
  3. 单片机单口不可用或被占用_新唐单片机代码评审总结
  4. signal(SIGHUP, SIG_IGN)的含义
  5. win10修复计算机是哪个键,教你Win10修复系统引导文件的详细方法
  6. Echarts使用教程
  7. Android竖屏视频录制
  8. 利用爬虫获得疫情信息,并存入表格
  9. 初中数学知识点总结_初中数学知识点
  10. 计算机win7卡顿如何解决方法,win7电脑玩2D游戏经常发生卡顿六大解决方法
  11. linux tar exclude 多个目录,tar 过滤多个文件目录 打包
  12. Linux C/C++ 对于SIGBUS、SIGSEGV等崩溃异常捕获实现
  13. 关于单页应用(SPA)的经验之谈
  14. 第三章:晶体三极管及应用电路
  15. XILINX DSP Slice功能特点
  16. 共享电商即共享商圈的背后: 共创、共生、共享、共富,共赢的共富精神
  17. pc客户端网易云部分电台节目播放过程中声音消失的问题
  18. ATM系统:Use Case图与Use Case详细描述
  19. CSU-1783: 聊天止于呵呵(字符串处理)
  20. PTA-R7-1 圆形体体积计算器

热门文章

  1. Java开发字符串JSON处理
  2. Java中的ClassLoader和SPI机制
  3. GDB调试--以汇编语言为例
  4. PyTorch中nn.Module类中__call__方法介绍
  5. 吴恩达老师深度学习视频课笔记:卷积神经网络
  6. 【H2645】帧内预测
  7. 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO
  8. Ruby之Tempfile
  9. ai条码插件免安装_ai条码插件2款下载|Barcode Toolbox插件+Barcode条码插件下载 - 偶要下载站...
  10. akaze特征匹配怎么去掉不合适的点_SIFT特征点