对敏捷的嘲讽
嘲笑方法论
严肃地说
快餐管道
完美美食
所以呢?
以下是对敏捷宣言十二原则的一点讽刺反思。请滚动到页面底部阅读正文。
嘲笑方法论
我们的最高优先级是通过尽早并持续交付有价值的软件来满足客户的需求。
在大多数情况下,最高优先级是通过大嘴巴的销售经理、顺从的项目经理和知道如何在很长一段时间内避免重构的程序员,用最少的工作从客户那里获得尽可能多的钱。
即使在开发后期,也能积极应对需求变更。敏捷流程能够驾驭变化,为客户带来竞争优势。
当需求发生变化时,几乎所有软件工程师都会抱怨和大喊,因为世界应该足够静态以适应他的脑力劳动,但又不能静态到让他离开并停止为他的创造获得报酬。
频繁地交付可运行的软件,从几周到几个月不等,最好是较短的时间范围。
每周冲刺一次很不错,你同意吗,开发者朋友?忍不住眨眼
在整个项目过程中,业务人员和开发人员必须每天一起工作。
在提出请求后不到三天就能收到 BA 的回复,这真是令人欣喜,因为他们大多数时候都忙着让你的日子不好过。另一方面,开发者们也不想和那些只懂人道主义的“农民”相处,他们既不接受其他 JavaScript 框架的优秀之处,也根本不跟风。企业根本不关心开发者,他们只要求现在就能实现功能(他们还没决定具体的工作内容,但你得想办法)。
围绕有上进心的个人构建项目。为他们提供所需的环境和支持,并相信他们能够完成工作。
积极进取的人是优秀的人才,即使你的公司招聘率接近于零。大多数人工作只是为了温饱,而不是为了给别人的生意带来价值。不幸的是,当专注、自控、积极进取的专业人士的方法论被用在拖延、失控、灰心丧气的业余人士身上时,现实世界打破了对未来的美好憧憬。
向开发团队传达信息以及在开发团队内部传达信息的最有效方法是面对面交谈。
外包的现实:你的经理是客户唯一的数据输入/输出来源,这会导致数据在传输过程中不幸损坏。你的队友除了写代码和喝咖啡什么都不愿意做,所以面对面的交流变成了对敌方间谍的审讯,而不是友好的对话。
可工作的软件是衡量进步的主要标准。
你的经理会这样说:别在意那些和美国国债差不多的遗留问题和技术债务,除非你的系统真的像一个90岁老咖啡狂的心脏一样崩溃。一旦崩溃,赶紧去修复,但别等太久,不然你可拿不到钱。
敏捷流程促进可持续发展。发起人、开发人员和用户应该能够无限期地保持恒定的步伐。
这就是开发节奏——你把项目打散、腐烂,直到每个新功能的实现过程都感觉像印第安纳琼斯电影里的盗墓场景一样。然后客户给你安排了一个冲刺,用于重构和修复技术债务。几个小时的修复之后,客户会感到困惑,因为项目仍然不够完美。
持续关注技术卓越性和良好设计可提高敏捷性。
写代码,打破常规,生产环境会把所有 bug 都报告出来,把“技术卓越”留在大学里,我们身处真实的开发世界,只有鲜血、铁和比特……什么?我们的测试套件要运行几个小时,有些组件竟然有 3000 行?来吧,我们带来价值,无需担心。
简单——最大限度地减少未完成工作量的艺术——至关重要。
客户最清楚该做什么。没错,我们遇到过很多情况,需求在冲刺中期或冲刺结束后就发生了变化,尽管大家都在努力发布一个没人需要的功能。道理很简单——你是来写代码的,不是来争论的。
最好的架构、需求和设计都来自自组织的团队。
而他的左手不知道右手做什么,所以他们自发组织成了天鹅、梭子鱼和螃蟹。
团队会定期反思如何提高效率,然后相应地调整其行为。
当你的经理认为效率取决于你在办公室花费的时间时,你很难反思。
严肃地说
现代计算机行业新人源源不断,而且每年都在增长。虽然其中一部分人是专业人士,对这个领域充满热情,受过适当的教育(自学或大学教育),即使工资较低、没有炒作也会留在这个行业,但绝大多数人来这里是为了赚钱,做报酬最高的工作。这些人的意图各不相同,但这两种类型的人都受到职场的欢迎,因为需求仍然大于供应,而且乍一看很难区分两者(更不用说他们是否因为倦怠、在编程中找到乐趣等原因而从一种状态转向另一种状态了)。
人们不同的意图、关注点和工作质量会直接影响雇主实现其目标所需的流程和待遇。敏捷开发是作为一项运动而创建的,旨在为客户业务带来更好的代码、更好的质量和价值。这意味着在该领域工作的人是能够自我管理、积极主动的专业人士,他们知道自己在做什么。有些人就是这样,所以敏捷对他们有用。另一方面,其他人……他们还没有那么独立,或者根本没有独立,所以在某种程度上,方法论对他们来说是失败的。它可以存在于任何地方,在业务层面,在管理或开发层面。事实上,有些人如果没有流程就无法在福特工厂附近工作,在那里他们只负责自己负责的部分流程,不需要做任何其他事情。
快餐管道
让我们打个烹饪的比方。麦当劳(以及几乎所有其他快餐连锁店)流程的主要特点之一是其菜谱的稳定性和相对简单性。他们试图将菜谱的制作方法保持在一个任何有智慧的人都能理解和复制的形式,并能达到预期的效果。这样的菜肴永远不会非常美味,但它至少可以食用,顾客即使感觉不出什么特别之处,也能感受到一顿不错的饭菜。他们生产半成品、编写菜谱并调整流程,以确保无论厨房工作人员的烹饪技巧如何,流水线都能稳定地产出结果。
完美美食
而另一方面,你拥有一家米其林星级餐厅,拥有一支敬业的专业厨师团队,他们深谙如何用任何食材烹制出一顿正宗的菜肴,除了黄瓜牛奶。他们深谙团队合作和独立工作之道,他们试用过厨房里的每一台设备
,并知道何时使用,他们学会了即兴发挥,并严格遵守菜谱。如果不是如此热爱合作,他们每个人都会自己开一家餐厅。他们可以自由选择食材,想做什么就做什么,但有一个小小的限制:顾客必须始终满意。
所以呢?
大多数公司介于这两类之间。问题是——同一种方法论并不适用于所有公司。你不能给一个想要被约束的人自由,让他用恰当的措辞描述所需内容,然后按照步骤执行,再交给链条中的下一位员工,就像你不能限制米其林厨师,让他陷入机械的流程中,并期望他在这样的环境中工作得更好一样。在这个行业中,有时你会遇到高度受限和详细的流程,开发人员只是序列中生成代码的螺栓;有时你会遇到“按你拥有的做”的流程,这需要链条中每个人的机智、开放的心态、积极性和专注力来完成工作。奇怪的是,这两种流程配置都被称为敏捷,尽管它们唯一的共同点是围绕交付流程的仪式,而没有任何共同的价值观。也许我们应该用新的术语来解释宣言是如何在实际中实施的?
鏂囩珷鏉ユ簮锛�https://dev.to/arturmartsinkovskyi/mockery-of-agile-5bdf