为什么要管理软件需求
简单讲,软件开发团队的成功就是满足软件项目的需求。当今世界对软件的依赖程度急剧增长,面对质量和交付周期的固有矛盾以及各种动态因素的综合作用,软件需求日益复杂,软件开发成为一项跨越技能、职责范围和时间阶段的综合团队活动,协调统一是成功的必要条件。软件需求是统一的核心线索,需求管理正是协调的必由之路。
严格意义上,需求是系统或软件必须达到的目标和能力;需求管理是一种系统方法,用来获取、组织和记录需求,建立并维护客户、用户和开发机构之间针对需求变化的协议。
众多的实践证明,良好的需求管理对于降低开发成本和保障项目成功至关重要。根据权威机构的统计,在全世界范围,仅有1/4的软件开发项目能在规定的时间和预算内达到客户的目标。纵观这些项目各自总结出的十项首要成功经验,我们总能找到三个要素: 有效的用户参与,明确的业务目标和稳定的基本需求。这三个要素的核心内容是软件需求,其核心活动是需求管理。
CMM2对软件需求管理的指导
针对如何提高软件质量和开发效率,CMM为我们提供了一套的综合见解和完整的框架,CMM对软件开发机构投入产出比(ROI)的卓著贡献已经得到业界的广泛认可。
需求管理是CMM2级的首要关键过程领域(KPA),是软件开发活动中不可或缺的组成部分。需求管理的目的是在客户和开发机构之间建立一个共识,形成软件工程所必须的管理基线,从而对需求实施有效的控制。在软件开发活动中,所有的活动计划,日程安排,交付工件都要直接或间接地和需求保持一致,这是贯穿于CMM体系中的一个重要理念和准则。只有基于这种准则,软件开发组织才有可能进入浑然一体的境界:软件的技术需求,项目计划以及各项相关活动协调一致,井井有序。为了实现这一目标,开发组织需要付出的努力是多方面的。
最基本地,经过相关涉众(涉众:会受到作为结果的目标软件系统实质性影响的个人。)审阅的软件需求必须形成"文档"。对"文档"的理解不应仅局限于平面化的文字文档,文档的存在形式可以是多种多样的,关键是文档所记录的内容能够为不同工种提供可用的信息依据。软件需求规约(SRS)作为项目的核心文档,用以全面详实地定义软件需求的要素。另外,面向客户和最终用户的通用词汇,描述软件产?quot;做什么和为什么做"的高层次规约也很重要。
为了达到有效管理软件需求的目标,开发机构必须投入必要的人力、资金和管理层支持。软件工程团队的成员和不同工种的团队成员应当接受必要的培训,以便完成与角色相应的需求管理任务。培训的内容要覆盖过程方法,标准以及针对应用领域的一些特殊问题。
软件需求的变更应当作为项目计划的有机组成部分被审阅。需求变更所牵涉的人员能够通过有效的机制来磋商和评估由于变更导致的影响。针对磋商和评估活动中的权衡和分析工作,CMM建议我们至少要掌握三个方面信息: 软件需求的状态,软件需求的变更内容和累计变更次数,待决定的、被建议的、被批准的以及被融入基线的软件需求变更的个数统计信息。
CMM3对软件需求管理的指导
根据CMM的建议,不应将需求管理当作瀑布式的简单文档化流程。CMM的一个显著的特征是将软件需求作为一个活跃的实体贯穿于整个开发过程之中,实施有效的需求管理事实上渗透在CMM的不同层次(Level)和众多关键过程领域之中。
文章来源于领测软件测试网 https://www.ltesting.net/