MoSCoW 需求收集和估计
了解客户需要什么是软件开发的一个组成部分。客户通常会通过告诉您他们需要系统做什么来帮助您。您通常会拥有一个系统应该做的事情的大列表。您无需向客户解释术语“功能需求”和“非功能需求”之间的区别,而是可以通过使用MoSCoW来节省时间。这是为的缩写中号乌斯,小号HOULD,ÇOULD,w^也可以写成MSCW或许多不同的方式。我更喜欢添加o,因为它可以更轻松地将想法传达给客户。MoSCoW背后的想法是通过客户希望系统执行的所有操作,并将四个术语之一应用于该功能。
必须-这些是系统必须拥有的东西,否则它将无用或无法使用。在您努力确保满足这些要求时,必须要求将成为您计划的核心基础。例如,如果您不能发布博客,那么博客应用程序就没有多大用处。
应该-这是次要要求,虽然对项目不重要,但应包含在整体构建中。可能可以忽略应该要求,但前提是有另一种方式来做预期的事情。
可能-可能要求是对系统功能没有影响的事物,但可以例如节省以后运行程序的时间。这些通常是诸如导出脚本或增加系统可用性的漂亮小部件之类的东西。
不会-不是真的不会,这些要求应该被视为系统这次不会有的东西。这些是对项目成功最不重要的功能,但可以合并到未来的版本中。这可能类似于拥有移动版本,或与电话系统集成的功能。
您应该记住,所有需求都很重要,但是对它们进行优先排序会使计划项目变得容易一些,并且还可以让您的客户知道系统将要做什么。项目计划最初应该尝试交付必须的和应该的,而如果交付时间表看起来受到威胁,可以将可能的转移到不同的版本。通常很容易通过客户编写的方式来判断每个需求是什么类型。在写出他们需要系统做什么时,他们通常会使用诸如必须、应该、可以、可取、基本和不错的功能等词。然而,应该注意的是,虽然某些功能对客户来说似乎是个好主意,但实际创建该产品所涉及的成本可能令人望而却步。
此外,告诉客户系统不会做什么与告诉他们它将做什么一样重要。某些功能(特别是在基于网站的应用程序中)往往是假设的,通过准确说明功能不包含的内容,您可以防止功能创建。我还看到不会在MoSCoW中编写,这意味着如果时间尺度允许,系统会做一些事情。
举个例子,让我们对一个虚构的系统随机取一些系统要求,并在MoSCoW系统中给它们一个优先级。
用户可以登录系统。-必须
如果用户忘记了新密码,他们应该能够通过电子邮件请求新密码。-应该
用户可以创建任务。-必须
用户可以向系统发送一封电子邮件,然后该系统将被记录到正确的任务中。-可以
用户将能够通过拖放来更改任务列表的顺序。-不会
当用户点击系统上的号码时,他们的电话应该响铃。-不会
MoSCoW更重要的是只是一个要求列表。MoSCoW的基本支柱是不允许项目具有超出您创建能力的功能。客户通常会有一定的预算,而您也有一定的可用时间。通过使用MoSCoW,您可以将功能成本保持在该金额内。
用一个简洁的比喻,你可以把MoSCoW的组件想象成不同重量的石头(必须是最重的),而客户或你自己的容量就是一个桶。这样很容易看出,随着添加更多的石头,Must会沉到底部,而Can会浮到顶部。将会出现一个点,您将添加必须或应该,并且一个或多个可能会从存储桶的顶部溢出。