客户的新思想
使用传统的软件开发方法的客户期望在开发工作中有最小的投资。他们想预先指出所有的需求,确定一个固定的价格,然后等待最终系统的交付。经常的,会产生在期望值和实际交付系统之间的非常大的差距 — 解决方案并没有满足客户真实的业务需要。
通过转向迭代开发,改变客户和开发 团队之间的交互模式,客户和开发团队都可以避免大量的痛苦。在一个迭代开发的项目中,客户应该是构建应用团队中的不可缺少的一部分。客户与开发团队的其他成员协同工作以确保最终交付的 应用系统满足被需要的业务价值。客户的组织应该尽可能的保持与开发团队之间交互的兴趣,以确保开发团队可以理解他们应该构建什么和项目中具有什么样的 风险和问题。如果客户没有帮助指导开发的工作,开发团队可能会开发出错误的应用 — 每个人都会蒙受损失。
在迭代开发的模式中,客户不能仅仅指出他们所预期的然后就等待系统交付。不论他们怎么清晰的定义,所有的需求都从属于众多的说明和可能的实现。对开发团队来说,与其生成更加详细的需求,还不如投入时间更加频繁和有效的与项目的关键投资人(包括客户)进行 沟通。那么,当客户查看演进的应用时,他们将获得应用应该做什么的更好的理解,并可以提供有建设性的建议以改进系统。同时,如果在项目中业务要求发生快速的变化,需求也需要随之发生改变。