正如标题所示,这篇文章是关于 Scrum 的两个不同方面。第一部分涉及 Scrum 不敏捷,第二部分涉及 Scrum 脆弱。

在详细介绍之前,简短的免责声明:我在这篇文章(以及一般博客中)中提出的所有内容都是我个人观点,并不代表我现任雇主,我的前雇主和任何未来雇主的观点。

Scrum 是不敏捷的

我猜人们对这个标题的典型反应会是“这怎么可能? Scrum 不是敏捷的?Scrum 不是第一个敏捷软件开发过程吗?” 简而言之,Scrum 声称是一个敏捷的过程,但令人遗憾的是,Scrum 离敏捷还很远。我会告诉你原因。

我们快速浏览敏捷宣言。它说它重视“个人和交互而不是过程和工具”。让我们快速了解一下敏捷这个词的含义。根据牛津词典,敏捷的意思是“能够快速、轻松地行动”。选择敏捷这个术语来代表敏捷宣言中的高级思想并不是一个巧合。事实上,敏捷背后的一个主要观点是,在许多软件项目中,快速而简单地移动是极其困难的。对于一个全新的项目来说,情况并非如此,但随着时间的推移,许多项目进入了一种根本不可能实现可持续发展的境地。为了防止这种情况(和其他问题),敏捷宣言和敏捷宣言背后的原则提供了几个高级指南。这些指导方针不是特定定义良好的流程或工具,它们允许许多不同的实现。我怀疑这两个属性(高级的和允许不同的实现)都是完全有意的。总体目标不是提供灵丹妙药,而是帮助同行避免软件开发中的许多陷阱,敏捷宣言的作者亲身体验过这些陷阱,而这些陷阱恰好属于这些类别。

现在让我们来看看 Scrum指南 (由敏捷宣言的两位作者编写)。与敏捷宣言和敏捷原则相比,本指南似乎相当冗长。令人惊讶的是,整个指南一次都没有提到敏捷。我不确定历史上是否总是这样,但是如果 Scrum 指南的作者不声称 Scrum 是敏捷的,那么我们已经完成了这个博客文章的第一部分。我想情况并非如此,所以我们继续。 Scrum 指南是关于一个包含“角色、事件、工件和将它们绑定在一起的规则”的框架。换句话说,这是一个非常具体和明确的过程。这听起来既不敏捷,也不敏捷(记住:“个人和过程和工具之间的交互”)。这是非常讽刺和明显的。这就是整个 Scrum 运动应该停止的地方。但它没有,反而让世界各地越来越多的软件开发人员感到沮丧。每当一个 Scrum 项目失败,并不是因为 Scrum 潜在的缺陷,而是因为 Scrum 没有正确实现。这听起来是一个很好的过渡到这篇文章的第二部分。

Scrum是脆弱的

这部分很短。我认为 wordplay (Scrum being agile / fragile)很有趣,除此之外,它完美地描述了 Scrum 真正困扰我的一件事:每当 Scrum 项目失败时,都是因为 Scrum 没有得到正确的实现。你可以阅读大量这样的项目。如果大量的智能软件开发人员不能正确地实现 Scrum,这意味着什么?这意味着整个框架是脆弱的。这是反对使用 Scrum 的另一个主要论点。如果它很难使用,那么什么是适合的框架?

好吧,似乎在昂贵的咨询和指导,以及培训和证书的帮助下,Scrum 实际上可能提供价值。 但目前尚不清楚这对于软件开发公司以及辛勤工作的软件开发人员或那些在 Scrum 生态系统内部和周围提供服务的人来说是否有价值。

个人观点

最后,我想谈谈我个人对软件开发、敏捷和 Scrum 的看法。在我看来,高质量软件开发的一个非常重要的部分是维护一个简单的优先级任务队列。权重是任务为客户/开发人员提供的价值和实现该任务的估计工作量的组合。有些开发人员天生就会这样。对于不属于这种情况的团队和公司,Scrum 提供了一个相当昂贵和低效的优先队列实现。坦白的说吧。软件开发是一项非常困难和复杂的工作。这么多项目都失败了,我们真的感到惊讶吗?这个领域还很年轻,我们需要学习很多东西。这一点至关重要:我们需要从过去的经验中学习,不管是失败还是成功的故事。在这里,我们都失败了。我们没有使用错误的流程或以错误的方式实现正确的流程。我们只是陷入了一场激烈的竞争,无法短暂地休息一下,去看看周围发生的一切,从中学习,甚至是在我们这个时代之前。我们的职责是从我们很容易获得的许多资源中提取知识、经验和智慧:许多有关软件开发的书籍、文章和视频,最后但并非最不重要的是敏捷宣言。

原文:http://www.dennisweyland.net/blog/?p=43

作者:Dennis Weyland

译者:Queena


送福利啦~ 近期将之前已翻译文章,整理成PDF。

