敏捷软件开发的障碍与应对策略
1. 合同难题
传统合同往往基于瀑布式软件开发方法,软件买方会明确规定所需功能,若未全部提供则合同未达成,固定价格项目更是加剧了这种情况。供应商需提前确定提供所需功能的费用,且这一过程可能不涉及实际开发者。
而敏捷方法采用固定时长迭代和可变功能,这与传统合同模式存在冲突。例如,在一个为期超两年的项目中,最初需为软件首版提供固定成本报价,证明能按时、按预算交付后,才与客户采用更敏捷的方法,固定迭代时间并根据业务需求调整迭代需求,这一切的前提是客户对供应商的信任。
1.1 建立信任与教育客户
要采用敏捷方法,需与客户建立信任,这是双向的,供应商要信任客户并让客户信任自己。在投标过程中,应将敏捷方法作为一部分,并进行投标前教育,确保客户能正确接受。有时可先采用传统方法进行初始迭代。
教育潜在客户了解敏捷开发方法是客户关系的重要方面。很多软件买家对软件开发行业评价不高,有过不良经历,因此可能对敏捷方法的潜在好处持开放态度。
1.2 验收测试难题
软件买家常希望在项目开始时指定验收测试集,以确保交付时无争议,开发公司也可能出于同样目的这样做。但这违背了敏捷理念,因为初始时无法确定最终系统的具体功能,功能会随需求、优先级和内容的变化而改变。
解决方案是每个迭代的每个功能都明确代表验收的测试集,可通过正式的验收测试计划文档或基于对功能的理解非正式确定。这需要客户在每个迭代中参与,虽耗时但有助于项目,能让客户直接参与迭代,为项目提供信息,还能确保软件按预期运行,因为开发者与现场客户的互动有助于定义单元测试和验收测试。
超级会员免费看
订阅专栏 解锁全文
3885

被折叠的 条评论
为什么被折叠?



