正确的需求过程
正确的需求过程强调产品开发中的通力合作,包括在整个项目过程中多方涉众的积极努力。
项目成败与成功的原因
使项目“遇到困难”的因素:
1. 缺乏用户介入:占所有项目的13%
2. 不完整的需求和规格说明:占所有项目的12%
3. 不断改变的需求和规格说明:占所有项目的12%
使项目“成功”的因素:
1. 用户介入:占所有成功项目的16%
2. 高层管理的支持:占所有成功项目的14%
3. 需求陈述清晰:占所有成功项目的12%
好的需求应具有的特性:内涵一致,外延完整
需求错误的代价:浪费资源、提高成本、增加风险
74%的需求缺陷在项目的需求阶段发现
4%的需求缺陷泄露到概要设计阶段
7%的需求缺陷泄露到详细设计阶段
4%的需求到维护阶段遗失
在项目的需求阶段发现(并修复)错误所花费的成本与维护阶段发现(并修复)错误的成本比例可能高达1:200
需求的层次
史瑞克:妖怪并不像一般人所想象的那个样子!
驴子:举个例子?
史瑞克:就像洋葱……
驴子:臭吗?
史瑞克:不是……
驴子:会让人流眼泪?
史瑞克: 不是!
驴子:如果让他们去晒太阳,他们就会晒黑,而且会长白头发……
史瑞克:不是!!!是层次!洋葱是有层次的!妖怪也有层次,和洋葱一样!
需求是多层次的,包括业务需求、用户需求、功能需求、非功能需求。
业务需求标识某个组织或客户高层次的目标。 通常来自:项目投资人、购买产品的客户、实际用户的管理者、市场营销部门、产品策划部门。 一般使用前景文档来记录业务需求。
用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务。即:用户需求描述了用户能使用系统来做些什么。 用例、场景描述是表达用户需求的有效途径。
功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。 功能需求通常是通过对系统特性的描述表现出来的,并记录在软件需求规格说明书(SRS)中。 需求规格说明书是开发、测试、质量保证、项目管理等的基础依据。
非功能需求描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约,外部界面的具体细节,性能要求,设计或实现的约束条件及质量属性。 非功能需求不是解决“我想要我的系统实现这种功能”,而是解决“如何使这个系统能在实际环境中运行”。
需求路线图:涉众需求→系统的特性→建立软件需求
道可道,非常道。 ----老子