也许我对敏捷开发的理解没有达到应有的水平,但我很好奇当最终系统的需求和知识应该是什么时,敏捷开发人员可能会如何使用现成的 (OTS) 软件以我理解的速度变化(通常在每次开发迭代之后)。
我看到了两种我特别感兴趣的情况:
(1) OTS 系统满足初始要求集,除了可能集成到现有系统之外,几乎没有修改。然而,在开发的几次迭代中,这个系统在不重写核心代码的情况下已经不能满足需求。开发人员必须选择要么花更多时间学习此 OTS 软件背后的核心代码,要么将其丢弃并从头开始构建。两者都会对开发时间和项目成本产生巨大影响。
(2) 最初的需求不像任何现有的OTS系统可用,但最终当客户接受产品时,由于需求的增加和减少,它最终与现有的解决方案非常相似。如果开发人员有更多的需求并在前期花费更多的时间来解决这些问题,则可以使用此解决方案而不是再次构建。该项目已交付,但较晚且成本高于必要。
作为一名软件工程师,我的部分职责(正如我被教导的那样)是以尽可能低的成本(除其他外)按时向客户交付高质量的软件。敏捷开发允许高质量的软件,但在某些情况下,可能不明显有更好的替代方案,直到为时已晚并且花费了太多钱。
我的问题是:
- 现成的软件如何适应敏捷开发?
- 敏捷经理和敏捷开发人员如何处理这些情况?
- 敏捷范式对这些案例有什么看法?