敏捷开发中应避免的 5 个错误
什么是敏捷方法论?
敏捷开发通过增量式的项目开发和系统设计方法,帮助软件开发团队更快、更轻松地为客户创造价值。敏捷团队以可管理的小规模增量交付工作成果,而不是孤注一掷地制定“要么全做,要么全不做”的发布计划。
在公司内部实施敏捷实践有无数优势。敏捷方法在企业中拥有极高的采用率,这充分证明了它们能够显著提升团队在项目上的绩效。尽管如此,敏捷开发也并非完美无缺,团队在使用这种结构时需要格外谨慎,因为它可能会导致时间浪费,并影响开发人员的效率。
在本文中,您将了解到在敏捷开发环境中工作的一些缺点,以及这些缺点如何对团队按时完成敏捷冲刺的能力产生负面影响。
1:时间限制
时间管理无疑是敏捷开发架构中最大的挑战之一。众所周知,如果我们拥有更多的时间,就能完成更多的事情,而时间往往是生命中唯一无法挽回的东西。这对于敏捷团队来说无疑是一个巨大的挑战。
团队成员必须参加每日站会,这可能会影响他们的工作流程。此外,敏捷思维要求开发人员、测试人员、客户和其他利益相关者之间持续协作。这种高强度的互动可能会严重影响敏捷开发团队成员的时间管理能力。在整个敏捷迭代周期中,团队成员还需要参加许多其他仪式,这些仪式本质上也是不同的会议。
这些会议可能包括迭代计划会议、需求细化会议、回顾会议、每日站会,甚至还有客户演示。各种会议耗时半天并非不可能,我在之前为多家公司工作时就遇到过这种情况。这意味着半天时间都花在了会议上,实际上耽误了你当天的工作。别误会,会议固然非常重要,但它们必须顺利进行,并且不能占用太多时间。
会议会分散注意力,开发人员如果不断被打断,不得不在同时发生的多件事之间切换注意力,就很难集中精力完成任务。据称,多项研究表明, 被打断后平均需要23 分 15 秒才能重新回到之前的工作中。
2:任务简报不明确
另一个需要考虑的重要因素是,有时任务简报可能非常复杂,乍一看难以理解。敏捷团队会将大量数据压缩成更短、细节最少的用户故事。这些用户故事通常采用以下结构:
作为(用户描述),
我想要(这个功能),
因此(这些好处)
这会使程序员更难准确理解客户需求。如果项目推进过程中没有明确的策略或既定的方法,团队成员很容易迷失方向。文档不足会导致开发人员因缺乏清晰的说明而感到困惑。在大多数情况下,他们需要向编写用户故事的人寻求更多信息,因为用户故事的编写者才是直接与客户沟通的人。
更好的解决方案是建立一个维基或其他文档库,并将文档链接到用户故事,这样负责处理任务的开发人员就能获得完成任务所需的所有信息。谁都不希望出现工作出错的情况,这会导致迭代周期中的阻塞和延误。更糟糕的是,两名开发人员可能同时负责同一个任务的不同用户故事,而这些用户故事需要实现相同的功能,从而导致重复劳动。虽然这种情况看似罕见,但我确实亲眼见过。
3:不断变化的需求
这方面可能会大幅增加团队的工作量,导致团队成员精疲力竭,不堪重负。客户经常改变主意,因为他们想要实现的想法和功能需求数量庞大,没有上限。在业内,这种情况被称为“范围蔓延”、“功能蔓延”和“需求蔓延”。
简而言之,它描述了随着客户不断提出新的功能需求,项目在其生命周期内如何发生变化。这种做法的弊端在于,它可能导致项目延期、受阻或预算超支,而这并非我们所期望的结果。团队可能会不堪重负,并因不确定哪些功能需要优先处理而迷失方向,忘记了最初的目标。
最初只是一个单独的版本,现在可能变成七八个,导致产品待办事项列表不堪重负。或者,假设你的产品最初只有两个关键功能,现在却需要七个。客户的需求可能在项目进行到一半时发生变化,需要重新评估项目需求,这可能导致敏捷迭代超出分配的故事点预算。故事点与迭代速度共同为接下来的迭代中需要完成的故事数量提供指导。在迭代开始时会给出估算,Scrum Master 会尽量避免超出分配的总数。
4:长期项目不适合敏捷开发
试图将敏捷开发应用于长期项目往往会导致失败或产生不理想的结果。敏捷的核心在于通过敏捷迭代(Sprint)来构建产品的小模块。在敏捷迭代过程中,变更在所难免,这对于短期项目来说是可以接受的。相比之下,以制造业为例,如果你要制造一辆汽车,最终设计是固定的,任何更改都是不合适的。
敏捷开发基于这样的理念:团队不太可能确切知道最终成果会是什么样子,也不太可能知道下一阶段的交付成果会是什么样子,因此,准确预测启动项目所需的资金、时间资源或具体要求几乎是不可能的。
5:很难保持最高效率
在敏捷开发中,团队需要在保持高效工作的同时,与其他团队成员以及参与同一产品开发的其他团队进行协作。这并非易事,因为团队其他成员常常会承担其他团队的任务,从而分散团队资源,影响任务的完成。因此,确保团队有效实施跨职能协作和沟通至关重要。
如果运用得当,敏捷方法论可以成为一个引人入胜且具有变革性的系统。然而,成功需要项目相关人员(包括客户)的大量投入。例如,开发人员可能需要在其他团队处理优先级更高的项目,这会减少其他团队可用的资源。这会造成问题,因为开发人员需要随时待命以获得审批,并确保产品已准备好投入生产。此外,还可能出现各种阻碍,导致迭代周期延长,迫使任务被推迟到下一个迭代周期,而客户可能会将此视为延误。
最后想说的
今天您学习了敏捷开发以及使用敏捷开发时需要避免的 5 个错误。如果运用得当,敏捷开发能够真正推动您的业务取得巨大成功。只需确保您采取必要的步骤,充分发挥敏捷开发的优势,您的开发团队就能高效工作。
文章来源:https://dev.to/andrewbaisden/5-mistakes-to-avoid-with-agile-development-346a