在软件工程领域,需求获取是项目成功的关键起点,它旨在准确收集和理解用户对软件系统的期望与要求。以下将详细介绍用户访谈、问卷调查、采样技术、情节串联板、联合需求计划(JRP)这五种常见的需求获取手段。

一、用户访谈

概念

用户访谈是需求获取人员与用户直接进行面对面交流,通过提问、倾听和互动,深入了解用户的业务流程、工作需求、期望以及痛点等信息的一种需求获取方法。它能建立起需求获取者与用户之间的直接沟通桥梁,获取丰富且详细的一手资料。

适用场景

  • 新系统开发:当开发全新的软件系统,对业务领域不熟悉时,通过与不同层次、不同岗位的用户进行访谈,全面了解业务全貌。
  • 复杂业务流程梳理:对于业务流程复杂、涉及多个环节和角色的项目,访谈能深入挖掘各环节的细节和相互关系。
  • 个性化需求挖掘:如果软件需要满足特定用户群体或个体的特殊需求,访谈可针对性地获取这些个性化信息。

实施步骤

  1. 准备阶段:明确访谈目标,确定访谈对象(如业务专家、一线操作人员、管理人员等),设计详细的访谈提纲,涵盖业务流程、工作目标、现有问题、期望功能等方面的问题。同时,预约访谈时间和地点,确保访谈环境安静、不受干扰。
  2. 进行阶段:开场时,简要介绍访谈目的和流程,营造轻松友好的氛围。按照提纲有序提问,鼓励用户充分表达观点,注意倾听用户的回答,不轻易打断,对于模糊或不清楚的回答,及时进行追问和确认。可以使用录音或记录关键信息的方式,确保信息准确完整。
  3. 总结阶段:访谈结束前,向用户总结本次访谈获取的关键信息,确认是否准确。感谢用户的参与,并告知用户后续可能还会有进一步的沟通。

例子

假设要开发一款医院的电子病历管理系统。需求获取人员与医生、护士、病案管理人员进行访谈。与医生访谈时,询问日常病历书写流程、所需记录的信息项、对病历检索和调阅的需求等;与护士访谈,了解护理记录的内容和频率、与医生病历信息的交互需求;与病案管理人员访谈,了解病历归档、存储和统计的工作要求。通过这些访谈,全面了解电子病历管理系统的需求。

遵循原则

  • 中立原则:访谈者保持中立态度,不引导用户回答特定答案,确保获取的信息真实客观。
  • 积极倾听原则:专注倾听用户表达,理解其背后的真实意图,给予用户充分的表达机会。
  • 清晰原则:提问清晰明确,避免使用专业术语或模糊不清的表述,确保用户能够准确理解问题。

优缺点

  • 优点:能获取深入、详细且个性化的信息;可以根据用户回答灵活调整问题,进一步挖掘需求;通过面对面交流,建立良好的沟通关系,增加用户对项目的参与感。
  • 缺点:耗费时间和人力成本较高,尤其是涉及多个用户时;访谈结果可能受访谈者个人偏见、表达能力以及用户主观因素影响,导致信息不准确或不完整;访谈信息整理和分析工作量较大。

二、问卷调查

概念

问卷调查是通过设计一系列书面问题,向大量潜在用户或相关人员发放问卷,收集他们对软件系统的看法、需求、期望等信息的一种需求获取方式。它能在相对短的时间内,广泛收集不同群体的反馈。

适用场景

  • 大范围用户调研:当需要了解众多用户的普遍需求、意见或行为模式时,如面向大众的互联网产品。
  • 统计性数据收集:对于一些需要进行量化分析的数据,如用户使用频率、满意度评分等,问卷调查能高效收集大量样本数据。
  • 初步需求筛选:在项目初期,对众多可能的需求进行初步筛选和优先级排序,确定重点关注方向。

