客户需求开发与需求管理
软件开发过程中的需求分析与管理

软件开发过程中的需求分析与管理在软件开发过程中,需求分析和管理是非常重要的环节。
因为只有了解了客户的需求,才能为客户提供更好的服务和解决方案。
本文将探讨软件开发过程中的需求分析和管理。
一、需求分析需求分析是软件开发中的第一步。
它是了解客户需求和目标,确定可行性和实现的必要性,以及开发任务的数据和信息,包括建立和分析软件功能。
因此,确定需求是软件开发过程中的关键环节。
以下是需求分析的重要内容:1.了解客户需求客户的需求往往与实际产品有很大的差别,因此,我们需要深入了解客户的真正需求,包括功能性和非功能性需求。
这可以通过组织面向客户的会议、采取变换式的方法、开展客户调查等方式来实现。
2.分析和记录需求需求分析还包括分析和记录需求。
分析需求要求我们从客户提供的各种信息中归纳出可操作的需求,而记录需求则是将这些需求写成文档,使其他项目成员可以按照此文档来开发系统。
3.实现需求实现需求是开发人员进行需求分析之后,开始制定软件需求规格说明书,指导编码、测试、维护等软件生命周期过程。
需求规格说明书的目的是清晰明确的确容易理解,从而为开发人员提供清晰的建议,详细说明所需述的概念,建立业务场景,并提出数据字典、流程图、结构图等工具,以便让开发人员更好地理解实际情况。
二、需求管理需求管理是软件开发过程中的另一个关键环节。
为了保障项目能够按时按量地完成,我们必须对需求进行管理。
需求管理的主要内容包括:1.需求变更需求变更是软件开发过程中常见的问题之一。
因为在开发过程中,随着客户需求的变化以及新的想法的提出,需求变更是难以避免的。
因此,我们需要制定详细的需求变更管理计划,按照一定的规模、时间和审批机制来处理变更,保证改变的次数尽可能少,并且能够及时得到跟踪和管理。
2.需求溢出控制需求溢出是指开发人员在实现某个特性或功能时,意外地执行了额外的额要求。
为了避免出现这种情况,我们需要对需求进行溢出控制。
我们可以把需求分成两类:必须的(核心)和可选的(次要的)。
研发管理中的客户参与与需求管理

研发管理中的客户参与与需求管理引言在现代企业中,客户参与和需求管理是研发管理过程中至关重要的环节。
通过客户参与,可以更好地了解客户需求,并及时做出调整和改进,以提供更优质的产品和服务。
本文将从客户参与和需求管理两个方面展开讨论,揭示其在研发管理中的重要性和应用方法。
客户参与在研发管理中,客户参与是指将客户纳入研发过程中,通过与客户的密切合作和沟通,获取客户的反馈和需求。
客户参与可以分为以下几种形式:1.用户测试:邀请客户作为测试用户,测试产品的性能、功能和易用性,并及时收集他们的反馈意见和建议。
2.用户访谈:通过定期访谈客户,了解他们的需求和期望,发现问题并及时解决。
3.用户调查:通过设计问卷调查,广泛征求客户的意见和建议,以获取更全面的需求需求。
客户参与的优势在于可以从客户的角度出发,准确掌握他们的需求,避免内部假设和猜测,提高产品的用户满意度和市场竞争力。
需求管理需求管理是指对产品或服务需求的整体管理过程。
它包括需求的收集、分析、修改和跟踪等各个环节。
1.需求收集:通过与客户的沟通和合作,收集客户需求,可以采用面对面会议、电话、邮件等方式进行。
2.需求分析:对收集到的需求进行深入剖析,分析其可行性和可实施性,确认需求的优先级和重要性。
3.需求修改:根据实际情况,对需求进行修订和调整,确保需求能够与实际产品研发过程相匹配。
4.需求跟踪:对需求进行跟踪和管理,确保其在整个研发过程中能够得到充分的关注和执行。
需求管理的目标是确保产品开发的方向和目标与客户需求保持一致,提高产品的市场适应性和用户满意度。
客户参与与需求管理的关系客户参与和需求管理在研发管理中相辅相成,相互促进。
客户参与可以为需求管理提供更准确、全面的信息,而需求管理可以帮助更好地组织和管理客户参与的过程。
1.客户参与对需求管理的影响:通过客户参与,研发团队可以更好地了解客户需求,并在开发过程中及时进行调整和改进。
客户参与可以减少需求分析的盲目性,提高产品的开发质量。
CMM中的需求管理与需求开发

