敏捷开发将走向消亡,我们该如何应对

CSDN资讯 CSDN资讯     2022-12-30     377

关键词:

作者 | Ulises Ramirez-Roche

译者 | 弯月 责编 | 王晓曼

出品 | CSDN(ID:CSDNnews)

如果使用得当,敏捷方法论能够兑现其承诺:更快、更可靠地交付软件,并且在业务团队和工程团队之间建立信任。然而,我们很难正确地应用敏捷方法论,尤其是在规模比较大的时候。如果使用不恰当,敏捷方法论就是万丈深渊。

拯救敏捷的尝试都会以失败告终,因为这场战争在很久以前就已经输掉了。事实上,在2021年敏捷就已经一败涂地了。甚至是敏捷的创始人都表明放弃敏捷方法论了。

瀑布式开发可能已经消失了,而敏捷已经完全沦为了一群不懂软件开发的商人的“玩物”,这就是为什么现代软件开发成为了一个反乌托邦,如今回忆起 1984 年会觉得温馨又怀念。

我从事软件开发已有十余年,而敏捷的成功运用,我只见过两次,而且我本人就是这两个项目的技术负责人。不幸的是,我参与的所有其他敏捷项目都惨遭失败,看看我的简历,你就会发现其中都是苏格兰谬误(No true Scotsman,讽刺一些人的观点“失败的项目都不是真正的敏捷项目”)。

万物都必须学会适应,否则就会走向灭亡。那么,如何才能杀死一条巨龙呢?你可以等待英雄来拯救我们,也可以等待这条龙慢慢变老,然后自然死亡。在我们的世界里,《星球大战》的结局是:卢克·天行者被杀,达斯·维德死在床上,帝国即将崩溃。

在我们的世界里,新冠疫情加速了敏捷的发展,在家办公成为了常态,所有软件开发如今都是在分布式环境中完成的。

为什么 Scrum 会消亡?

关于这个问题的讨论早就有了结论,但问题是为什么是现在?

“能够替代Scrum” 将成为软件开发中最大的卖点。Scrum 作为主流敏捷框架将消亡,因为它起不到任何作用,而且也不具备可扩展性。随着各家公司由于项目反复失败而感受到压力,再加上由于技术债务导致代码库愈发混乱,他们会逐步转向专为大规模分布式软件开发而设计的敏捷框架。

但是,正如美国作家厄普顿·辛克莱所说:

“当一个人要靠着对某件事情的不理解来拿薪水时,要让他理解这件事情是很困难的。”

—— 厄普顿·辛克莱

Scrum会消亡,但敏捷仍然会存在,因为这是主流,而 Scrum 只是一只替罪羊。但敏捷本身并不是为我们生活的这个时代而设计的。在我们这个时代,软件开发是分布式的,在家办公是常态,因此投资者无法忽视因失败而付出的高昂代价。

我们正处于软件行业历史发展的十字路口,因为混乱带来了机遇,我们有机会修复敏捷,并修复业务与工程之间的鸿沟。我们将要面临的是“诸神的黄昏”,这是一场伟大的自然选择之战,要么适应,要么死亡。然而,什么才是新的 Scrum 呢?这仍然是一个未解之谜。

为什么 Scrum 还没有消亡?

普朗克曾经说过:

“一个新的科学真理取得胜利并不是通过让它的反对者们信服并看到真理的光明,而是通过这些反对者们最终死去,熟悉它的新一代成长起来。”

这就是著名的普朗克科学定律。

尽管我们都知道“敏捷行不通”,“Scrum 不具备可扩展性”,“真正理解Scrum的人不会错误地实施 Scrum”,但这并不重要,因为这场战斗的意义并不在此,这是中层管理人员与开发人员之间的权力斗争。

敏捷宣言是技术人员对于非技术管理者(和许多技术管理者)不断实施微观管理的反抗,这些人对于技术一窍不通,直到今天依然如此。而 Scrum 则是非技术管理者的回击,他们希望重新获得对项目以及开发人员的控制权。

Scrum还没有消亡,因为公司的消亡非常缓慢,因为 Scrum 是一个糟糕的微观管理优先框架,它给人一种生产力的错觉,同时将责任转移到开发人员身上。Scrum 框架就是一个典型的流程重于人的例子。

Scrum只适合纸上谈兵,如果应用得当就会奏效,然而我们根本无法在实践中实施 Scrum。但是,“真正的 ScrumMaster不会……”的论点纯属胡说八道,我们心知肚明。

Scrum将如何消亡

在新冠疫情爆发之前,在 Web 2.0 的推动下,科技行业发展迅猛,遍地黄金,因此即便是构建软件花费巨额成本,也没人在乎。

