从前有一种非常火爆的体育运动,对阵双方各派出11位猛男,在宽阔的草皮球场内争抢一颗可怜的小皮球。哪方能够通过团队协作拿到皮球,并且运送到对方场地的特定位置即得分。

没错,你没有走错片场,快到超级碗里来~

咳咳,其实我们要说的是在IT领域内,从这种运动中引申出来的一个名词,叫做SCRUM-争球。

相信接触过敏捷(agile)项目的读者,都听说过SCRUM这个名词,那他到底指代的是怎样一个事务呢?

其实你可以结合着上面这张图片去理解,笔者觉得总结起来,SCRUM就是‘一个小规模团队,通过紧密的团队合作,一步一步推进团队目标’的理念。

归根结底,SCRUM是敏捷开发项目中的一种组织形式,严格来说他其实不能算是一种技术而是一种方法论(Methodology),更不能等同于敏捷开发理念本身。

现如今,我们人类社会的运转节奏已经快的令人发指了,这种快节奏也非常显而易见的对IT行业产生了冲击。在这样的前提下,敏捷开发或者叫敏捷项目的应用渐渐浮出水面而且越来越呈流行的趋势。

现在的IT企业,不搞敏捷开发感觉出门都不好意思跟人打招呼。而SCRUM就是敏捷项目最喜欢采用的一种组织方式。

那么SCRUM怎么开展,我的团队到底适不适合采取SCRUM形式呢?

我们来看看SCRUM为一个敏捷性项目定义了哪些特性:

第一个是待办产品列表(backlog):它包括了整个敏捷项目中,团队要完成的所有任务;包括待开发的产品功能,非功能性需求,待修复的缺陷等等。

其次是冲刺期(sprint):也就是将一个敏捷项目划分成数个小阶段,每个阶段定义该阶段需要完成的任务量。一般来说这个阶段时长是一至四周,以两周为最常见。本质上这种做法与我们平常说到的‘迭代-增量’开发模型没有根本的区别。在冲刺期结束的时候,我们规划好的任务应该全部完成:这就包括了开发,集成,测试和归档。

其次是冲刺期计划会(sprint planning):顾名思义,就是在每个冲刺期开始的时候,对所有待开发的产品部件进行讨论,估算和决定哪些可以在当前冲刺期完成,并进而进行任务分派。在敏捷项目中,理论上类似计划是一个民主的过程,团队的成员秉承高度专业的态度来决定当前可完成的任务量。

再次是每日站立会议(daily scrum)有时候提到scrum,我们可能会和站立会议等同起来。确实从命名上而言每日站立会议(daily scrum)也用到了scrum这个名词,不过严格来说scrum不单单特指这个会议,也包含我们本文提到的对整个敏捷项目的组织方式。在会议上,每个团队人员要回答三个问题:

  • 我昨天完成了什么工作
  • 我今天准备完成什么工作
  • 我发现了哪些可能阻碍工作的问题

PS:在笔者以前经历过的一个敏捷项目里,老外们真的拿着一颗玩具橄榄球在会议上传来传去:P

再次是冲刺期回顾(sprint review):回顾当前冲刺期完成的任务,展示项目成果,以及计划完成却没有完成的任务,整理下一阶段待完成的任务。

SCRUM对于敏捷项目而言是有很大价值的,通过这种组织形式能够很好的实现敏捷项目的核心诉求:

  • 高度迭代
  • 强周期性
  • 持续响应客户

当然话说回来,理念和理论总是听起来很美好,实现起来却往往很让人头疼,SCRUM也是如此。

敏捷的开发理念摒弃很多传统开发模式中的复杂流程和管理方法,但它这种强调人,强调自身动力的理念也容易使得团队缺乏计划,行动松散。

所以SCRUM就像一把双刃剑,用得好可能产生非常高的生产力;用的不好,则不但生产效率不高,还会让团队陷入混乱。并不是每个项目都适用敏捷开发,也不是所有团队都要采取SCRUM得形式,具体如何选择还是要取决于团队的构成和实力。