需求管理(Requirements Management )是属于CMM2中的过程域,简称为REQM ,需求开发(Requirements Development )是CMM3中的过程域,简称RD 。
这两个过程域是CMMI 体系中关于需求的全部内容,下面分别对这两部分进行介绍。
本文对CMM 的一些基础知识、基础术语不再介绍。
需求管理与需求开发的分界线:市场营销用户需求管理层需求开发需求管理市场营销管理层项目环境项目变更 大家可以这样理解,需求管理是指对需求变更的管理、对需求的跟踪,而获取需求、定义需求则属于需求开发部分。
需求管理在CMMI 中,需求管理的目标定义为:a. 把软件需求建立一个基线供软件工程和管理使用。
b. 软件计划、活动和工作产品同软件需求保持一致。
更高的目标:软件需求的复用需求管理的原则和方法a. 必须与需求工程的其他活动紧密整合b. 需求必须是文档化的、正确的、最新的、可管理的、可理解的c. 只要需求变化了,需求变更的影响就必须被评估d. 需求必须分优先级e. 需求一定要分类管理需求管理的主要工作:特定目标和特定实践特定目标●管理需求管理需求并识别需求与项目计划和工作产品之间的差异。
●SP 1.1 取得需求理解●SP 1.2 取得需求承诺●SP 1.3 管理需求变更●SP 1.4 维护需求的双向追溯性●SP 1.5 识别项目工作与需求间的差异REQM特定目标的关系SP 1.1 取得需求理解SP 1.1 和需求提出者一同来了解需求。
l 识别出谁是需求的提供者l 识别出需求的接受标准:a. Clearly and properly stated得到清晰和恰当的定义b. Complete完整的c. Consistent with each other相互一致的d. Uniquely identified得到唯一标识的e. Appropriate to implement适宜实现f. Verifiable (testable)可以验证(测试)g. Traceable可追溯l 分析需求,确保符合已建立的准则。
需求管理内容

需求管理内容需求管理是软件开发过程中非常重要的一环,它涉及到软件开发的各个方面,包括需求收集、分析、规划、跟踪等多个方面。
下面将从需求管理的定义、目的、流程等方面进行详细介绍。
一、需求管理的定义需求管理是指对软件开发过程中所涉及到的客户需求进行有效地收集、分析、规划和跟踪,以确保项目能够按照客户期望的质量和时间要求完成。
二、需求管理的目的1. 确定软件开发项目的范围:通过对客户需求进行充分了解和分析,确定软件开发项目所需要实现的功能和服务,明确项目范围。
2. 提高客户满意度:通过对客户需求进行有效地管理,能够更好地满足客户期望,提高客户满意度。
3. 提高软件开发效率:通过对需求进行有效地规划和跟踪,能够更好地控制软件开发进度和质量,提高软件开发效率。
4. 降低风险:通过对需求进行全面分析和评估,能够更好地识别潜在风险,并采取相应措施进行规避,降低软件开发风险。
三、需求管理的流程1. 需求收集:需求收集是指通过与客户沟通、分析客户需求文档等方式,获取客户需求信息的过程。
在这个阶段,需要确保对客户需求信息的完整性和准确性。
2. 需求分析:需求分析是指对收集到的客户需求信息进行分析和评估,以确定实现这些需求所需要的功能和服务,并制定相应计划。
在这个阶段,需要确保对需求信息的清晰理解和准确评估。
3. 需求规划:需求规划是指确定软件开发项目所需要实现的功能和服务,并制定相应计划。
在这个阶段,需要考虑项目范围、时间、成本等方面因素,并制定相应计划。
4. 需求跟踪:需求跟踪是指对软件开发过程中所涉及到的客户需求进行有效地跟踪和管理,以确保项目能够按照客户期望的质量和时间要求完成。
在这个阶段,需要建立有效的跟踪机制,并及时更新相关信息。
四、需求管理中常用工具1. 用例图:用例图是一种描述软件系统功能的图形化工具,用于描述系统的各种用例和参与者之间的关系。
2. 需求文档:需求文档是对客户需求进行详细描述的文档,包括需求说明书、需求规格说明书等。
客户需求管理制度

