1 软件项目需求分析的重要性项目管理者联盟
当前,软件开发往往存在着三大主要问题:预算超支、进度延误、质量糟糕而且很难控制在预算之内———尤其是要高质量地实现用户的期望。相关的业界报告与分析对信息系统行业中不能满足客户需求、与用户预期不符合以及资源严重浪费等现象和问题进行了详细描述。项目管理者联盟
随着信息时代的发展,计算机软件的需求愈来愈复杂,规模愈来愈大,而且随着企业的发展,工作过程重组,需求变更已愈来愈成为必然。软件危机持续了30年之久,至今仍无法得以很好地解决。究其原因,软件本身具有的特点固然有关,但长期以来,缺乏软件开发和维护的正确方法以及忽视软件开发过程的质量控制乃是最为关键的原因。项目管理者联盟文章
其中软件开发和维护方法的不正确性主要体现在:忽视软件开发前期的需求分析;开发过程缺乏统一的、规范化的方法论的指导;文档资料不齐全或不准确;忽视与用户之间、开发组员之间的交流。项目管理者联盟
这样,就经常出现用户对“已完成”系统不满意,软件产品的质量经常出现漏洞,补丁一大堆。自从20世纪60年代出现软件危机以来,越来越多的人已开始更多地关注于软件,思考更好地保证软件开发的质量,与软件危机一起诞生的软件工程方法和建模理论已经发展了几十年。项目管理者联盟
然而事实却是,软件项目存在的质量问题仍然很严重。1969年,北约提交了一份报告,列举了软件所面临问题的原因,其中的原因在今天仍然存在:在Rajesh Naik等人近年来合著的《软件需求与估算》中提到,我们经常会看到有头无尾的工程,用户不满意的工程,难以投入实际使用的工程,或者严重超支和拖延进度的工程。而导致这些现象的重要原因之一,往往是由需求问题引起的,如客户和开发者对系统的需求缺乏了解;搜集和分析需求的非结构化方法;没有支持的工具或支持工具价格昂贵。pmp.mypm.net
1994年《科学美国人》曾经报道,尽管经过50年的“进步”,仍然存在着一种慢性危机。这就是缺少能够满足信息时代要求的成熟工程科学的状况已经持续几十年了。以上这些令人惊讶的数字和分析同样包括了对于软件(信息系统)产品开发状况的统计与描述。项目管理者联盟
在软件产业最为发达的欧美国家尚且存在如此严重的需求问题,更不用说是近20年来刚刚掀起IT热潮的中国了。由此可见,软件危机自20世纪60年代起已经持续了近40年之久,至今在全世界范围内仍无法得以很好地解决。项目管理者联盟
如何着手解决这个危机,首先要从原因入手,在明确根源之后,再研究制定相应的对策。根据IDC的统计,80%的失败IT项目是由于需求分析做的不好,没有真正反映出用户的需求而导致的。同样对于出现这种情况的原因,根据Standish集团公司的分析,项目失败最重要的8个原因中的5个都与需求有关:项目管理者联盟
①不完整的需求;项目管理者联盟
②没有用户的介入;项目管理培训
③不实际的客户期望;项目管理者联盟
④需求和规范的变更;项目管理者联盟
⑤提供不再需要了的能力。项目管理者联盟
此外,CHAOS大学工作人员Sanjiv指出:“如果没有搞定需求,则项目一定会失败;如果搞定需求,则项目一定会交付。”在这样的环境下,业界人士从长期的实践中逐步意识到以工程化的原则和方法组织信息系统开发工作是解决危机的一条主要出路,其中相对而言编码不是“问题”,问题在于需求阶段,需求分析无疑是软件工程中的关键问题。正因如此,软件需求的重要性正在不断提高,因为它是用户赖以预先知道将获得什么样的系统以及投入多少经费的途径。项目管理论坛
因此人们意识到以工程化的原则和方法组织软件开发工作是解决软件危机的一个主要出路。软件工程中包含需求、设计、编码和测试四个阶段。service.mypm.net
需求分析作为软件生命周期的第一个阶段,并贯穿于整个软件生命周期,其重要性越来越突出,到80年代中期,逐步形成了软件工程的子领域———需求工程。软件工程的子领域需求工程的出现,体现了其在软件质量保证中的重要意义。进入20世纪90年代后,需求工程成为软件界研究的重点之一。项目经理博客
在国内则兴起于20世纪90年代后期,其研究方法和研究方向基本上参照国外的相关方法和理念,而研究成果的创新度和实用意义与国外尚有差距。当前对于需求工程的研究已经成为软件工程中的重要环节,但正如AlanM. Davis所说的那样:需求工程的进展相当缓慢。service.mypm.net
我国已进入WTO,因此软件开发也要与国际接轨,只有这样才能提高我们在项目管理水平,最终开发出高质量的软件。bbs.mypm.net
2 需求分析的相关问题及过程项目管理培训
需求分析是软件工程中最复杂和最难处理的过程。归结起来,需求分析的问题主要体现在以下4个方面:项目管理者联盟
(1)需求的复杂性。由于用户需求所涉及的因素繁多,如运行环境和系统功能等,而导致了需求分析的复杂化。积极与用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合问题解决领域的用户需求。项目管理者联盟
(2)分析人员或客户理解有误。系统需求涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人员往往具有不同的背景知识,且处在不同角度,扮演不同角色,从而不可避免地造成了他们之间相互交流的困难。club.mypm.net
例如软件系统分析人员不可能都是全才,客户表达的需求,不同的分析人员可能有不同的理解;客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。项目管理者联盟文章
(3)不完整性和不一致性。每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。但由于种种原因,用户对问题的陈述往往是不完整的,其各方面的需求还不可避免地存在着矛盾。项目管理者联盟
|