实施步骤

  1. 问卷设计:明确问卷目的,根据目标受众和需求设计问题。问题应简洁明了、易于回答,包括选择题、简答题、量表题等多种题型。确保问卷逻辑清晰,先易后难,避免诱导性问题。设计完成后,进行小范围预测试,检查问卷的合理性和有效性,根据反馈进行修改。
  2. 问卷发放:选择合适的发放渠道,如在线问卷平台(问卷星等)、电子邮件、现场发放等。确定发放对象范围,确保涵盖相关的各类用户群体。设定问卷回收期限,鼓励用户及时填写。
  3. 数据整理与分析:回收问卷后,对数据进行整理,剔除无效问卷(如回答不完整、明显随意作答等)。运用统计学方法对选择题、量表题等量化数据进行分析,对简答题进行分类归纳,提取关键信息。根据分析结果总结用户需求和反馈。

例子

要开发一款手机运动健身APP,通过在线问卷向运动爱好者、健身教练等群体发放问卷。问卷中设置问题如“您每周运动的频率是?”“您常用的运动健身方式有哪些?”“您希望APP具备哪些功能(如运动记录、训练计划制定、饮食建议等)”等。通过对大量问卷数据的分析,了解用户对运动健身APP的需求偏好。

遵循原则

  • 目标明确原则:每个问题都应围绕问卷目的设计,避免无关问题。
  • 简洁性原则:问题表述简洁易懂,避免复杂句式和专业术语,尽量减少用户填写时间。
  • 可靠性原则:确保问题设计合理,能准确获取所需信息,避免模糊或歧义性问题影响数据可靠性。

优缺点

  • 优点:可快速收集大量样本数据,覆盖范围广,成本相对较低;数据易于统计分析,能发现普遍存在的需求和问题;问卷可标准化设计,保证每个用户回答的一致性,便于比较分析。
  • 缺点:问题相对固定,难以深入挖掘用户深层次的需求和潜在想法;用户可能因对问题理解偏差、缺乏耐心等原因,导致回答不准确或不完整;无法实时澄清用户的疑问,对于开放式问题的回答质量可能参差不齐,增加分析难度。

三、采样技术

概念

采样技术是从总体用户或数据中选取一部分有代表性的样本进行研究,通过对样本的分析来推断总体的需求特征。它基于统计学原理,在保证一定准确性的前提下,减少数据收集和分析的工作量。

适用场景

  • 总体规模庞大:当用户群体数量巨大,无法对所有用户进行全面调研时,通过采样选取有代表性的样本进行研究。
  • 资源有限:在时间、人力、资金等资源有限的情况下,采样技术能以较小的成本获取关于总体需求的大致信息。
  • 快速获取初步需求:在项目初期需要快速了解需求概况,为后续深入调研提供方向时,采样可快速提供一个近似的需求轮廓。

实施步骤

  1. 定义总体:明确需要研究的用户或数据的总体范围,例如某电商平台的所有注册用户、某企业内部所有使用特定办公软件的员工等。
  2. 选择采样方法
    • 随机采样:从总体中随机抽取样本,每个个体被选中的概率相等。例如使用随机数生成器选取电商平台注册用户的ID作为样本。
    • 分层采样:将总体按照某些特征(如年龄、性别、职业等)分成不同层次,然后从每个层次中独立进行随机采样。如将电商平台用户按年龄分为青年、中年、老年三层,分别从各层中抽取一定数量用户。
    • 系统采样:按照一定的抽样距离从总体中抽取样本。例如每隔100个电商平台用户抽取一个作为样本。
  3. 确定样本大小:根据总体规模、可接受的误差范围和置信水平,运用统计学公式计算合适的样本大小。一般来说,总体规模越大、可接受误差越小、置信水平越高,所需样本量越大。
  4. 收集样本数据:通过用户访谈、问卷调查等方式对选取的样本进行数据收集。
  5. 分析样本并推断总体:对样本数据进行分析,根据样本特征推断总体的需求特征,如计算样本中用户对某功能的需求比例,以此估计总体中对该功能有需求的用户比例。

例子