在公众号后台回复:002 即可领取哦~

后续也会不断更新PDF的内容,敬请期待!

Scrum是脆弱的,不敏捷的的更多相关文章

  1. 【转】来自《轻松scrum之旅》的敏捷开发总结

    敏捷开发的核心价值观是,软件开发最重要的是给用户提供有价值的.可以工作的软件.如何保证提供有价值的软件,是通过反馈机制来完成的.这一点,我们体会很深.自从采用敏捷开发以后,我们比以前更有意识地希望得到 ...

  2. 【科普】Scrum——从橄榄球争球到敏捷开发

    对敏捷开发Scrum稍有了解的都知道Scrum来源于橄榄球,但你知道为何要以这项球类运动的术语来命名这个敏捷开发方法论吗? Scrum与橄榄球对应关系 Scrum 一词源于英式橄榄球运动,是指双方球员 ...

  3. 敏捷开发之道(四)Scrum概述

    上次的博文敏捷开发之道(二)极限编程XP和敏捷开发之道(三)极限编程XP续中,我们介绍了一下敏捷开发中的XP开发方法,今天咱们来了解另一个比较流行的敏捷开发方法--Scrum. 1.Scrum简介 S ...

  4. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  5. 开始一段新的敏捷学习之旅 —— IT帮读书会第4期《Scrum实战》

    刚看了一下,距离上一次写博客过去快1年半了.之前的知识管理都放到笔记软件中了,但是现在看来,收藏了很多东西,输入很多,但是输出有限. 学习任何领域的知识,如果只有输入没有输出,效果都是很有限的,有时需 ...

  6. 关于scrum敏捷测试

    关于scrum的一些定义 敏捷软件开发方法是一种把新增功能通过较小的循环逐步迭代添加到项目中(的项目管理方法),工作是由自我组织的团队以高效合作的方式拥抱和适应变化来保证客户需求被真正满足的方式来完成 ...

  7. Scrum Master如何让敏捷团队正常运转?

    官方<Scrum指南>中定义:Scrum Master在Scrum团队中属于服务型领导,负责践行和支持<Scrum指南>中定义的Scrum,要帮团队的每个人理解Scrum理论. ...

  8. CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355

    Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步.CODING 特邀敏捷顾问.CST & CTC 认证敏捷教练申健老师将在本课程< ...

  9. Scrum转型(一) 为什么敏捷和Scrum

    1.1 为什么敏捷 由于传统的瀑布模型管理方法无法满足现代某些软件产品开发过程的特点,我们需要使用敏捷的方法(例如,Scrum是一个让我们关注于在短时间里交付高质量商业价值的敏捷框架). 需求频繁变动 ...

随机推荐

  1. Win10《芒果TV》更新v3.8.40青春版:优化推送策略、新增缓存清理

    芒果TV暑期重磅活动-青春芒果节拉开帷幕,炫酷的3D视觉大秀.王牌IP互动体验馆.众星云集的青春炙燥夜晚会.神秘的芒果吉祥物发布,Win10版<芒果TV>全平台同步更新青春版v3.8.40 ...

  2. 浅谈.NET编译时注入(C#-->IL)

    原文:浅谈.NET编译时注入(C#-->IL) .NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台.所以.NET语言的编译就分为了两部 ...

  3. shell脚本配置ssh免密登陆

    通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) expor ...

  4. 笔记:认识.NET平台

    认识.NET平台先了解一堆技术术语和缩写 http://www.cnblogs.com/dbycl/p/6419456.html 天生不跨平台的.NET Framework 2.大家都来开发新语言 3 ...

  5. C#函数参数前的修饰符

    函数的形参前可以带三种修饰符,分别的out.ref.param. out:让函数可以输出“多个值”,并不是真正的输出多个值. ref:相当于引用传递,在函数内部赋值会影响变量的值. params:可变 ...

  6. 从IntToHex()说起,栈/堆地址标准写法 good

    学习中的一些牢骚.栈/堆地址标准写法. 2017-02-12 • 杂谈 • 暂无评论 • 老衲 •浏览 226 次 我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件.下面是我的写法,如果 ...

  7. Delphi获得一个进程的主窗体(GetWindow(AHandle, GW_OWNER)等于0的窗体才是主窗体,并且要IsWindowVisible排除Application窗口)

    type  TMainWindow = packed record    ProcessID: THandle;    MainWindow: THandle;  end;  PMainWindow  ...

  8. 遗漏的SQL语句

    一.简单查询 1.限制返回行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之 ...

  9. 如何使用Vue.js来搭建一个后台管理系统

    目录 使用的技术 基础但不好版 1.初始化项目 2.实现初始页内容自定义 3.使用路由 原始代码 自建页面 修改路由 4.测试路由跳转 补充 子路由版 嵌套router-view 定义子路由 修改菜单 ...

  10. cookie 和 session 区别

    二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有 ...