电话机

敏捷开发中的慢哲学

发布时间:2023/12/2 16:12:55   
MORK编译没有控制的快速开发可能是软件开发的最大敌人。你应该放慢速度的三个主要领域是人员、流程和产品。在深入讨论细节之前,让我先讲一个故事。大概是在年,我加入了一个团队,负责建立一个在线营销平台。我的主要职责是尽快为系统添加新功能。很快我就发现由于前期的技术债务和设计挑战,我们不可能快速完成。几乎每次尝试加快速度,我们都适得其反地增加了复杂性并破坏了质量。在我看来,唯一的方法就是重新编写整个系统。我记得,我打电话给产品经理说我们需要重写整个系统。电话沉寂了30秒后,项目经理说:“你说你的团队写的产品质量太差,以至于同一团队不得不再次重写相同的产品,但这次更好。对吧?对不起,伙计,这是不可接受的。你应该写得更好。”盲目求快产生“僵尸软件”根据StandishGroup的Chaos报告,94%的软件项目都是多次从零开始重新开发的。94%!不忍直视啊!当我查看过去开发的产品时,我发现几乎所有的产品都是用新技术、架构和设计从零开始重写的。重写是如此普遍,以至于企业常常将其视为项目管理和创新的唯一选择。我们写啊,写啊,写啊,写啊,写啊。什么是软件开发中最大的敌人?在软件世界中,速度是至关重要的。不仅对于在市场上处于领先地位很重要,而且通过添加新功能和快速消除bug来响应客户的需求也能保持客户的高满意度。但我们都有“速度”的问题。我们认为,更快、更聪明、更高效地完成任务与设定目标的截止日期有关。我们认为花更多的时间工作,或者与更多的人一起工作,就可以“更快”。因此,我们要么增加新员工,要么加班加点提高生产效率。然而,匆忙既不会让我们更快,也不会让我们更多产。匆忙只会增加压力,分散注意力,破坏效率。相反,我们需要创造力、效率和专注。软件开发是非常困难和复杂的。我们无法摆脱复杂性,只能接受它。对速度的追求创造了一个不稳定、不可持续的环境,使我们压力更大、注意力更不集中、效率更低。团队能力、总体规划、估算、固定工作时间、截止日期和速度概念都是虚构的;无能是现实。交付时间直接依赖于人员的技能、流程的效率和产出的质量。大多数情况下,开发人员给自己设置了隐藏的截止日期,而没有任何实际需要。最终,我们得到了遗留软件。最后期限的压力加上无能导致了遗留软件,即工作软件的死胡同。我给遗留软件起了个更贴切的名字:僵尸软件——因为这类软件实际上已经死了,但似乎还在生产中。它在生产中起作用,人们从中获利,但是它需要软件开发人员的血液、生命和精力来以某种方式继续工作。开发人员不敢碰它,只要它能工作,没有人想要改变它。RobertC.Martin在twitter上对僵尸软件的症状有一句完美的描述:“如果你的软件越来越难开发,那你就做错了。”“在匆忙中,我们破坏了质量,以至于我们每向前走一步,整个过程就会变得更慢。”我相信,慢下来,直到我们达到一个可持续的状态是唯一的加快速度的方法。在软件开发中,匆忙是罪恶的正如RobertC.Martin在谈到CleanCoders软件的主要价值时提到的,“软件系统能够容忍和促进这种持续变化的能力是软件的主要价值”。在软件开发中,匆忙是罪恶的。任何匆忙的尝试都会在生产力、注意力、人的效率、适应能力和对软件的容忍度方面造成巨大的破坏。例如,我们总是有时间来修复bug,但是没有时间来编写测试。我们没有重构和编写测试,因为我们没有足够的时间。但我们有时间调试、破解代码和修复bug。我们过于

转载请注明:http://www.aideyishus.com/lkzp/6107.html
------分隔线----------------------------