65.9K
CodeProject 正在变化。 阅读更多。
Home

需求收集技术

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.93/5 (13投票s)

2007年4月17日

5分钟阅读

viewsIcon

93223

downloadIcon

1836

本文档的目的是强调不同类型的需求收集技术。

引言

本文档旨在介绍不同的需求收集技术,这些技术将有助于需求收集团队在从客户那里收集需求时。需求收集团队可以在收集客户需求时使用有效且高效的技术。这些技术不特定于任何项目。参与需求收集阶段的人员可以将本文档作为参考,以成功完成此阶段。

什么是需求?

需求收集是收集用户需求以解决问题或实现目标的过程。它基本上是用户为解决问题或实现目标所需的软件功能。这是项目生命周期中一个非常重要的阶段/里程碑。如果需求收集没有得到妥善/完整地进行,那么无论设计多么好,所有以下的层级阶段都将保持不完整,除非需求完整。因此,我们应该仔细规划并系统地进行需求收集。

说需求存在于客户的头脑中并不完全准确;更准确的说法是,它们存在于客户组织的社会系统中。它们需要被发明,而不是被捕获或引出,而这种发明必须是涉及客户、用户和开发者的合作项目。困难主要在于社会、政治和文化层面,而非技术层面。

Standish Group的一份研究报告称,31%的项目在完成之前就被取消,近53%的项目成本几乎是原估计的两倍。原因如下:

  • 用户在解释他们想要什么时遇到困难。
  • 开发人员在将用户需求转化为可工作的程序和数据库时遇到困难。
  • 商业世界和技术世界都在不断变化。

需求收集的挑战

您在项目中遇到过这些情况吗?

  • 范围和愿景未明确定义
  • 所有需求都至关重要,未定义优先级
  • 已签名的需求不断变更
  • 项目中途新增需求
  • 用户/客户很忙,无法说明需求
  • 已实现但很少或从不使用的功能

如果我们遇到上述问题,这表明我们无法按时成功地向客户交付最终产品。上述问题对项目/产品生命周期造成巨大影响。假设项目范围未明确定义,这意味着我们不确定目标。我们需要清楚地定义并说明特定项目的范围以及范围之外的内容。一旦写在纸上,我们就需要客户进行评审,并就范围定义达成一致,以确保每个人都清楚项目完成时将交付什么。如果已签名的文档频繁变更,这意味着我们没有正确收集需求,或者客户在签署之前没有正确审阅该文档。如果没有人能够控制频繁变更的需求,那么项目计划、估算和其他项目管理方面都会受到影响,我们的里程碑交付成果也会改变。即使我们通过变更管理流程处理需求变更,这也并非最佳实践。我们始终确保客户在签署之前已审阅文档中的每一个细节,并清楚理解应用程序的需求。需求变更的影响会更大,会影响整个项目计划,并消耗额外的时间进行影响分析、估算、创建可追溯性矩阵和资源等。为了按时成功地将项目交付给客户,我们不应遇到上述任何一种情况。

需求易变性 - 原因

需求易变性原因有两种。它们是内部因素和外部因素。

  • 内部因素
    • 未能从所有相关利益相关者那里收集需求
    • 未根据具体情况使用正确的需求捕获技术
    • 未捕获所有相关细节
    • 未能制定清单等措施以确保捕获的需求的完整性
    • 未能制定措施以确保清晰度
  • 外部因素
    • 市场驱动
    • 需要处理和管理

需求类型

需求基本分为三种类型:显性需求、隐性需求和未曾想过的需求。

  • 显性需求

    显性需求是指利益相关者特别清楚的需求。

  • 隐性需求

    隐性需求是指利益相关者对需求非常了解,以至于认为不值得提及的需求。

  • 未曾想过的需求

    未曾想过的需求是指利益相关者没有提出,可能是因为他们认为这不可能,或者因为这是他们刚产生的新的想法。

非功能性需求

非功能性需求主要涉及应用程序的硬件和软件需求。它们还涉及应用程序性能、正常和并发用户数、页面响应时间。它们处理业务风险。

非功能性需求是产品/项目必须具备的属性,例如期望的外观和感觉、可用性、性能、文化方面、可用性、可靠性、可维护性、可扩展性、安全性等。本节讨论了非功能性需求类型,并向您展示了如何使用模板和其他方法来找到产品/项目中所有重要的定性需求。

需求收集技术

请下载Word文档,其中解释了需求收集技术的类型。

历史

  • 2007年4月17日:初始帖子
© . All rights reserved.