您对情况感到沮丧的主要原因可能是客户使用的感知和误导/错误术语之一。客户通常不会向您提供需求清单,而是他们可能想到的每件事的愿望清单可能对他们有用。这些并不是全部要求,因为客户尚未花时间来真正考虑是否真正需要每个功能。
不一定总是有问题
如果您的客户有能力购买所有这些功能,并且愿意花钱购买它,而您实际上并不关心解决客户所遇到的实际问题,那么这可能是一个非常有利可图的项目。它的发生非常罕见,对于大多数开发人员而言,这是一项令人伤心的工作,因为您可以提前感觉到该项目最终不会为客户带来成功(即使它对您作为开发人员而言在财务上也很成功)。这也是高风险的,因为您最终可能会遇到带有很多不确定性的固定成本项目,并且错误地判断大型项目的风险确实是一个问题。
如果有问题怎么办?
让我们假设您不在那种罕见的情况下。在这种情况下,您将要解决愿望清单中的两个主要缺点:
- 客户不太可能对开发这么多需求列表的成本有正确的认识,因此您不太可能获得实际需要的金额的合同。
- 该愿望清单不太可能准确,简洁地描述客户所要解决的实际问题。
以我的经验,您需要解决2来解决1。深入研究实际问题意味着您(开发人员)现在拥有必要的投入,可以创造性地飞跃地以客户自己从未想到的方式解决问题。这些解决方案可能比完整的愿望清单的实现更便宜,更快捷。
您如何解决?
就像Matthew Flynn在回答中所说的那样-首先要让客户优先考虑需求。这并不总是那么容易,但是强迫他们去做。如有必要,请使用短语“如果有人将枪对准您的头,您将保留哪个要求?”。在此过程中,您通常会发现客户对各个需求的含义并不十分清楚。在这种情况下,请执行Peter Rowell的建议,并通过“用户故事”吸引客户。您和客户将开始更好地理解问题和要求,然后您可以重新确定优先级。重复执行这些步骤,直到您感到足够了解解决客户的问题为止。
这如何回答开发解决方案的问题?
有了优先顺序的需求清单后,便可以输入所需的内容,以向客户建议增量开发过程。您不必称其为“敏捷”,但是您可以建议针对每个需求(或不可分割的一组需求)将合同分解成更小的部分,并在客户确认的情况下逐一交付。或者,您可以全力以赴,使用在线和离线提供的许多资源来说服客户,以一种敏捷的开发方式进行合作符合他们的最大利益。无论如何,您都可以以一种形式提供您的合同/项目建议书,该建议书可以按优先顺序清楚地建议这些需求构建块,每个需求块都有自己的成本和结论。把那胡萝卜放在客户面前,