人类都喜欢安于现状,因此敏捷也得到了社区的支持。但敏捷本身是它那个时代的产物,而如今软件开发步入了分布式的新时代。而软件开发的费用如此巨大,总有一天资金会出现短缺,相应的也会有公司陷入绝境。

Scrum将会消亡,因为 Scrum 的设计有一个前提:各个团队之间需要面对面地互动。大部分交流都是非正式的,而且必须以密切的合作为基础。然而,分布式开发需要正式的沟通,文档成为了信息流的重要组成部分。于是,结对编程之类的实践失去了价值,也无法保持高质量,而且集成代码的难度增大,团队之间的协调也越来越困难。我们无法进行正确地评估,因为没有准确的信息作为基础。最终,由于冲突和误解太多,导致整个项目举步维艰。

从本质上讲,敏捷和 Scrum 的设计前提是:所有人都在办公室工作。眼下在家办公已成为常态的情况下,Scrum理论本身就有问题,又何谈实践呢?

如今,每个采用了敏捷开发的人都进入了黑暗阶段。而这一次,仍然有人抱有希望,以“真正的 Scrum Master 不会……”为借口。但是这一次,屠龙英雄不会来。

事实上,公司越大,遭受的打击就越大,越剧烈。生产力会一落千丈,业务团队和工程团队会争锋相对。每一个 Sprint 都会变成一次死亡行军。这个过程不断重复,开发软件的成本越累越高,直到最后资金耗尽。

一些公司为了缓解压力,会放弃 Scrum 并尝试新框架,但大多数公司都将死在黑暗 Scrum 阶段。Scrum 将成为过去,因为在分布式环境中开发软件的挑战将打破 Scrum 日复一日努力编织的梦幻,Scrum 所有的认证(包括Scrum Master)都会消亡。

只有适应时代的人才能生存下来,但绝大多数都会被其他公司所吞噬。

如何挺过这场灾难

为了挺过即将到来的诸神黄昏,各个公司必须将开发流程中的 Scrum 替换掉。当然,他们不能在敏捷上犯错误,因为在分布式环境中开发软件的风险要高得多。这个新世界是一片没有奇迹的土地。再也不能靠运气了,因为现在所有问题的根源不仅是技术债务,还有沟通。

当初巴比伦人的傲慢招致上帝的不满,于是上帝让他们说不同的语言,并将他们分散到世界各地,从而扰乱了他们的交流。这是一种真正的设计模式,你可以了解一下。

因此,各个公司必须正确地使用敏捷,弥合业务团队和工程团队之间的鸿沟,否则就做好被时代遗忘的准备。

你必须改善沟通,并偿还技术债务。首先,弄清楚自己是否身处黑暗的 Scrum 之中,并制定一个摆脱计划。接下来,理解敏捷的核心概念,并做一些尝试。最后,建立自己的框架。

如果你没有权力在组织中实现这些变化,则不要攻击想象中的敌人。首先,这个问题牵扯的范围很广;其次,有些人仍然沉浸在 Scrum 的幻想中,他们会不惜一切代价保持现状,而你会成为他们的攻击目标。你会被解雇。你要学会低调,或者另找一份工作。记得面试的时候,一定要问一问他们对 Scrum 的看法,以及他们如何应对向分布式开发的转变。如果有人意识到这个问题的严重性,则你可以考虑加入他们公司。

我们面临的是一个充满巨大变化和实验的时代,也是一个充满动荡和冲突的时代。我们将被迫抛弃旧方式,并寻找新方式,因为我们生活在一个没有办公室的世界。但我希望这个时代会更加美好。我希望找到取代 Scrum 的新方式,并将开发人员的快乐放在首位。

原文链接:

  • https://www.ulisesrmzroche.dev/archives/2021/08/agile-armageddon/

需求变更,敏捷项目应如何做?

...这边的需求变更,确实这是一个非常棘手的问题。不过在敏捷项目管理过程中,我们还是有一些方法可以解决需求变更这个问题的。尽管我们对需求变更“深恶痛绝”,但毕竟,该面对的还是要面对的。在敏捷项目管理中,我们... 查看详情

用户意见千千万app开发该如何应对处理

用户意见千千万APP开发该如何应对处理  无论我们开发怎样的app,其最终目的都是为了获得用户的认可。只有用户认可了,才有可能帮助推广成为平台的忠实用户。若想获得用户的认可,首先产品得是能解决用户需求的,... 查看详情

作为一个刚刚入职android开发的应届生,该如何走向架构师?

很多Android的小伙伴在做了多年的开发之后,始终搞不清楚达到Android架构师需要何种技能,我们对比着Android高级工程师来说明。我们先来看一下Android高级工程师的招聘要求在我看来1.Android高级工程师+全局眼光=架构... 查看详情