客户需求管理制度随着市场竞争的日益激烈,企业需要更加关注客户需求的管理,以提供满足客户期望的产品和服务。
为了有效地处理客户需求,建立一个完善的客户需求管理制度至关重要。
本文将从以下几个方面介绍客户需求管理制度的要点和实施方法。
一、制度目标和范围客户需求管理制度的目标是维护客户满意度,提高客户忠诚度,促进业务增长。
范围包括但不限于以下几个方面:需求收集、需求分析、需求跟踪、需求评估和需求反馈等环节。
二、需求收集需求收集是客户需求管理的第一步。
企业可以通过多种途径收集客户需求,例如市场调研、客户反馈、售后服务等。
在收集客户需求时,需要确保信息的准确性和完整性。
同时,建议建立一个统一的需求收集渠道,例如客户服务热线、邮件反馈、在线调查等,以便客户能够方便地提供反馈意见。
三、需求分析需求分析是将收集到的客户需求加以整理和分析,以便确定其重要性和优先级。
在进行需求分析时,可以采用一些工具和技术,例如需求矩阵、需求分级等。
根据分析结果,将客户需求进行分类,以便后续的处理和跟踪。
四、需求跟踪需求跟踪是指在产品开发或服务实施过程中,持续关注和追踪客户需求的进展情况。
建议使用一个专门的需求跟踪系统,以便记录和追踪每一个客户需求的状态和处理进度。
在需求跟踪中,还可以与客户保持沟通,并及时回应客户的反馈和问题。
五、需求评估需求评估是对客户需求的价值进行评估,以确定是否满足客户期望。
在进行需求评估时,需要考虑多个因素,例如技术可行性、成本效益、市场竞争等。
同时,需求评估还可以帮助企业优化产品规划和服务策略,以更好地满足客户需求。
六、需求反馈需求反馈是指向客户及时传达产品改进和服务调整的信息。
企业可以通过多种方式向客户提供需求反馈,例如客户满意度调查、产品更新通知、系统改进说明等。
在提供需求反馈时,需要确保信息的准确性和清晰度,以便客户能够理解和接受。
七、制度执行和改进客户需求管理制度的执行需要全体员工的参与和配合。
相关部门和岗位应明确职责和权限,确保制度的有效运行。
需求管理的5大步骤

需求管理的5大步骤需求管理是指在项目或产品开发过程中,对需求进行系统化、全面化的管理和控制。
它是项目管理中的重要环节,能够确保项目按照用户需求进行开发,提高项目的成功率和用户满意度。
需求管理包括了五个关键步骤,分别是需求识别、需求分析、需求规划、需求跟踪和需求控制。
1. 需求识别需求识别是需求管理的第一步,也是最关键的一步。
在这一阶段,项目团队需要与用户沟通,了解用户的需求和期望。
可以通过面对面的访谈、问卷调查等方式,收集用户的需求信息。
在收集需求信息的过程中,要注意收集全面、准确的需求,避免遗漏关键信息。
2. 需求分析需求分析是对需求进行详细的分析和理解。
在这一阶段,项目团队需要将收集到的需求进行整理和分类,并明确需求的优先级和关联性。
同时,还需要对需求进行评估和验证,确保需求的可行性和可实现性。
需求分析的结果将作为后续需求规划和设计的基础。
3. 需求规划需求规划是制定需求开发计划的过程。
在这一阶段,项目团队需要根据需求的优先级和资源的可用性,制定需求开发的时间表和工作计划。
同时,还需要确定需求的详细描述和功能要求,为后续的开发工作提供清晰的指导和依据。
4. 需求跟踪需求跟踪是对需求开发过程进行监控和控制的过程。
在这一阶段,项目团队需要跟踪需求的开发进度,及时发现和解决需求开发中的问题和风险。
同时,还需要与用户进行沟通和反馈,确保需求的变更和调整能够及时反映到开发过程中。
5. 需求控制需求控制是对需求变更进行管理和控制的过程。
在这一阶段,项目团队需要评估和分析需求变更的影响,确保变更的合理性和可行性。
同时,还需要与用户进行协商和沟通,明确变更的范围和时间,避免对项目进度和质量造成不利影响。
需求管理包括了需求识别、需求分析、需求规划、需求跟踪和需求控制五个关键步骤。
通过这五个步骤,可以确保项目团队对用户需求进行全面、准确的管理和控制,提高项目的成功率和用户满意度。
在实际项目中,需求管理是一个持续的过程,需要与用户保持良好的沟通和合作,不断优化和改进需求管理的方法和工具,以适应不断变化的需求和市场环境。
软件开发过程中的需求管理

