目录
一、什么是软件需求
软件需求就是一个为软件系统的需求进行启发、组织、建档的系统方法,一个建立和维护客户和项目团队之间关于变更系统需求所达到的一致性问题。他把需求定义为“(正在构建的)系统必须符合的条件或具备的功能”。
二、需求的重要性
需求在项目中扮演着至关重要的角色,是项目开发的基础和起点,它的准确性和完整性直接关系到项目的成功与否。
三、获取正确需求带来的困难与挑战
由于需求对项目而言具有重大意义,因此,获取正确的需求成为了每一个需求人员必修课程,然而获取正确需求的道路并不是一帆风顺的,原因如下:
- 大多数客户并不知道自己想要什么,亦或是不能够清晰、准确地进行表达,需求人员如何面对这一次重大挑战?
- 由于不同行业背景而造成的沟通阻碍,即使用户表达需求足够清晰、准确,需求人员也未必能够正确理解,由于主观因素的存在,用户的表达与需求人员的理解、需求人员的转述与开发人员的理解之间存在着差异,作为项目开发的桥梁人物,需求人员如何搭好这座桥?
- 面对软件需求的不断变化,如何控制变化的规模、允许怎样的变化、通过什么方式去控制变化等等,需求人员应如何设计解决方案应对?
四、需求的获取途径
由于校园环境的特殊性,当同学们拿到一个大作业要求时,99%的系统需求都已经罗列在我们面前,并且需求是确定地、清晰地、准确地表述,不具有需求变化的风险,因此学生获取需求的难度大打折扣,更不需要去考虑如何应对需求变化带来的影响。无可厚非,对于初学者而言,这种方式是友好的。但作为一名即将面临实习的学生而言,仅掌握到此种程度是远远不够的,在现实场景下,获取需求要比校园大作业要难得多。作为一名合格的需求人员,需要结合多种途径来获取需求,以保证获取到需求的准确性与全面性,下面笔者提供了几种获取需求的途径供读者们参考 :
- 代入法:将自己当成系统的最终用户,以用户的身份审视系统,多提需求,即想要在该系统的哪个地方做什么事情,希望得到什么反馈。
- 交谈法:需求人员提出问题,用户回答问题,从最终用户口中了解系统需求。
- 类比法:观察同类现有的产品,了解系统能够完成的任务以及系统运行的环境。
- 会议法:举办客户和开发人员的联席会议,与客户代表共同开发需求,提取相关需求信息。
- 提炼法:复审技术文档,在已有的部分需求文档中提取相关信息。
五、需求的正确定义
在获取正确需求的环节中,我们遇到了许多的困难与挑战。解决这些困难与挑战的关键在于准确并且统一地定义需求,挖掘满足条件的“真正客户需求” ,使得项目相关人员对需求有统一的认识(相关人员包括但不限于客户、需求人员、开发人员)。在获取需求到统一地定义需求这一过程,并不是单线关系,而是一项重复循环的工作,直至项目相关人员均对项目的需求具备统一的认识。需要引以为戒的是许多需求人员小白,也包括笔者自己,在需求定义阶段,只考虑产品的功能定义,而忽视了产品的性能定义,这往往容易导致产品的潜能低下,无法适应高强度的现实考验。除此之外,需求的定义还应当具备一下五个标准:
- 必要性,例如阐述某某系统必须支持多少用户量的并发
- 无歧义的,主要体现在统一命名上
- 可测的,对于给定的一个或一组输入,我们一定会得到一个或一组确定的输出
- 可跟踪的,追踪可能会往前追踪,也可能会往后追踪(追踪其来源、其开发过程及对应规格、到最终的布署及使用,以及过程中每一个周期中相关的细化及迭代)
- 可测量的,例如描述了系统具备良好数据安全性,那么对于这一定性,应该对其进行量化,例如对该数据在多少个可用区进行了多少个备份算为良好。
六、需求人员的产出物
需求人员具体有什么产出物呢?在选用快速原型模型开发或者大多数敏捷开发的模式下,笔者认为最重要的两个产物有原型图和需求规格文档。在现实的工作中,需求人员一般都由产品经理来担任。原型是在产品经理明确目的以后,通过需求调研和需求分析找出问题所在,并制定解决方案,将方案转化为具体的产品功能,而原型就是这一阶段的产物,是产品功能可视化的表现形式;而PRD文档则是对产品从确定目的到最终完成原型的过程的整理和总结,以及对产品原型的详细描述,目的是让开发、设计、测试以及顶头上司了解你的设计方案,是产品的说明书,项目开发阶段的约束文档。
七、需求人员的活动安排
需求人员的技能不只是写文档那么简单,需求规格文档决不是凭空产生的。具体产出有着一个大致的步骤:
- 需求获取:笔者整理的需求获取途径共有五种,无论是运用到哪些途径组合,顺利拿到客户/用户的需求是这一阶段的成功标志。
- 需求分析:从获取来的需求中挖掘客户/用户的真正痛点,剔除伪需求,产生需求列表,标明优先级。
- 产品结构设计:有了需求以及优先级顺序,接下来是对软件功能结构进行明确的划分,功能层级划分完,产品结构图就出来了。
- 产品功能设计:有哦了产品结构图,产品的框架就搭建完毕,接下来开始产品的具体功能逻辑设计,最终成果应该是一份产品功能流程图,让开发组成员知道你设计的功能操作流程和逻辑判断是怎么样的。
- 原型设计:对以上的构想进行UI设计,内容越完善越好。
- 交互设计:原型图设计好了之后,由于各界面功能还不具备交互能力,为了使开发组成员更加明了地知道各功能组件的交互逻辑,还需要在原型图上进行跳转绑定。
- 需求规格文档:需求阶段的最终产物,将原型图进行分解说明,一并写入。
1607

被折叠的 条评论
为什么被折叠?