Scrum到底是个神马玩意儿的更多相关文章

  1. HttpClient参观记:.net core 2.2 对HttpClient到底做了神马

    .net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...

  2. 【转】DSP是什么--DSP是神马东东??

    原文:http://www.eepw.com.cn/article/272908.htm 导读:本文主要介绍的是DSP是什么,不懂得童鞋们快随小编一起学习一下DSP到底是个神马东东吧! 本文引用地址: ...

  3. [C++中级进阶]001_C++0x里的完美转发到底是神马?

    [C++中级进阶]001_C++0x里的完美转发到底是神马? 转载至:http://www.cnblogs.com/alephsoul-alephsoul/archive/2013/01/10/285 ...

  4. 函数:递归是神马 - 零基础入门学习Python022

    函数:递归是神马 让编程改变世界 Change the world by program 我们这节课的主题叫递归是神马,将通过小甲鱼带感的讲解,来告诉大家神马是递归!如果说优秀的程序员是伯乐,那么把递 ...

  5. [转帖]Tensor是神马?为什么还会Flow?

    Tensor是神马?为什么还会Flow? 互联网爱好者 百家号17-05-2310:03 大数据文摘作品,转载要求见文末 编译 | 邵胖胖,江凡,笪洁琼,Aileen 也许你已经下载了TensorFl ...

  6. 神马玩意,EntityFramework Core 1.1又更新了?走,赶紧去围观

    前言 哦,不搞SQL了么,当然会继续,周末会继续更新,估计写完还得几十篇,但是我会坚持把SQL更新完毕,绝不会烂尾,后续很长一段时间没更新的话,不要想我,那说明我是学习新的技能去了,那就是学习英语,本 ...

  7. javascript 函数初探 (一)--- 神马是函数

    神马是函数? 所谓函数,本质上是一种代码的分组形式.我们可以通过这种形式赋予某组代码一个名字,以便与之后的调用.下面,我们来示范以下函数的声明: function sum(a, b){ var c = ...

  8. SQLSERVER 里经常看到的CACHE STORES是神马东东?

    SQLSERVER 里经常看到的CACHE STORES是神马东东? 当我们在SSMS里执行下面的SQL语句清空SQLSERVER的缓存的时候,我们会在SQL ERRORLOG里看到一些信息 DBCC ...

  9. 记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?)

    记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的, ...

随机推荐

  1. Scrapy框架之CrawlSpider

    提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基 ...

  2. Spark环境搭建(五)-----------Spark生态圈概述与Hadoop对比

    Spark:快速的通用的分布式计算框架 概述和特点: 1) Speed,(开发和执行)速度快.基于内存的计算:DAG(有向无环图)的计算引擎:基于线程模型: 2)Easy of use,易用 . 多语 ...

  3. selenium3 调用IE Unable to get browser

    本地环境开发,移至服务器上出现Unable to get browser的问题.经过查找找到问题所在(第六点,需要修改注册表增加键): 1.下载IEDriverServer.进入索引页,首先选择版本号 ...

  4. webpack4 打包报错 :regeneratorRuntime is not defined

    使用async函数,在webpack打包时报错 babel-polyfill is required. You must also install it in order to get async/a ...

  5. MongoDB 用Robomong可视化工具操作的 一些简单语句

    一.数据更新 db.getCollection('表名').update({ "字段":{$in:["值"]} }, //更新条件 {$set:{ " ...

  6. SharePoint Column Format

    https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/column-formatting . { &quo ...

  7. H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试

    一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...

  8. c++编译错误C2971:"std::array":array_size:包含非静态存储不能用作废类型参数;参见“std::array”的声明

    在Qt5中这段代码编写有两种方式:一个编译成功,一个失败 成功版本: static constexpr size_t block_size = 0x2000;//8KB static constexp ...

  9. Mybatis Mapper文件中的一小坑

    前几天来一需求,实现过程中需要修改一个底层的查询接口,具体修改就是在where中添加一个条件,由于这个底层SQL使用的地方太多,所以就想着是用if加一标识符做个判断,传一个只有我会使用的参数,然后动态 ...

  10. pip和cmd常用命令

    1.pip常用命令 显示模块的详情  pip    show 安装模块   pip    install    模块名称 卸载模块    pip    uninstall    模块名称 查看当前环境 ...