软件开发过程中的需求管理在软件开发过程中,需求管理是非常重要的一环。
通过合理的需求管理,可以提高软件开发的效率、降低风险,并最终实现客户期望的软件产品。
本文将着重探讨软件开发过程中的需求管理方面,包括需求收集、需求分析、需求验证和变更管理等。
一、需求收集需求收集是软件开发的第一步。
在这一阶段,软件开发团队需要与客户进行充分的沟通,了解客户的需求和期望。
通过面对面的会议、访谈、问卷调查等方式,收集客户的需求。
同时,也可以借助市场调研和竞争对手分析等手段,补充阳光不足。
二、需求分析需求分析是将收集到的需求进行整理、分类和理解的过程。
开发团队需要仔细研读收集到的需求文档,确保全面准确地理解客户的需求。
在需求分析的过程中,团队成员可以运用工具和方法,如用例图、状态图、数据流图等,对需求进行清晰的表达和梳理。
同时,需求分析还可以帮助发现潜在的需求冲突和矛盾,及时进行调整和沟通。
三、需求验证需求验证是确保开发团队理解准确的需求是关键步骤。
在这一阶段,需要制定一套明确的验证方案,确保软件的开发符合客户的需求和预期。
常用的验证方法包括原型验证、测试验证和用户验收验证等。
通过验证过程,可以发现并修正之前可能存在的误解和偏差,确保需求的准确性和可行性。
四、需求变更管理需求在软件开发过程中是可以变更的,因此,需求变更管理就显得至关重要。
在软件开发过程中,几乎所有的变更都会带来影响,包括时间、成本和资源等方面。
因此,需要建立一套规范的变更管理流程,明确变更的原因、影响和后果。
并且,变更管理流程需要与需求验证和项目管理相结合,确保需求的变更能够得到妥善的处理和控制。
五、需求文档管理需求文档是需求管理的重要组成部分。
在软件开发过程中,需求文档记录了需求的收集、分析、验证和变更等过程,也是需求沟通和交流的重要工具。
因此,需求文档需要规范、清晰地记录需求的内容和约束,并且需要根据实际情况进行定期更新。
六、需求管理工具和技术随着软件开发的不断发展,需求管理工具和技术也在不断更新。
软件开发项目中的需求分析与管理

