软件开发不是“我想要一个程序”,然后“随便写代码就有了”。
在做软件开发之前,首先要明确软件的项目定位方向是什么,特点是什么,盈利的模式是什么,目标用户群体,解决什么问题,实现什么目的、核心功能等详细信息,且这个软件的定位是工具型、娱乐型,还是应用软件?
这些就是软件开发中的需求分析。想要做一款成功的软件,一定少不了这一步。
需求必须是是基于用户或者市场严谨的调查或分析的,而不能是凭空想象的。否则软件做得再好,用户问题解决不了,用户需求满足不了,将是一个“失败”的软件。
想要做好一份需求分析,你需要知道这三个需求:
01业务需求
业务需求就是系统目标,必须是业务导向、可度量、合理、可行的。
02用户需求
用户目标,通常是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理。
03系统需求
从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。
一旦需求产生了偏差,软件开发自然也会和开发目标背道而驰。所以我们在做需求时,要提防以下7个风险:
1. 无足够用户参与
2. 用户需求的不断增加
3. 模棱两可的需求
4. 不必要的特性
5. 过于精简的规格说明
6. 忽略了用户分类
7. 不准确的计划
在我们知道软件的需求后,就要做好分析。需求分析就是提炼、分析和仔细审核已经获取到的需求,以便整个项目团队都能了解。
需求分析的过程一般包括以下阶段:
● 可行性研究
可行性研究的结果是清楚的回答:该系统是否值得开发。现有的软件、硬件技术能否实现用户对系统的要求,从业务角度来决定系统开发是否可行以及在预算范围内能否开发出来。
● 需求导出和分析
通过对现有系统分析、与潜在客户讨论、进行任务分析等导出系统需求的过程,也可能需要开发一个或多个不同的系统原型,以帮助分析员了解所要描述的系统。
● 需求描述
把在分析活动中收集的信息通过分析整理之后以文档的形式确定下来。该文档中有两类需求:一是用户需求是从客户和最终用户角度对系统需求的抽象描述;二是系统需求是对系统要提供的功能的详尽描述。
● 需求有效性验证
主要是通过评审、验证等一系列活动来找出需求文档中的错漏并加以改正。
● 需求管理
需求管理需求管理是一种系统化方法,可用于获取、组织和记录系统需求并使用户和开发方在系统变更需求上始终保持一致。
软件开发的全过程,都是紧密结合的。每个阶段都有其重要性,如果单独一个阶段,而忽视其作为对整个软件开发项目的综合影响,必然会带来更多的开发问题,从而影响整体开发效率。