近来,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. C++ 和Java继承机制的比较

    摘要: C++支持类的多继承,而Java采用类的单继承.C++中的继承成分只有类(模板属于带参数的类,结构和联合是特殊的类),Java中除了类还有接口的继承,而且允许接口的多继承,可以间接地实现类多继 ...

  2. (四)Spring 对DAO 的支持

    第一节:Spring 对JDBC 的支持 1,配置数据源dbcp: 2,使用JdbcTemplate: 3,JdbcDaoSupport 的使用: 4,NamedParameterJdbcTempla ...

  3. fail2ban安全设置

    1.先安装fail2ban服务包(这里我采用的是fail2ban-0.8.14.tar.gz) 2.解压安装包 cd /data/software tar xzf fail2ban-0.8.14.ta ...

  4. 数据库介绍及MySQL安装

    阅读目录 一.数据库是什么? 二.数据库特点 三. 什么是数据库管理系统(DataBase Management System 简称DBMS) 四.数据库服务器.数据管理系统.数据库.表与记录的关系( ...

  5. bzoj 1102

    思路:用dfs 会爆栈,巨坑,要用bfs. #include<bits/stdc++.h> #define LL long long #define fi first #define se ...

  6. Redis实战(四)

    配置好了web.config程序,并且能通过C#代码来读取和管理以上配置信息. 接下来,就可以进行Redis的数据写入了.Redis中可以用Store和StoreAll分别保存单条和多条数据,C#中具 ...

  7. CSS3 之媒体查询Media Query

    Media Queries是CSS3有关媒体查询的属性,有了CSS3 之媒体查询Media Queries就可以进行媒体查询,针对每个不同的媒体进行不同的样式编写.传说中的Web响应式布局就可以毫无压 ...

  8. 在 Ubuntu 系统安装 Redi laravel 5.2 引入第三方类

    composer 安装类依赖包 很受用 也很方便 但是要是一个有一定规模的公司技术团队 因为要照顾大局 还是引入类好些 下面是引入类的方法 1.首先在app目录下创建一个新的文件夹,命名Tools(可 ...

  9. MySQL表设计:每一种商品有不确定个数的属性

    I personally would use a model similar to the following: The product table would be pretty basic, yo ...

  10. [Gym - 100517K] Kingdom Division 2 二分

    大致题意: 给出一个凸包,以及凸包内的两个点p1,p2,求有多少条经过凸包顶点的直线能够将凸包分割为两部分,且给出的两点分别属于不同的部分 枚举凸包的顶点,二分求出p1,p2线段左边的最大坐标L以及右 ...