软件开发项目中的需求分析与管理在软件开发项目中,需求分析与管理是确保项目成功的关键环节之一。
通过准确地识别和管理项目需求,能够有效地指导开发过程,并最终实现用户期望的功能。
本文将着重讨论软件开发项目中的需求分析与管理。
一、需求分析需求分析是指在软件开发项目初期,通过对用户需求进行认真研究和分析,明确项目的功能和性能要求。
需求分析的效果直接影响项目的后续开发和交付过程,因此需要详细而准确地进行。
1.用户需求的收集用户需求的收集是需求分析的第一步。
开发团队通过与用户、客户沟通,了解他们对软件产品的期望和要求。
这可以通过会议、访谈、问卷调查等方式进行。
在需求收集过程中,开发团队需要尽可能确保获取到全面和详细的需求信息。
2.需求的分类与整理收集到的需求信息需要进行分类与整理。
将需求按照功能、性能、安全性等方面进行划分,构建需求的分类体系。
这样可以更好地理解和组织需求,为需求的分析和管理提供支持。
3.需求的分析和详细化在需求分析阶段,开发团队需要对收集到的需求进行详细的分析和梳理。
通过与用户、客户的进一步沟通,澄清需求的不明确之处,并尽可能将需求细化为明确、可执行的指标。
需求的详细化有助于后续开发过程的顺利进行。
二、需求管理需求管理是指在软件开发项目中,对需求进行有效的组织、监控和调整的过程。
通过需求管理,可以提高项目的可控性和开发效率,避免开发过程中的需求变更和偏差。
1.需求的优先级规划在需求管理过程中,开发团队需要根据用户需求的重要性和紧迫性,制定需求的优先级规划。
将需求分为高、中、低优先级,有助于指导开发工作的安排和调整。
高优先级的需求应该优先考虑,以确保核心功能的实现。
2.需求的变更控制在开发过程中,用户对需求的变更是常见的情况。
因此,需求的变更控制也是需求管理的重要内容之一。
开发团队需要建立变更控制机制,对需求变更进行评估和审批,避免无效的变更和对开发进度的不利影响。
3.需求的跟踪和验证需求的跟踪和验证是确保项目进展顺利的关键环节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. 需求开发的主要困难与对策
知识技能问题 应用域的知识是无边无际的,任何人都不可能是“万事通”。俗话说“
隔行如隔山”,需求分析员可能是某一领域的专家,但当他接手陌生 的业务时,他可能是个“无知”者。一个企业要谋求发展,不能总在 做老的业务。人一生中会有许多充满挫折的“第一次”,不可以逃避 。 当需求分析员缺乏应用域知识时,他该怎么办? 首先他要有勇气做事,否则连实践的机会都没有。 其次他应当赶紧补习应用域知识,不论是通过自学还是培训的方式,否 则他很难与用户交流。如果可能的话,开发方最好请既懂软件又懂应 用域知识的行家来帮忙。 态度问题 相当多的开发人员习惯于被动地对待需求开发。每当遇到麻烦、挫折时 ,他们会发牢骚,找出一堆用户的毛病。很多开发人员错误地以为: 需求是用户的事情,不是我们的事情。我们为用户开发软件,难道用户 不该告诉我们应当开发什么吗?如果用户说不清楚需求,或者经常变 更需求,这类问题是用户产生的,应当由他们自己负责。
“主动型”是指开发者积极地开展需求工程中的各项活动。他们把获取 准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管 理过程中的困难,而不是找借口推卸责任。俗话说“良好的开端是成 功的一半”,“主动型”需求工程是开发成功产品的必备条件。
“领先型”是需求工程的最高境界。开发者发掘了连用户自己都没有意 识到的需求,导致用户跟着新产品跑而不是新产品围着用户转,这叫 引导消费。需求工程做到这个份上,才能使产品立于不败之地,长盛 不衰。
. 需求开发的主要困难与对策
用户在需求工程中的“权利” . 有权要求开发方派遣资质合格的需求分析员和相关人员。 . 有权要求开发方采用用户熟悉的语言来描述需求,即开发方必须提供用户看得懂得 需求文档。 . 有权审查需求文档,并对有争议的需求作出决策。如果认为需求文档不能准确地反 映用户真实的意愿,可以拒绝在需求文档上签字。 . 如果用户想要变更需求,有权要求开发方对该变更将产生的影响作出真实可信的评 估,以便用户决定是否变更需求。 用户在需求工程中的“义务” . 以积极友善的态度与开发方人员交流、协作,尽可能地为开发方人员提供工作和生 活上的便利。 . 乐意接受需求分析员的采访,在不泄漏机密的前提下尽可能地回答需求分析员的问 题。 . 在不泄漏机密的前提下,尽可能地向需求分析员提供与需求相关的材料。 . 与需求分析员共同评审需求文档,确保需求文档准确地反映用户真实的意愿。
Page 3
. 什么是需求
需求开发失败的案例 上海贝尔某事业部求问题有时如同爱情问题,真是“当局者迷,旁观者清”啊。
Page 4
. 了解客户、最终用户、间接用户
基本概念 “用户”()是一种泛称,它可细分为“客户”()、“最终用户”( )和“
Page 10
. 需求开发的主要困难与对策
合作关系 如果需求分析员不能与用户建立良好的合作关系,那么他们在需求开发
过程中会很疲惫。 倘若用户不能很好地配合需求分析员,那并不表示他是个坏蛋。因为用
户有他自己的想法: 我回答了你们的问题,讲了该讲的。我们付钱给你们,难道还要我伺候
你们不成?我还要干自己的事情,别打扰我了。你们自己想办法把活 干好吧 ……。 对于一些竞标项目,在合同未签订之前的需求开发工作尤为困难。用户 未必会买你的产品,他不会投入很多精力来协助你搞需求开发。 需求分析员不是销售人员,他们不可能象销售人员那样通过某些手段笼 络住用户就能成功。出色的需求分析员不仅要有过硬的专业知识,还 要具备较强的交流、沟通能力。 开发方与用户的合作关系对需求开发而言是至关重要的。对于重大的、 复杂的项目,我们不能完全期望双方能够自发地建立起良好地合作关 系,这样风险太大。 开发方和用户方在开展需求开发之前,双方协商并撰写“用户在需求工 程中的权利与义务”,即以协议的方式确定合作关系。“好话”和Pag“e 11
Page 5
. 了解客户、最终用户、间接用户
即使最终用户不是上帝,也算是“上帝”的“亲戚”,同样怠慢不得。 如果项目规模比较大,那么开发方与最终用户的来往就比较多。如从最终用户那
里获取详细的需求,请最终用户试验软件,对最终用户进行培训等等。 公司新员工上产品培训课,有位小领导匆匆赶来作指示:“隔壁班正在给电信局
: 客户永远是本公司的座上客。客户并不依赖我们,而我们却依赖客户。客户不是
我们工作的障碍,而是我们工作的目标。我们并不因为服务于他而对他有恩 ,他却因为给予我们服务于他的机会而有恩于我们。客户不是我们要与之争 辩和斗智的人。从未有人曾在与客户的争辩中获胜。客户是把他的欲望带给 我们的人,因此我们的工作就是满足这些欲望,从而使客户和我们共同获益 。
Page 12
. 需求开发的主要困难与对策
用户说不清楚需求 用户说不清楚需求是普遍现象,这是让开发人员头痛的大问题。 有些用户真的不知道需求是什么,或者对需求只有朦胧的感觉,他当然
说不清楚需求。 例如开发方的营销人员水平比较高,他能够在用户不清楚自己要什么的
情况下引导用户“消费”。 例如前些年全国各地的很多政府机构大搞网络建设。这些机构的领导和
间接用户”(或称为关系人)。 掏钱买软件的用户称为客户,而真正操作软件的用户叫最终用户。客户与最终用
户可能是同一个人也可能不是同一个人。 客户是掏钱买软件的人,所以他是“上帝” 某饭店经理在解释“先有鸡还是先有蛋”这个哲学问题时,精辟地阐述了客户的
地位: 如果顾客先点鸡,那么就先有鸡;如果顾客先点蛋,那么就先有蛋。 “现代营销学之父”菲利普•科特勒所著的《市场营销导论》是这样描述客户的
客户需求开发与需求管理
目录
. 什么是需求 . 了解客户、最终用户、间接用户 . 需求工程基本概念 . 需求开发的主要困难与对策 . 如何开展需求调查 . 如何进行需求分析 . 什么是好的需求规格说明书 . 如何定义产品需求 . 需求管理:确认、跟踪、变更控制
Page 2
. 什么是需求
需求的基本概念 宽泛地讲,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成 完整的文档,该文档详细地说明了产品“必须或应当”做什么。 所以如果只有一些零碎的对话、资料或邮件,你就以为自己已经掌握了需求,那 是自欺欺人。 需求的重要性 在他年经典文章“ ”中阐述了需求的重要性: 开发软件系统最困难的部分就是准确说明开发什么。最困难的概念性工作是编写 出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。此工作一 旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。 需求是产品的根源,需求工作的优劣对产品影响最大。就像一条河流,如果源头 被污染了,那么整条河流也就被污染了。 国内软件业的痼疾:人们并不清楚究竟该做什么,但却一直忙碌不停地开发。
办公人员大多数不清楚网络干什么用,就让开发人员替他们设想需求 吧,反正是花公家的钱。 有些用户虽然心里明白想要什么,但却说不清楚需求。 比如说买鞋子。我们非常了解自已的脚,但很难用语言说清楚脚的大小 和形状。通常拿鞋子去试,试穿时感觉到舒服才会买鞋。 需求分析员绝不能以用户说不清楚需求为借口而草率地对待需求开发工 作,否则会连累整个开发团队的。 无论是什么原因导致用户说不清楚需求,需求分析员必须设法搞清楚用 户真正的需求,这是需求分析员的职责,也是职业的挑战。
Page 6
. 需求工程基本概念
什么是需求工程 把所有与需求直接相关的活动通称为需求工程。 需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。 需求工程的结构图
Page 7
. 需求工程基本概念
需求开发过程域 需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。 需求调查的目的是通过各种途径获取用户的需求信息(原始材料),产
Page 13
. 需求开发的主要困难与对策
双方误解需求 人们在交流的时候,经常会发生“问非所求,答非所问”的事情。 有时用户会把开发人员的建议或答复给想歪了: 有一个软件开发人员滔滔不绝地向用户讲解在“信息高速公路上做广告
”的种种好处,用户听得津津有味。最后,心动的用户对软件开发人 员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸 和放在哪条高速公路上,我立即派人去做。” 而用户表达的需求,不同的开发人员可能有不同的理解。如果需求分析 员误解了需求,那会导致后续的不少开发人员将错就错、白干活。就 像作文写跑题了,写得再好也白搭。这类错误连高智商的外星人都不 能避免: 有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰 地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里 双眼能射出强光。……有趣的是,车里住着一种叫作‘人’的寄生虫 ,这些寄生虫完全控制了车。” 不论是复杂的项目还是简单的项目,需求分析员和用户都有可能误解需 求。所以需求确认工作(属于需求管理)必不可少。
Page 15
. 需求开发的主要困难与对策
用户经常变更需求 需求变更通常会对项目的进度、人力资源、经费产生很大的影响,这是
Page 8
需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处
. 需求工程基本概念
需求工程的一些感悟 不论是合同项目还是自主研发的产品,都必须开展需求开发和需求管理
活动。
开发者对待需求工程的态度可分“被动型”、“主动型”和“领先型” 三种,只有后两种才有可能开发出成功的产品。
“被动型”是指开发者被动地对待需求工程中的各项活动,能少干则少 干,能偷懒则偷懒。他们认为需求是用户的事情而不是自己的事情。 开发过程中经常发生需求变更,导致产品迷失方向,不是半途而废就 是陷入半死不活的状态。
的员工们进行培训,他们都是上帝派来的,大家要注意形象。由于休息室空 间有限,请大家自觉让位。午休时他们可以躺着睡,我们只能坐在位置上打 个盹儿…….。” 重视“间接用户”,千万别“大意失荆州” 间接用户既不掏钱买该软件产品,也不使用该软件,但是它可能对软件产品有很 大的影响。 例如,财务软件开发商在把“财务软件”卖给客户之前,这个“财务软件”必须 得到国家财政部的批准。否则即使该软件的功能是完美的,但却被政府认为 是非法的。所以国家财政部就是所有财务软件的间接用户,它不仅不付钱给 财务软件开发商,反而要收取鉴定费、手续费等。 同理,市面上流通的信息安全软件、杀病毒软件必须得到国家公安部的批准,否 则软件开发商被逮住后戴上“非法经营”的帽子就惨了。