近来,Maurits的一篇博文“Why Scrum will never work” 一石激起千层浪。著名技术分享网站酷壳(http://coolshell.cn/articles/5044.html)翻译了这篇文章,我的好朋友,网站创始人陈浩还加入了他的一些想法。

直到我看到在知乎(http://www.zhihu.com/question/19793669)上的一个问题之前,我也认为大多数软件开发团队已然知道敏捷是什么,可以给团队带来什么。他们可能完全不在乎别人怎么看敏捷。(注:知乎是李开复老师创新工场孵化的类似于Quora的一个中文问答网站)

说一下我对Maurits9个“Scrum永远不能成功的原因“的解读:

首先,我个人认为一个产品的成功和是不是使用什么方法论,工程实践没有必然联系,尤其是对于小而简单的产品更是如此。其次,我个人不认为在没有广泛应用的软件工程实践的支撑下Scrum可以持续不走样的保持下去。这些工程实践包括持续集成,自动化测试,简单设计,代码审查等等。

我个人理解,敏捷不单单是Scrum和极限编程的集合,而是一个以精益原则为基础,可以创造目标驱动,自我驱动和学习型的团队的一整套方法论。这也是我选择帮助很多产品团队不断完善自我作为我职业的原因。

原因1:我完全赞同,的确有些人很难在最开始相信别人。我也曾有过一个团队中的大多数人希望得到我的帮助,但是个别人非常抵制的经历。为什么会这样呢?因为“信任歧视”!你可以读我另外一篇博文有对这个话题的分析(http://blog.sina.com.cn/s/blog_626530940100mn3c.html)。但是这并不意味着,这些人永远不会或者故意不相信别人。如果您已经读过我的博客,你就知道他们其实相信某些人。这些人是领域专家,朋友,家庭成员或者和他们有共同价值观的工程师。任何人都不会否定,“团队中没有信任”是项目失败的首要原因之一,是毒药,也会造成工作效率低下。因此每个人都希望能建立一个互相信任的团队。我也在努力帮助团队互相信任。如果你想创造出牛X的产品,不想浪费你宝贵的生命,这就是一个非常有挑战但不得不做的任务。当你拥有这样一个团队,你成功一半了。

原因2:大多数软件工程师收入不高?在华为,腾讯,创新工场,Google, Facebook, Twitter, Amazon,好的工程师薪水很高。如果你花超过30秒时间,你会列出一个更长的名单。如果你是好的工程师,你甚至可以创业,自己当老板,Mark Zuckerberg(Facebook创始人),Larry Page(Google创始人),Bill Gates(微软创始人)这些拥有百亿身家的人都曾经是工程师。在硅谷成千上万的工程师创造暴富神话。并且,这些神话还在发生着。的确有工程师的薪水不高。如果他们是有潜力的,他们的薪水可能会上涨。如果他们自认为是好工程师,但是缺钱花,那我猜有可能他们不是好工程师。他们或许擅长架构设计,但是不擅长软件工程;或许代码写得很好,但是交流能力欠缺。成功是需要经验和技能的积累。你必须无时不刻的学习。并且,每个人,无论他所在什么行业都会抱怨老板应该给我更多报酬,近来我只听说一个人说他收入太高,政府应该多收他的税。这个人就是著名投资人巴菲特。

原因3:既然Maurits的原因2是悖论,一些团队需要管理者,一些可以自组织。很多我认识的非常好的管理者不单单是分任务,管理开发人员,对于他们来说更重要的是设定清晰目标,辅导缺乏经验的队员。他们的共性是不追求细节管理,但是结果考核,授权给团队去发挥。

原因4:Scrum不单单是一个流程,如果你读过这本书,并且在3个以上的项目中实践过Scrum的话,你一定会理解,Scrum可以帮助团队快速学习,快速成长,早犯错误,早改进,早失败,早总结。相对于聪明人来讲,有经验的人可以创造出更好的团队。我不太理解Maurits所说的”Good people”,我猜可能是和善,并且有经验的人吧。

原因5:项目或产品大致上分成两种,一种是定制开发,一种是面向大众的产品。大多数面向大众的产品,例如SNS,搜索引擎,电子商务,在线游戏都会有产品经理负责。他们非常关注用户反馈,他们把自己的产品当做自己的baby一样看待。大多数情况下,定制开发软件的决策者往往是客户方的业务经理,他们未必那么关心产品。我个人经验中,那些非常关注产品的业务经理往往得到更早的晋升。

原因6:我曾经在TED上看过一个演讲,演讲嘉宾是Dan Pink(http://www.ted.com/talks/dan_pink_on_motivation.html),他研究一个“如何激励知识工作者”的题目。其结论是:知识工作者通常情况下有意愿提高自己,因为他们希望成为更有经验的人,学习更多知识,变得更资深。相对于在某个领域成为专家的追求,他们对收入的诉求相对会小一点。这是一个和其他领域非常不同的群体。知识工作者是一个极为特殊的生产力。

原因7:产品经理专注与“做什么”和“为什么做”。开发团队专注于“如何做”,但是他们同样需要知道“做什么”和“为什么做”。Maurits的观点是对敏捷原则和方法论的一种片面的理解。我正在参与的一个敏捷组织转型项目中,我所作的第一件事情就是和项目核心成员共同确定项目目标,策略等,之后给团队所有成员解释。这是创建一个目标驱动团队的第一步也是必要一步。

“交付期限”是必须有的,它可以帮助业务部门和开发团队巧妙的找到投资回报的平衡点。中国人的文化就是这种“中庸”文化。

产品质量也是“功能”,为什么呢?如果某个功能有bug,这意味该功能不能使用,换句话说就是这个功能的开发没有完成。因此维护产品的质量等同于“挽救”功能。

原因8:幸运的是,大多数我曾工作过的项目“极其”在乎产品质量。为什么呢?其原因不是这些“平均水平”的工程师只朝九晚五的工作,而是因为他们并不想痛苦的加班加点的修bug。作为“知识工作者”他们希望自己更专业,更牛X,不想丢脸。

原因9:对于这条原因,我倒是不得不赞同。对于政府项目和固定预算固定范围的项目,敏捷不是一个合适的方法。当我在英国做一家IT公司的运营总监(COO)的时候,我说服了我的客户从这种固定时间固定范围的方法转换成按人天付费的方法。最大的区别是什么?这种新的方式给予我的客户更大的自由去争取更多的投资回报。他们在乎么?当然在乎!在英国,大多数的政府项目使用Prince II来管理,在中国瀑布模式还是主流。如果你不想你上缴的税收浪费掉,尽你最大的努力说服你的客户转向敏捷方式吧。

最后说几句,我真的不在乎一个项目是用敏捷,Scrum,瀑布或者CMMI,完全不在乎。我真正在乎的是“组建牛X团队”,“实现商业目标”,“创造出高品质产品”,“让客户满意”,“增强客户盈利能力”。恰好,包括敏捷在内的一些有效的方法论帮助我去实现了以上的目标。我更希望看到我们的用户在使用我们产品,玩我们的游戏的时候得到真正的开心和便捷。

[转]对Why Scrum will never work的评论的更多相关文章

  1. Daily Scrum10 11.14

    昨天的任务已经完成,但是我们在完成任务的过程中确实遇到了困难.昨天我们发现无法连接sqlserver的时候,给罗杰老师发了邮件.老师也给我们提出了建议,给我们提供了一些参考.所以今天大家都在研究如何解 ...

  2. [转载]敏捷开发之Scrum扫盲篇

    现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...      为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S ...

  3. 敏捷测试模式之Scrum及其实践

    一.    敏捷开发模式简介 敏捷是近年来软件研发领域很火的一个词,采用敏捷开发模式的研发团队是越来越多了,尤其是敏捷模式中的Scrum更是佼佼者大行其道,这表明敏捷模式确有其好处,能给企业带来效率的 ...

  4. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  5. 软件工程的引入:Scrum开发框架总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点如下: 软件工程概念 敏捷开发过程scrum 一.什么是软件工程?请用一句话描述. 软件工程是一门研究性的学科:它用工程化 ...

  6. 关于Agile Scrum的笔记

    Roles: Scrum Master -- advisor but leader, 替Team消除障碍 Product Owner -- 定sprint的交付内容, 优先级 Team -- 干活的, ...

  7. 每日Scrum站会实践推荐

    流程 1.团队在Scrum 白板前集中,推荐围成一个半圆形状. 2.最左边的成员开始讲述昨天/上一次Scrum每日站会后到现在为止,完成了什么任务,只需讲对应的任务就行了,不要讲很长的故事. 3.讲述 ...

  8. Scrum Meeting 20161205

    本周Sprint Master 史少帅 一. 会议概要 作为一个新的sprint的开端,本次scrum meeting总结了每个人过去以来的工作,并明确了下一步的计划,具体如下: 工作总结: · 陈双 ...

  9. Scrum meeting 记录

    本周Scrum Master 侯宇泰 一. 工作完成内容记录 · 陈双: 1. 后端数据库Azure Storage设计 2. Offline 上传Movie信息 3. 主页和配音页面的连接 · 鲍航 ...

随机推荐

  1. Java多线程之赛跑游戏(含生成exe文件)

    在JavaSE中,多线程是一个重要的内容. 我们要了解多线程的概念,就要先了解进程的概念:要了解进程的概念,就离不开操作系统的概念. 在一台正常运行的电脑中,计算机硬件(如CPU.内存.硬盘.网卡.显 ...

  2. 51Nod 1352 集合计数(扩展欧几里德)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1352 题目大意: 给出N个固定集合{1,N},{2,N-1} ...

  3. selenium webdriver操作各浏览器

    描述 本文主要是针对Chrome 62 , firefox57 ,和IE11 三个版本的操作.相关的driver .可点击以下链接.所有的driver 建议放在浏览器的目录下,本文中所有的driver ...

  4. C语言小程序之整除

    看到有人要求用C语言写这样一个小程序,就拿来温习一下 需求:输出从1到2015这2015个自然数中,能被4或5整除,但不能被30整除的数,并计算有多少个数.   #include<stdio.h ...

  5. iis应用池内存溢出卡死优化

    1.修改回收阀值memoryLimit 在ASP.NET Web服务器上,ASP.NET所能够用到的内存,通常不会等同于所有的内存数量.在machine.config(C:/WINDOWS/Micro ...

  6. loadrunner参数取值方法总结

    在参数设置位置有两个地方:Select next row –下一行的取值方式(针对用户)Sequential 顺序的,即所有用户都是按照同一种方式取值(都是按照Update value on方式取值, ...

  7. Laravel 入门

    本文介绍如何开始使用 Laravel. 读完本文,你将学到: 如何安装 Laravel,新建 Laravel 程序,如何连接数据库: Laravel 程序的基本文件结构: MVC(模型,视图,控制器) ...

  8. Es6懒加载

    const Login = resolve => require(['@/components/Login'], resolve) 注(当路由被访问的时候才加载这个组件)

  9. Java Web开发——HTML CSS JavaScript 杂记

    HTML是一种在互联网上常见的网页制作标注性语言,并不能算作一种程序设计语言.因为它相对程序设计语言来说缺少了其应所有的特征.对于网站设计人员来说,只使用HTML是不够的,需要在页面中引入CSS样式. ...

  10. redis实现分布式锁工具类 灰常好用

    public interface RedisDistributionLock { /** * 加锁成功,返回加锁时间 * @param lockKey * @param threadName * @r ...