当项目大量超出计划的时间和成本框架时,就会发生事故。如果发生这种情况,可以采取以下三种措施:
我们将像以前一样继续。
该项目被取消。
需求框架稳定,项目流程调整。
本文重点讨论第三种选择。在这种情况下,我假设初始情况是敏捷项目已经运行了一段时间,但仍然有相关的剩余预算或剩余期限(至少是原始项目范围的 20%)。此外,我们示例中的开发团队已经获得了现有周围系统和(指定)技术的经验。
稳定化的方法
要求的实施最初被停止。相反,执行分析阶段 - 用敏捷术语来说,这称为“分析冲刺”。本次冲刺的目标是创建一个稳定的框架,描述仍需要实现的功能的限制。
具体来说,组建了小团队,作为功能经理,与产品所有者和其他 个人伤害电子邮件列表的直邮营销 技术输入提供商一起深入分析需求。理想情况下,这些团队是混合团队。这意味着开发人员、测试人员和业务分析师将各自的观点带入调查中。收集需求的方式可以识别实施风险和限制。实施风险表示技术风险,例如连接到未知接口。界定功能的目的是透明地显示驱动努力的因素,以便可以明确排除它们。当一个功能被完全识别后,就会估计实施工作量,其中也包括风险工作量。
这种类型的工作量收集和估计通常是准确的,因为实施团队可以借鉴以前冲刺中的经验教训。该团队了解所使用技术的局限性以及特别复杂的技术要求。这意味着您可以专门排除对您的预算成本特别高的实施变体。在这次密集分析冲刺结束时,他们全力以赴创建了一份需求列表 - 包括风险声明。
在随后的最后阶段,产品负责人决定(当然要考虑总体预算)所收集的哪些需求仍然可以实现。事实证明,从空列表开始并添加要求在“心理上”是有利的。在另一种情况下,各个点逐渐从整个需求列表中删除,这往往会给决策者带来分离的痛苦。
此外,功能的成对比较可以帮助创建优先级总体列表。此方法的优点是每个步骤仅比较两个需求。然后,完整的列表将作为所有单独比较的结果隐式组成。通过这种方式,可以降低多重比较的复杂性。
分析冲刺的一大优势在于,它创建了一个在此之前经常缺失的概览:整个功能范围变得可见,功能成本得到明确显示,并根据指定的成本预算进行优先级排序。产品所有者被迫根据软件的价值驱动因素确定需求的优先级。最后有一个新功能范围的验收协议,所有负责人都同意。
分析冲刺结束后,恢复之前的敏捷工作方式,但有以下区别:
分析冲刺中未包含的功能将不会被实现。
需求的后续内容规范始终与需求列表中的边界保持一致。
所产生的实施工作不断与分析冲刺的估计需求进行比较。如果出现偏差,将进行原因分析,并在必要时删除进一步的要求。
变更管理的设计方式使得随后可以在如上所述的“交换平台”内交换需求。然而,遵守总体成本预算始终很重要。
稳定受损软件开发项目的步骤
这里概述的干预措施极大地限制了敏捷软件开发带来的灵活性。其余的行动框架是明确定义的——特别是对于产品负责人而言。用于微调或实验的额外迭代被保持在最低限度或被排除。项目范围的变更发生在明确定义的变更请求流程中,并得到管理层批准和预算讨论。
结论
当然,一个完全失败的软件开发项目最终不太可能取得经济上的成功。尽管如此,这里描述的措施可以帮助您避免放弃项目,从而仍然为用户实现技术上合理的结果。此外,这种方法可以在早期阶段识别和遏制误解和问题。
如果您想了解有关 adesso 世界中令人兴奋的主题的更多信息,请查看我们之前发布的博客文章。