James Shore声称敏捷正在走向衰落。他说,很多团队在用“sprints”和每日例会,但是却不采用那些可以在长期内产出高质量软件的技术实践。在他的估计中,已有无数个Scrum团队将敏捷用的如此之烂,不仅失败已成必然,而且会将敏捷的发展跟他们一起拖入泥潭。
James的文章中,大部分都是在指责Scrum和Scrum的误用。他将Scrum和XP进行对比,指出Scrum故意把XP中包含的技术实践抛 在一边。在一些技术话题上——例如结对编程、测试驱动开发、持续集成、自动化测试——Scrum保持了缄默。但是如果没有这些实践,团队很快就会造出一个 庞大且蠢,问题多多难以维护的代码库。然后这就会变成他们身上重重的禁锢,使他们无法像敏捷团队一样快速应对变化。
James认为,这也不能说是全都是Scrum的错,因为团队必须要为自己的成败负责。很多团队都只选用Scrum中浅显简单的部分应用,例如短迭 代和每日例会,更困难而且也是更重要的实践——如回顾和改进——就不管不顾了。在这个过程中,团队本应有能力识别并且采用一些工程实践,帮助他们在每个迭 代中交付可用软件,但不幸的是,很多团队都没能做到这一点。
很多人评论说,这个问题不是源于Scrum本身,而是那些把Scrum用的惨不忍睹的人造成的。例如,Dustin Whitney说道,“我觉得你因为那些庸人失败了就来指责Scrum,这相当不公平。”
James的观点是,无论失败的原因是什么,这些失败都有可能把敏捷变成一种风潮,随风而逝。
不幸的是,有很多自称敏捷的项目在走向失败。他们正在失败。最后Agile将承受这后果,它会离我们而去,正如一切流行时尚一样。
Simon Kirk的回应则十分乐观:
我赞同作者的这个前提,很多冠以“敏捷”之名所行之事的确名不副实。不过我也相信,这是普及敏捷(我是说真正的做好敏捷)的过程中无可避免的一步。
敏捷是时尚么?它真的难度很大,大多数团队都没法有效实施?或者它只是正在经受成长的烦恼,即将迎来更广泛更加成功的应用?请留下你的看法,与其他读者共享。
查看英文原文:James Shore: The Decline and Fall of Agile
译者注:
在InfoQ英文站上,James也留下了评论:
很多人都把我的这篇文章视作对Scrum的责难,但这不是我的本意。我只是想着重指出我所见的失败案例,还有导致失败的成因。最大的问题不在于Scrum或是CSM,是那些买椟还珠的人。
Bob大叔则以诙谐辛辣的笔吻写道:
现在我们总算找到答案了。我们知道是谁的问题了。是SCRUM!SCRUM是敏捷运动失败的原因。SCRUM是敏捷团队把事情搞糟的原因。SCRUM是一切问题和罪恶的根源。SCRUM带来了“敏捷衰落”。
你被我玩了。
Scrum不是问题,它过去从来不曾成为问题,将来也永远不会成为问题。亲爱的工匠们,这个问题是我们自己的懒惰啊。
既然我们不写测试,不能保证代码的干净,那埋怨SCRUM做什么呢?我们不能将技术债归咎于Scrum。在Scrum出现之前,技术债就存在已久了,而且它还将继续存在下去。不,Scrum不应该被骂。罪魁祸首还是跟从前一样:我们自己。
当然,两天的认证课程不足以构成一个优秀软件领导的充要条件。而且在参加完CSM课程以后得到的证书,除了能够说明你花钱参加了两天的CSM课以外,也没有别的用途。而且在工程实践方面,Scrum也有很多欠缺。但无论是Scrum还是CSM,它们的目的都不是从我们中间培养出工程师,或是给我们灌输工匠守则。那是我们自己该干的活!
有些人还说要是那些Scrum团队都用的是XP,而不是Scrum,那就不会有那些技术债了。扯淡!
让俺说的更明白一些: ASININE, INANE, ABSURDITY. BALONEY. DINGOES KIDNEYS. (荒谬!扯屁!蠢驴!XX……)
让俺告诉你们,在这,从现在到以后,不管到什么时候,你永远都有可能把XP搞烂。用TDD想留下技术债真他妈的容易。没脑子的家伙跟人结对也会把代码搞成荒地。而且,我告诉你,你会在做出简单设计以后,不再维护它。
你想知道写出优秀软件的秘诀么?你想知道怎样保证代码干净吗?你想要银弹吗?私家汤料?万事万物间那唯一的真相?
好,我现在就给你。你准备好了吗?秘诀就是……
秘诀就是……
干好自己的活。
够了,别再埋怨一切,你自己别那么懒就行了。
分享到:
相关推荐
书中可能引用了诸如Jim Highsmith、James Shore和Shane Warden等业界专家的观点,他们在敏捷开发领域有深刻的理解和丰富的实践经验。 敏捷开发的精髓在于其核心价值观和原则,这些都详细记录在《敏捷宣言》中,它是...
Shore是用于JS的简单波形发生器库。 它使人联想到SoundCloud,但可以与音频元素结合使用,并且不受在线服务的约束。 请随意尝试该,但如果该页面不起作用,则可能需要刷新该页面。 肖氏当前是实时的,并且与音量...
#Test Driven JavaScript ###学习使用James Shore构建JS来编码TDD样式: 安装了nodejs 运行./jake.sh * Windows-安装Git-安装NodeJS-克隆存储库
【标题】中的“weewikipaint”是一个基于James Shore的“Let's code javascript”网络视频系列的示例项目,它展示了如何使用测试驱动开发(TDD)方法来构建一个Web应用程序。这个项目的核心是利用JavaScript语言来...
Jim Shore是敏捷开发和极限编程(XP)的早期倡导者和实践者,而Shane Warden在敏捷社区中也很有影响力。这本书不仅涵盖了敏捷开发的实践技巧,比如迭代规划、持续集成、测试驱动开发、重构等,还深入探讨了如何在...
- 与不同的动词、形容词和介词搭配使用,如"follow the shore of"(沿…海岸航行),"flat shore"(平坦的海滨),"at the shore"(在海边),"on the shore"(在岸边)等。 3. **搭配和短语** - 一些常用的短语...
CSC3090 类项目使用 MySQL、Workbench 和开发环境创建公寓综合体,管理公寓单元、租金、发生的费用和单元收集的收入。 报告是由于业主。
标题 "01_note5tt_cpp_shore3qg_" 可能是指一系列关于编程学习的教程,其中"note5tt"、"cpp"和"shore3qg"可能是特定的项目代号或关键词,但没有明确的信息来解释它们的确切含义。描述中的“arduino basic skill是...
"29192358.rar_shore3y8_网络编程"这个标题可能代表一个项目或教程,其中包含了关于网络编程的特定示例或代码库。"shore3y8"可能是该项目或库的特定标识符或版本号。 描述中提到的"GBSBEM(几何单反射椭圆模型)"是...
《深入理解gantt_shore9pp_js:甘特图插件与dhtmlxGantt控件解析》 在项目管理和任务调度中,甘特图是一种非常实用的工具,它能够直观地展示任务的进度和时间安排。gantt_shore9pp_js是一款基于JavaScript的甘特图...
《深入理解gantt_shore9pp_js:基于dhtmlxGantt的甘特图插件与JavaScript编程基础》 在IT行业中,项目管理和任务调度工具是不可或缺的一部分,而甘特图则是这类工具中的典型代表。它以直观的时间轴形式展示项目进度...
资源分类:Python库 所属语言:Python 资源全名:nr.shore-0.0.23.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
《敏捷开发的艺术》一书由James Shore和Shane Warden共同撰写,深入探讨了敏捷开发方法,特别是极限编程(Extreme Programming, XP)的核心实践与益处。本书不仅提供了理论上的阐述,更融入了作者们在领导团队过程中...
标题中的"sum_compt8_SUM_XilinxISEDesign_multiplexer_shore5eu_"表明这是一个与数字逻辑设计相关的项目,其中涉及到了8位加法器和多路复用器(multiplexer)的设计。Xilinx ISE Design Suite是Xilinx公司提供的一...
- shore:海岸,名词,指海边的陆地边缘。 - yell:大声叫喊,动词,用原形yell表示一般现在时或祈使句。 - flee:逃跑,动词,过去式为fled。 - drag:拖动,动词,过去式dragged表示过去完成的动作。 - ...
“shore12k”可能是一个特定的数据集或者实验环境,它可能包含了12,000个以上的3D模型,用于训练和验证深度学习模型。这种大规模的数据集有助于网络学习到更广泛的3D形状和纹理特征,提高泛化能力。 论文中可能涉及...
7. shore:海岸,陆地与水域的交界。 8. light:光,照明,这里指的是远处的灯光。 9. ahead:在前面,向前。 10. cliff:峭壁,陡峭的山崖。 11. struggle:挣扎,努力,奋斗。 12. hospital:医院,提供医疗护理的...
在"matlab终止以下代码-Shore-Water-Level-Approximator"这个项目中,我们可能会遇到需要停止特定代码的情况,尤其是当它涉及到计算海岸水位的复杂算法时。海岸水位的估计通常涉及到对海洋与海岸之间深度梯度的精确...