正如标题所示,这篇文章是关于 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. Visual Studio 2017报表RDLC设计器与工具箱中Report Viewer问题

    原文:VS2017入门 RDLC入门之01 本系列所有内容为网络收集转载,版权为原作者所有. VS2017初始安装后和VS2015一样,都没有ReportDesigner/ReportViewer R ...

  2. 在Delphi中静态调用DLL

    在Delphi中静态调用DLL top 调用一个DLL比写一个DLL要容易一些.首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较.同样的,我们先举一个静态调用的例子. u ...

  3. C# 如何使用 Sql Server Compact 数据库

    Sql Server Compact Edition(简称SqlCE)是一个轻量级的数据库,对于放在客户机上的程序而有需要存储数据这样的环境,使用SqlCE再合适不过了.SqlCE可以通过在VS(Vi ...

  4. SharePoint Add-in Model 介绍 - 引文(先导篇)

    1. SharePoint 平台 如果你已经很熟悉 SharePoint 平台,可跳过本章节. 1.1 SharePoint 是什么 在介绍 Add-in Model 之前,简要提一下 SharePo ...

  5. Qt编程规范

    一.概述 良好的编程规范可以大幅提高一个程序的可读性.可理解性和可维护性. 本规范参考Effective C++中文版.Google C++编码规范及Qt编码风格. 二.头文件 1)      #de ...

  6. qt源码的submodules要怎么使用

    请问我下载了submodules里面的源代码,怎么使用?http://download.qt.io/official_releases/qt/5.7/5.7.1/submodules/如下载了qweb ...

  7. delphi 读写文本文件(函数比较全)

    需要两个按钮和两个Richedit控件,采用默认名称即可. procedure TForm1.Button1Click(Sender: TObject);  //写文件 var wText: Text ...

  8. 海康威视频监控设备Web查看系统(二):服务器篇

    声明:本系列文章只提供交流与学习使用.文章中所有涉及到海康威视设备的SDK均可在海康威视官方网站下载得到.文章中所有除官方SDK意外的代码均可随意使用,任何涉及到海康威视公司利益的非正常使用由使用者自 ...

  9. Hadoop集群(第1期)CentOS安装配置

    1.准备安装 1.1 系统简介 CentOS 是什么? CentOS是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本.每个版本的 CentOS 都会 ...

  10. lock和synchronized如何选择?

    1.lock是一个接口,而synchronized是java关键字,synchronized是内置的语言实现. 2.synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁,而l ...