某大型连锁超市要开发一款会员管理系统,其会员数量达数十万。采用分层采样技术,按会员消费金额将会员分为高、中、低消费层,从每层中随机抽取一定数量会员进行访谈和问卷调查,了解他们对会员积分、优惠活动、会员专属服务等方面的需求,进而推断全体会员对会员管理系统的需求。

遵循原则

  • 代表性原则:选取的样本要能准确代表总体的特征,确保样本与总体在关键属性上分布相似。
  • 随机性原则:在采样过程中尽量保证随机性,避免人为偏见对样本选取的影响。
  • 适度性原则:样本大小要适中,既不能过大造成资源浪费,也不能过小导致结果不准确。

优缺点

  • 优点:在资源有限的情况下,能快速、高效地获取总体需求信息,成本较低;基于统计学原理,具有一定的科学性和可靠性;通过合理的采样方法,可以较好地反映总体特征。
  • 缺点:如果采样方法不当或样本量过小,可能导致样本不具有代表性,从而使推断结果与实际总体需求偏差较大;对采样人员的统计学知识要求较高,操作不当容易出现误差;无法像全面调研那样获取关于总体的所有细节信息。

四、情节串联板

概念

情节串联板是一种以图形化、故事化的方式展示软件系统使用场景和流程的需求获取方法。它通过一系列连续的画面或场景,描述用户与软件系统在特定情境下的交互过程,帮助需求获取人员和用户直观地理解系统功能和业务流程。

适用场景

  • 需求可视化:当需求较为抽象,难以用文字清晰表述时,通过情节串联板将需求以可视化形式呈现,便于用户和开发团队理解。
  • 用户体验设计:在关注用户与系统交互体验的项目中,情节串联板可用于设计和优化用户操作流程,发现潜在的用户体验问题。
  • 团队沟通协作:作为一种直观的沟通工具,促进需求获取人员、开发人员、设计人员以及用户之间的沟通与协作,确保各方对需求的理解一致。

实施步骤

  1. 确定主题和范围:明确要描述的软件功能或业务场景,例如电商平台的商品购买流程、在线教育平台的课程学习过程等。
  2. 收集素材:与用户沟通,了解他们在实际使用场景中的操作步骤、决策点、可能遇到的问题等信息。收集相关的界面设计草图、业务流程图等素材,为绘制情节串联板做准备。
  3. 绘制情节串联板:使用纸笔、白板、绘图软件(如Axure、Visio等)绘制一系列画面,每个画面展示一个关键的交互步骤或场景。在画面中添加文字说明,描述用户的操作、系统的响应以及相关的业务规则。按照业务流程的先后顺序排列画面,形成一个连贯的故事。
  4. 评审与修改:邀请用户、开发团队等相关人员对情节串联板进行评审,收集反馈意见。根据反馈对情节串联板进行修改和完善,确保其准确反映用户需求和业务流程。

例子

为开发一款在线点餐APP,绘制情节串联板展示点餐流程。第一幅画面展示用户打开APP后的餐厅列表界面,文字说明“用户打开APP,浏览附近餐厅列表”;第二幅画面是用户点击进入某餐厅详情页,展示菜品图片和介绍,文字说明“用户点击餐厅,查看菜品信息”;接着是用户选择菜品加入购物车、确认订单、支付等画面,详细描绘每个步骤中用户与APP的交互过程。

遵循原则

  • 真实性原则:情节串联板应基于真实的用户使用场景和业务流程,避免虚构或脱离实际。
  • 简洁性原则:画面和文字表述要简洁明了,突出关键信息,避免过多细节导致信息过载。
  • 交互性原则:重点体现用户与系统之间的交互,包括用户操作和系统反馈,以展示系统的功能逻辑。

优缺点

  • 优点:以直观、易懂的方式呈现需求,降低沟通成本,提高各方对需求的理解一致性;有助于发现需求中的逻辑漏洞和用户体验问题,提前进行优化;能够激发用户和开发团队的想象力,促进创新设计。
  • 缺点:绘制情节串联板需要一定的绘图和设计能力,对于复杂系统的需求描述可能不够全面和精确;由于是图形化表达,难以涵盖所有的需求细节,可能需要结合其他需求获取方法进行补充。

