为软件质量保驾—
过程管理与项目管理技术的应用
王家欣 (转载自计算机世界网)
[url=http://www.21cmm.com/prelogin.asp?page=/bbs/index.asp?Type=H][/url]
我国软件业与世界先进国家相比,差距甚远,其主要原因是软件工程化技术没有得到广泛的应用。今天,软件开发不再是软件开发人员的个人行为而是团队行为,对软件开发机构来说,如何在要求的时间内、合理的投资下保质保量地交付软件产品是一个巨大的挑战。无论是在软件水平最高的美国还是在我国,软件开发项目超期、超预算、最终的软件产品的质量不能使最终用户满意等问题,都是困扰软件开发机构的重大问题。
软件质量管理的3种方式发涉及到方方面面的人员,历经多个生产环节,产生大量的中间产品,各个环节都可能带来产品质量问题;同时,由于软件产品是逻辑体,不具备实体的可见性,因而难以度量,质量也难以把握,因此如何有效地管理软件产品的质量一直是软件企业面临的挑战。归纳起来,软件质量管理大体分为三种:事后检验、全面质量管理和权威认证。
1.事后检验
事后检验的方式是在产品生产的最后环节进行质量检查,合格的产品准许出厂,不合格的产品作为次品处理。这种质量管理方式对于制造批量大、制造成本较低的产品是一种较好的质量管理方式,但却不适应软件产品的质量管理要求,因为这种产品的生产没有批量可言。
管理方法
项目管理是确保软件项目按时、按预算、保质量完成的关键活动,它主要包括项目计划的制订和对项目按计划执行情况的跟踪与动态调整。计划的合理性是保证项目按计划执行的重要因素。一般来讲,经验丰富的项目经理可以根据项目的实际需求、允许的工期等情况,合理地安排项目活动、资源配备和项目进度,并准确地预见项目进行过程中可能遇到的风险,充分准备风险防范措施,制订完备的项目计划,这样就容易确保项目按计划顺利进行。
通常,在项目进行过程中,项目经理要不断保持对项目实际进展状况的动态跟踪,当出现与计划不一致的情况时,要根据实际情况合理地调整计划安排,以确保最终的成功。当项目计划出现变更时,要分析其诱发因素,并记录相关数据,利用这些数据来改进软件开发过程。由此可见,过程管理与项目管理是相互作用的:过程是项目计划的依据,项目执行所产生的数据又可作为过程改进的依据。
2.沟通问题
在项目进行过程中,沟通一直是一个比较大的困难。通常,沟通的主要目的是为了解决下列问题:
● 让项目成员准确地了解执行项目的具体方法;
● 让项目成员清楚地知道项目的整体计划以及每个成员在项目中所承担的具体任务;
● 让项目组成员获得完成其工作所需的必要帮助;
● 项目经理能够清晰、准确、及时地掌握项目的进展情况以及每个成员的工作进度;
● 项目计划的必要变更可以及时地让项目团队的所有成员了解;
● 项目的实际执行数据可以被准确地收集并统计汇总作为决策参考。
目前在项目管理中,最缺乏的就是规范、准确、高效的沟通,这极大地影响了项目经理对项目的管理能力,因此,建立起有效的沟通机制是项目管理技术应用的一个必要前提。
3.建立管理环境
古人云:“工欲善其事,必先利其器!”优秀的工具可以起到事半功倍的作用。进行过程管理和项目管理也不例外,有合适的工具作为支撑,可以提高效率、节省投资,使工作高效、顺畅地进行。
建立管理环境
这里,我们以CA公司提供的Process Continuum和Advisor为例,介绍如何建立完整的项目管理环境。
CA Process Continuum是CA公司提供的一套专门支持工程管理和项目管理的工具集,它提供丰富的工具,适应从事过程管理和项目管理工作的全部需要。
CA Process Continuum的核心部分包括三部分:用于存储全部过程的中央存储库Process Library、用于定义过程和改进过程的工具Process Engineer以及用于制订项目计划及跟踪项目的工具Project Engineer。
在Process Library中,既可以存放软件开发机构定义的软件过程,也可以存放由CA或第三方专业厂商提供的商业化软件过程。这些软件过程都可以通过Process Engineer进行定义或改进。所有软件过程在过程库中都以模板形式存在,过程管理员可以通过简单的定制完成过程定义。当新项目开始时,项目经理可以根据项目具体的需求特点,通过Project Engineer从Process Library中选择适合的过程模板应用于这个项目。过程模板一经指定,Project Engineer就会根据过程模板中的定义自动地生成详细的项目计划,项目经理只需在此基础上进行简单的资源分配、成本和时间估算、时间安排等,就可以完成一个项目计划的制定工作。在此之后,项目经理可以让Project Engineer为其生成项目进度表。
Advisor可以为机构建立一个基于Web的工作环境。利用这个环境,项目经理可以了解各项目的动态进展情况,汇总项目进展情况及项目成员的工作情况,并在Project Engineer中利用这些信息进行评估,作为对项目后续工作进行调整的依据。
此外,在Advisor建立的环境中,项目组的每位成员都可以访问Team member Website,从该站点上获取自己的工作列表和相关的时间表,并可以获得各种帮助信息、填写每项工作的具体完成时间,从而形成一个项目成员与管理者之间的沟通环境。对项目经理来说,这可以增加项目的可视性,有效地提高团队成员的劳动效率。
在项目进行的过程中,如遇到与计划不符的情况,项目经理可以及时调整项目计划,并利用Project Engineer与Scheduler的同步功能获得项目的实际执行数据,这些数据可以作为过程管理员改进过程的实际依据。需要强调的是,Process Library对刚刚开始尝试从事过程定义与过程改进工作的人来说具有特别重要的意义,因为商业化的过程库具有很高的学习和参考价值,它可以帮助我们共享业界的最佳实践。