敏捷项目管理将“敏捷”拉下神坛,走向你我

...准备PMI-ACP认证的考试,逼着自己系统性的学习了一下敏捷的相关知识,同时在部门内做了一次分享交流,感觉“敏捷”的思想是非常潮流的,但是真的实施起来,也没有想象的那么容易,搞不好,就成... 查看详情

传统数据库走向消亡?

...:时下,开源成为技术发展的大趋势。开源促使开发人员获取需要软件时,更加便利。尤其在云计算的出现后,开源的便利性得到极大地提升。开源和云两者交融,迸发更多势能。但是,很多人发出担忧&#x... 查看详情

敏捷1.3敏捷中的项目开发生命周期

敏捷中的项目开发生命周期每个项目管理理论中,都会提到一个项目生命周期的概念。关于生命周期其实很好理解,就是一个项目从诞生到消亡的整个过程,在这个过程中,一般会有几个重要的节点是我们需要特... 查看详情

测试如何应对新的开发模式?

...困难,需要克服很多挑战。尤其是,持续交付、敏捷开发等开发模式为传统软件测试方式带来了更大的时间压力。我们先来看看下面这种熟悉的测试方式都有什么问题:测试人员接到项目后参与需求评审,然后根... 查看详情

敏捷开发(部分选自百科)

...类型、计划、还需要注意效率。就目前小公司流行的,以敏捷开发为主的小公司采用的方式,我们可以借阅了解下。 敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应... 查看详情

敏捷的一些感想

...习还是要学习滴~   并不是所有项目都适用于敏捷的,敏捷只是完成任务的一种方法,或者是在瀑布型的开发模式中,去完成工作的一种方法。最简单的例子,项目所涉及的系统流程有ABCD四个步骤,我们不能单独交付... 查看详情

敏捷开发和极限编程

敏捷软件开发(Agilesoftwaredevelopment):它是一种用来应对软件需求的不断变更的新的软件开发技术。强调整个开发过程中业务人员和开发人员紧密协作在一起,面对面交流,频繁性的交付软件,随时应对需求的变更。追求在尽可... 查看详情

如何让开发变得敏捷起来?

不久前和同事交流的时候看到这样一段话,“在经历敏捷软件开发方法在中国传播和发展的过程中,我们深切地感到,缺少对软件开发日常基础时间、尤其是与编程紧密相关的核心技术实践的指导,敏捷注定流于形式。缺少完备... 查看详情

敏捷项目管理将“敏捷”拉下神坛,走向你我

...准备PMI-ACP认证的考试,逼着自己系统性的学习了一下敏捷的相关知识,同时在部门内做了一次分享交流,感觉“敏捷”的思想是非常潮流的,但是真的实施起来,也没有想象的那么容易,搞不好,就成... 查看详情

我推崇的软件工程思想--敏捷开发

...纪"的软件工程思想,先买呢谈谈我推崇的软件工程思想----敏捷开发为什么要敏捷开发“没有人喜欢敏捷,但我们不得不敏捷。就像没有人喜欢工作,但你必须工作。”这是我经常用来调侃敏捷的一句话。试想一下,拿到一份完整... 查看详情

阿里内贸团队敏捷实践-敏捷回顾

回顾(review)是敏捷开发中的一个必不可少的实践,也是把整个敏捷开发过程连接成一个闭环的关键节点,本文将阐述我们是如何做敏捷回顾的。敏捷回顾最高指导原则?无论我们发现了什么,考虑到当时的已知情况、个人的技... 查看详情

敏捷开发的那些事

“敏捷”这个词近几年非常火,经常会有人问:“我们应该怎样开始做敏捷?”或者:“能不能来帮我们推一下敏捷?敏捷有很多实践,管理的、工程的都有,但敏捷绝非我们看到的站会、持续集成、TDD等那么简单,真正的敏捷... 查看详情

敏捷软件开发的最佳资源

 请阅读我们的热门文章,这些文章着重讨论了敏捷的过去、现在和未来。--LeighGriffin(作者) 对于Opensource.com上的敏捷主题来说,2019年是非常棒的一年。随着2020年的到来,我们回顾了我们读者所读的与敏捷相关的热门文... 查看详情

敏捷开发

...是敌对的局面。如何破除这种局面呢?这就是本期要讲的敏捷开发。敏捷的起源硬件领域有摩尔定律,即每隔18~24个月,每1$能买到的电脑性能将翻翻一倍以上。而软件行业却没有相应的规律。那么软件行业如果提高生产率、质... 查看详情

敏捷开发

转自维基百科敏捷软件开发敏捷软件开发(英语:Agilesoftwaredevelopment),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理... 查看详情