软件开发方法的目标是什么呢?是为了提供优质的软件。似乎这个答案是正确的。
然而这其实是从开发者的角度看问题,而不是从客户的角度看问题——客户需要的是更多的价值,软件只是他们的一种工具,而不是目标。其实软件开发活动根本上说提供的还是一种服务,只有服务才能真正的体现价值,软件只是服务所可能负载的一种(非唯一)载体。于是呼我们衡量一个软件开发活动的成败,标准就只能在于客户的真正的业务需求是否得到满足,而不是你是否按照合同完成了一个软件。事实上很多时候,如果能够通过前期的工作,让客户放弃他们的软件开发机会,本身就是一种最大的成功。而进一步衡量一个软件过程中的质量参数,bug等等根本就不是关键问题,客户业务需求是否得到满足其实也不是最重要的,根本的还是客户所希望的价值是否得到了兑现。
软件开发方法的根本目标在于使用一些模式化的手段和步骤,围绕软件开发活动这个核心活动,来为客户提供一种满足其价值需求。Customer collaboration over contract negotiation。