五、联合需求计划(JRP)

概念

联合需求计划(JRP)是一种集中各方利益相关者(如用户、开发人员、管理人员等),通过一系列有组织、有计划的会议,共同讨论、分析和确定软件系统需求的方法。它强调多方协作、面对面沟通,旨在达成对需求的共识,减少误解和偏差。

适用场景

  • 需求复杂且多方参与:当软件项目涉及多个部门、多种角色的利益相关者,需求复杂且各方需求存在差异和冲突时,JRP能促进各方充分沟通,协调需求。
  • 项目时间紧迫:需要在较短时间内集中获取需求并达成共识,以加快项目进度。JRP通过集中会议的方式,高效地整合各方意见。
  • 对需求质量要求高:期望通过各方深度参与和协作,确保需求的完整性、准确性和一致性,提高需求质量。

实施步骤

  1. 准备阶段:成立JRP小组,包括需求获取人员、用户代表、开发团队成员、管理人员等。确定会议的目标、议程和时间安排。提前收集相关资料,如业务文档、现有系统介绍等,分发给小组成员,让他们做好充分准备。
  2. 会议阶段
    • 开场:介绍会议目的、议程和规则,营造开放、合作的氛围。
    • 需求陈述:由需求获取人员或业务专家介绍现有业务流程和初步的需求设想,让小组成员对项目有整体了解。
    • 讨论与分析:针对需求进行详细讨论,各方发表意见和建议,分析需求的合理性、可行性以及可能存在的冲突。通过提问、澄清、辩论等方式,深入挖掘需求细节。
    • 达成共识:对于存在分歧的需求,通过协商、妥协等方式寻求共识。可以采用投票、举手表决等方式对关键需求进行决策。
    • 记录与总结:安排专人记录会议讨论内容和达成的共识,在会议结束时,对本次会议的成果进行总结,明确下一步的工作任务。
  3. 后续阶段:整理会议记录,形成需求文档草案,分发给小组成员进行审核。根据反馈意见对需求文档进行修改和完善,最终形成正式的需求规格说明书。

例子

某企业要开发一套集成的企业资源规划(ERP)系统,涉及财务、采购、销售、生产等多个部门。组织JRP会议,各部门代表、开发团队成员和企业高层管理人员参加。在会议上,各部门依次陈述本部门的业务流程和对ERP系统的需求,如财务部门提出财务核算、报表生成的需求,采购部门提出供应商管理、采购订单处理的需求等。然后针对这些需求进行讨论,解决部门间需求冲突,如采购付款流程与财务结算流程的衔接问题,最终达成对ERP系统需求的共识。

遵循原则

  • 平等参与原则:确保所有小组成员都有平等的发言机会,尊重各方意见,避免一方主导会议。
  • 开放沟通原则:鼓励小组成员开放、坦诚地交流,积极提出问题和建议,营造良好的沟通氛围。
  • 目标导向原则:会议始终围绕确定软件系统需求这一目标进行,避免讨论偏离主题,提高会议效率。

优缺点

  • 优点:能快速整合各方需求,减少需求误解和冲突,提高需求的准确性和一致性;促进各方之间的沟通与协作,增强项目的团队凝聚力;由于各方共同参与需求确定过程,对需求的认可度高,有利于后续项目的推进。
  • 缺点:组织会议的成本较高,需要协调各方时间,且会议过程需要精心组织和引导,否则容易出现混乱或效率低下的情况;可能存在个别成员因担心影响人际关系而不愿表达真实意见,导致需求收集不全面;对于一些涉及敏感信息或个人隐私的需求,可能不适合在公开会议上讨论。

综上所述,这五种需求获取手段各有特点和适用场景。在实际的软件工程中,通常需要综合运用多种方法,以全面、准确地获取软件系统的需求,为项目的成功奠定坚实基础。