摘要:
2010年3月,我担任某**信息系统开发负责人,主要负责系统规划与组织实施开发。该系统工程量大,业务需求多变,外部运行环境复杂,是一个基于网络的的大型数据库实时分布系统。该系统主要由电能查询、能源管理、能耗查询、能耗统计、能耗报表、预测分析、设备管理、系统维护等模块组成。该系统采用JAVA、JSP、Javabean和Servlet技术,结合功能强大的Oracle数据库,真正实现网络化。此系统采用由顶向底逐步求精的设计方法有效地提高了软件开发的质量和效率。本文结合项目实例探讨了在项目管理中始终作为核心竞争力的质量管理中遇到的问题和解决方法,总结了质量管理的三个主要过程及其采用的工具。系统自运行以来。在企业的能源计量、能源管理、生产指挥方面都发挥了重要作用。
正文:
质量是反映实体满足和隐含需要的能力的特性总和。项目质量管理的主要目的是确保满 足它所应满足的需求,项目管理必须满足或超越利益相关者的需求和期望。优质的产品或服务对于一个公司企业,对国家来说都具有战略性的重要意义,IT项目质量更是如此,由于我国软件发展的历史较短,自身发展方面也存在许多问题,加上 IT 行业技术发展速度快,这样就导致软件产品不稳定,软件后期的维护、升级出现麻烦,轻者用户不满意,重者造成人身伤亡,或者重大的经济损失。因此,必须把质量看做与项目范围、时间和成本同等重要。 在我负责的**系统项目中,特别注意了质量管理。首先严格按照项目质量管理的三个主要过程:质量计划编制、质量保证、质量控制上对项目进行了管理,同时注重现代管理方法,借鉴国外先进的管理理念,注重领导管理,团队建设,并采用了 RUP 的迭代式的开发过程,开发目标定位在 CMM2 的关键过程域(KPA),达到 CMM2 的关键过 程域,来控制软件质量。
根据 RUP 的经验,我们把软件开发分成和 RUP 一样的四个阶段:初始化、精化、构建、
部署四个阶段。为此我们制定了需求分析、变更和配置管理、项目管理、分析和设计、测试 等几个关键过程,通过对这些关键过程的定义来控制整个软件开发活动。需求分析关键活动是完成收集和定义软件开发需要的资源;变更和配置管理关键活动是定义项目开发所需要的环境以及如果协调成员之间的进度,这个关键活动的实施我们主要集中在版本控制上,利用现在流行的 CVS 版本控制工具来有效的协调和管理团队的开发。项目成立的技术交流会上,项目成员集思广益,为系统指定了质量标准,包括采集的响应时间、操作的响应时间、确保产生一致准确的信息、平均出错的几率、系统的升级等,并将这些标准纳入质量计划编制。在本系统中我们请了自己公司的领域专家参与到系统开发的早期阶段,并且做出了系统开发原型,用这些原型确认用户的需求。让领域专家参与到开发的早期阶段,保证了分析人员有充足的时间和领域专家进行充分的交流和确认,在这个阶段,原型 可能在提交到用户之前首先被领域专家确认,这样保证了原型被认可的程度和认可过程耗费的时间尽可能的短,从而在提高效率的同时保证了质量。
分析设计和测试这两个关键活动我们主要采用了几个原则:第一,分析和设计适当分开,做分析的不能全去做设计,在设计中有不做分析的人才能发现分析中的缺陷,分析的鉴定应该由所有成员统一来执行。第二,设计和测试适当分开。根据我多年的开发经验,开发人员 并不是很乐意去做繁杂的测试工作,而且开发人员的测试思路都比较狭窄。第三,设计和文档编写员适当分开。设计人员应将精力放在设计上,可提供简单的样稿,具体的文档编写应交于专人。实践证明,上述原则的应用是成功的。
质量保证包括对整体项目绩效进行定期的评估以确保能满足相应阶段质量标准,质量 保证过程不仅对项目的最终结果负责,而且还要对整个项目过程负责。本项目中,本公司领 域专家的质量审核,很好的完成了质量保证任务。在整个开发过程中,测试也是贯穿了整个 过程,分别进行了单元测试(白盒测试)、自底向上的集成测试、功能测试(黑盒测试)、回 归测试、验收及安装测试、Beta 测试、配置测试、兼容性测试等,测试者进行得详细而且 严谨,对出现的问题及时解决,消灭在萌芽状态,确保系统满足期望。整个过程中,采用了控制图来表明这个过程是处于控制中还是失去了控制,当这个过程失去控制时,就马上确认这些非随机事件的起因,并调节过程以纠正或消除这些起因。
在整个项目过程中,深刻领会到除了使用好的质量计划、质量保证和质量控制这些有 效的工具外,强大的领导、团队组织、提供一个好的工作环境来提高质量、努力提高组织在软件开发和项目管理方面的整体成熟度水平,都有助于提高质量。
许多质量专家都认为,质量问题的主要原因时缺乏领导。大部分质量问题出在管理上,
而非技术上。认识到这一点,作为项目经理,我经常到上司领导那里去,灌输我的观点,说 服领导重视这件事情,在这个项目中我和我的上司强调不断开发和使用质量标准、经常培训 员工、推行质量概念和原则的教育和培训、实施策略计划及建立和跟踪质量水平、积极证明质量提高的重要性,提高全体开发人员的质量意识。明白质量成本是一致成本加上不一致成本,一致成本时交付满足要求的和适用的产品。不一致成本是对故障或没有满足质量期望所消耗的成本。认识到这一点,尽量实现零缺陷,将问题尽早发现,尽早解决。
在团队组织上,鉴于成员小组素质和技能都比较高,我采用了一种驱动式的管理模式, 要求成员共同协商,互相平等,尊重和调动每个成员的积极主动性。我则不直接参与其他成员的活动,而是类似于教练的角色在旁边不断的指导和更正他们的行为,整个实际活动由小组成员自己完成。根据每个成员的能力和特点,分配不同的任务,明确他们的责任,指导他们的行为,这种模式类似于足球队管理,教练不实际打球,而是在外场确定中锋、前卫、后 场的关系和位置,将自己的战术灌输下去,实际的操作由队员自己完成。这样做可以有效的 缓解项目经理的压力,让项目经理将更多的精力放在项目管理上,发挥团队主体的能力,来 保证软件的质量。
总结
综上所述,整个软件开发过程中,注意了软件过程的定义,认真编制质量计划,编写需求分析,分析和设计模块,制定并严格执行测试活动,进行质量保证,并采用有关工具进行质量控制。而且注重让领导参与进来,加强团队建设,进行职工质量先进概念培训。处理了 这些问题,我们的软件质量有了大幅度的提高,而且我也相信这些问题的解决也是大规模软 件开发的基石,也是软件组织成熟的标志之一。
**系统自 今年 3月份项目启动到 8月项目验收,历时半年,运行稳定,取得了多个用户好评,很大程度上得益于项目成功的质量管理。
各省软考办 | ||||||||||