谈项目管理和软件测试过程(四)
4.项目管理开发环节的测试任务
当公司构架了合理的组织结构并制定了缜密的计划后,就进入了产品的开发阶段。 下面以已经实施完成的CYB项目一期为例,分析华友公司在项目管理上的正在推广的具体项目管理细节的优缺点和测试工作改进探讨:
CYB项目一期需求:由于华友各类业务(SMS和WAP等)在不同运营商(中国联通、中国移动、中国电信等)的不同平台和在网站www.hawa.cn 的WEB门户中向用户提供服务,各类业务的相互独立,为了统一管理用户信息、业务和计费等信息,并汇总进行统计分析处理,同时也为了整合各类业务系统的资源,建立公司的业务运营支撑系统。
4.1 开发阶段和项目周期
开发阶段比较明显,注重各阶段应完成的功能,对本阶段应完成的工作不能留到下一阶段。明确项目经理为D,项目组开发程序员六人,项目第一阶段周期3个月,项目需要完成的功能:
1)实现用户信息的统一管理,包括:用户基本信息,用户使用业务的积分,用户的定制/退定信息的管理
2)实现各类业务信息的集中管理,包括:短信业务、WAP1.2、WAP2.0、JAVA、彩铃等各种业务
3)实现计费信息的统一管理
4)提供客服功能
5)提供统计分析功能
6)提供统一的标准接口,分别与各业务子系统及运营商的系统相连接
7)提供网络管理、监控等功能
在这个阶段,测试经理需要负责详细了解项目开发需要的需求、设计文档等,制订初步的测试方案,根据测试任务的特点决定测试开发任务。实际结果表明开发阶段的最大两个问题:重视设计、不重视测试和软件质量,设计会议开了至少五次,参加会议有公司很有经验的设计人员,测试有关人员没有被邀请参加,忽视产品的性能需求,更多的关注基本功能实现;忽视需求是客服和运维人员,自以为很理解市场部提出的需求,忽视程序开发人员实现的难度和开发人员之间理解需求的差别,项目组成员之间重视口头交流,忽视文档价值。
问题解决方法:开始阶段请测试和质量保证工程师参加讨论,就会提出软件实现的性能需求;重视文档交流的价值,建立软件文档模版和版本控制机制,每次交流落实在成员理解和书面文档。
4.2 软件开发流程
华友公司原来是重视项目管理,忽视流程,一味夸大个别人努力在项目成功中的作用。经过一年痛苦的实践,开始探讨流程管理,已经启动公司的SW-CMM质量体系认证工作,希望建立非常规范化和系统化的软件开发流程,其流程的有很高的可执行性,并且能在实践过程中不断改进。华友公司的流程管理改进从一个项目研发的所有方面开始摸索,包括从最开始的意向、市场策划到最后软件的版本发布(release)上线投入商业运营,都设计有相应的流程规定,基本上已由测试部门负责推广一种能够达到规范、高效的软件开发流程。
CYB项目经理D重视口头交流沟通,忽视文档交流,同时缺少与项目组成员知识共享意识;经理D重视与领导的交流,忽视与开发人员交流,项目实施中开发人员碰到具体问题没人协助解决,开发效率降低。虽然流程没错,但是流程涉及到开发人员出现问题也是需要重视的。流程管理的关键,以"人"为本。
目前的组织框架下,经过一年多的工作实践,深深体会到人和流程是保证项目成功的两个最关键因素。由具备项目实施基本素质的人按规范的合理化流程进行项目开发,才能最大限度地保证项目的成功。一个好的流程可以保证差一点的人做出来的东西不至于太差,但不能确保做出精品。通过流程可以实现一种规范化、流水线化、工业化的软件开发。通过流程我们部门间的配合才节省宝贵时间,为项目早期完成,赢得市场主动权。
4.3 项目计划的阶段性
1) 努力做到项目计划详细、周到。CYB项目计划从开始有三个月计划,到修改三次以上,计划完成时间从三个月、延长到六个月、直到现在的八个月。计划已经形同虚设。实践证明不合理的计划不如没有计划,不合理的计划给领导造成错误的认识。合理的计划应该是先明确本周工作计划,对于难以预测的任务或者困难给出一个近期工作的方向,然后根据实际进展情况进行细化调整。
2) 流程中明确定义开发阶段、测试阶段。开发阶段任务没有完成,占用测试阶段计划时间,测试工作效率降低。正确的处理方式建议不要减少测试工作时间,项目开发完成时间根据实际需要顺延。
3) 每个阶段都列出了该阶段的各项活动,并详细描述每项活动的属性:
进入条件,输入;
验证方法;
结束条件,输出。
4) 每个阶段结束都要召开阶段结束会议。前一个阶段结束(以本阶段开发任务测试完成为标志)才能进入下一阶段。项目经理需要在每个阶段测试任务完成情况进行分析,存在的问题要充分暴露出来,以便于早点解决。 CYB项目经理D采取报喜不报优的做法,在会议上常得到领导的表扬,其他项目经理常愁眉苦脸摆出人员问题、可能的技术问题、测试人员和时间问题等。实际结果最后笑的项目经理也是项目完成比较顺利。
5) 理想计划中每个活动都比较具体,每个活动的时间以天为单位。计划包括了开展质量控制活动的时间,推广说明版本控制系统和缺陷跟踪系统的使用的时间。
典型案例是公司研发用于用户信息管理的代号CYB项目,CYB项目开始时副总裁牵头,由于测试人员少没有参与,开发经理们讨论设计实施方案后几乎大家一片赞美。随后项目经理D负责开发,他认为时间紧,省去了许多必须的文档工作。经理D采取报喜不报优的做法,项目文档差,过分强调计划,而忽视计划任务达到的质量,大部分项目测试没有完成就宣布开发完成,结果前三个月每次经理会上总裁都会表扬他们取得的阶段成果,我做为测试经理没有说话的机会,有一次刚讲几句,总裁马上提醒希望大家克服困难,每个组的任务都可能需要加班等。结果原计划三个月完成项目,已经过了半年发现要实现商用还需要做很多工作,具体完成时间也不确定, 可是现在每天总是强调专人测试,问文档没有,只能通过问了一次又一次的沟通方式实施测试工作, 有个不错的测试人员实在无法忍耐,辞职了,我只好安排新的测试人员应对完成任务。这个CYB项目遭到了整个公司的一片嘘声,虽然没有放弃,但没有商业价值了。快9个月的研发成本老本最清楚去那儿了。
总结教训,项目经理对计划和测试工作的高度重视、周密制定、严格执行是能够实现项目有效商业价值的基本保障。
4.4 重视Review的作用
按软件工程规范化流程,一般把Review和测试作为保证软件质量两个主要手段。测试的重要性已经成为各项目经理认识,并贯穿于开发的全过程,形成了项目组成员人人重视测试工作的氛围。Review则是一个非常简单有效并能尽早发现软件中错误的有效方法,项目经理在每周必须根据进展情况制订Review计划,可以说,任何交付物都要经技术总监参加的Review后才能进行基线化。目前华友公司正在建立比较详细全面、可执行性高的由Review流程和各种交付物的Review Checklist。
我们正在弥补这方面的工作流程缺陷,提出:凡事有计划,凡事必review。首先在开发组内部推广代码规范化工作,定期进行员工Code Review的工作, Code Review 是工作的重要环节。
4.5 质量管理和测试(QA)
公司目前没有独立的质量管理部门,暂时由测试部门测试经理作为质量保证部门的代表,监督和保证项目的进展的各项流程和模板,并且收集项目中发现的一些问题和解决方法以优化流程。由于公司对测试人才有着迫切的需要,因此,只好自己组建培养测试人才队伍。从现实出发,我们不可能想IBM和微软等大公司有雄厚的才力支持质量保障和测试工作开展,我们的工作重点放在软件测试方面。从起步三人开始的实施测试工作,首先测试工程师的工作让项目经理和上级领导发现并肯定他们的工作成果。通过对比测试人员实施测试后的模块和未实施测试的模块投入商业运营带来的很大差异,看到软件修补的高昂费用,提高了领导和项目经理对测试部门的重视程度。逐步扩大测试人员数量,增加测试队伍的规模,提高测试人员的的福利待遇成为可能。
招聘测试人员时,要把好质量关,国内联想、华为等公司一般对于测试人员待遇底,重视不够,我们需要测试认为改变这种错误认识,让优秀的人加入测试队伍。目前测试部门工程师10个人中有2个留学回国计算机方面硕士,其余几人都是计算机或相关学科本科生。尽管经验方面不够,但测试人员的素质和专业技能是国内一流的,一段时间测试团队的努力,这个部门已经成为公司业务开发的至关重要的部门。要不断提高软件测试的自动化程度,测试工作不能仅靠手工劳动来完成,更多的情况是要使用工具软件和编写测试程序来完成,培养全面的测试专业人才是项任重道远的工作。
4.6 度量数据
公司最近开始CMM的质量管理体系工作,CMM中比较强调用数据说话,对项目过程中基本上所有的数据都会有记录,最后把收集的数据提交质量保证部门进行分析,以改进流程。但是公司的项目管理定量化工作实施有一定难度,配合华友公司的绩效考核,测试部门要求项目经理重视项目中的数据收集,主要包括各种Review数据、测试数据以及项目组员每天的活动数据等。要求项目经理也要维护一个项目档案,在这个项目档案中可以说包含了项目开发过程中所有的产出、开发活动、管理活动等的记录。测试部门提供能够进行团队项目开发的CVS或VSS等团队开发系统,可以这么说,有了这个项目团队开发系统,测试经理和项目经理就可以方便了解这个项目的开发过程。
4.7 团队精神
团队精神就好比人身体的每个部位,一起合作去完成一个动作。对公司来讲,团队精神就是每个人各就各位,通力合作。我们公司的每一个奖励活动或者我们的业绩评估,都是把个人能力和团队精神作为两个最主要的评估标准。如果一个人的能力非常好,而他却不具备团队精神,那么我们宁可选择后者。公司强调团队精神、合作精神,应该说,其流程本质上就要求员工之间的互相协调和理解。公司不定期的对经理级别人员进行团队管理培训,在对员工不断进行相关培训,使员工的合作精神和协调精神都比刚进入公司时有较大提高。
4.8 培训
公司有专门的培训人员和培训费用计划,每半年会征集员工培训需求和建议,然后安排有关主题的培训活动。在新员工进入公司后都会有公司流程和其他一些公司普遍章程的培训,以保证员工对流程的理解和执行。对于具体项目,项目经理在制定项目计划时就会在项目计划中提出所有的培训需求,包括技术上的培训和其他所需的培训。
4.9 配置管理
在项目正式开展前,项目经理就要制定配置管理计划,并且指定配置管理员建立起配置管理库,按配置流程严格进行配置管理。在配置流程中也详细提供了对更改的控制,没有经过批准的更改请求是绝对不能进行的。
4.10 记录
记录及时、充分、比较准确。这些记录包括:重要的邮件、会议纪要、审核记录、缺陷报告、测试报告。
1)提倡与客户和其他项目组的所有往来必须邮件记录。
2)对所有的活动都有一个跟踪落实的过程,比如对所有的Review记录和更改请求都会有一个状态标识,标识其当前状态,通过跟踪其状态来监督其落实。
3)对所有的活动,包括对文档和代码的更改都会有一个历史记录。
4)记录比较准确、比较客观。
以上是华友公司在项目管理中所涉及到的一些主要环节,很值得国内的软件企业在制定项目管理规划时借鉴。
谈项目管理和软件测试过程(三)
谈项目管理和软件测试过程(二)
谈项目管理和软件测试过程(一)来源:CCW
- 1无线网状网渗透至行业企业
- 2时段分析模块的设计
- 3Linux系统管理技巧大荟萃
- 4实施软件能力成熟度CMM的新思路
- 5小企业应善选双WAN口宽带路由器
- 6金融安全战略重于技术
- 7泛普OA软件可设置权限以保护机密资料安全
- 8EAI技术的组成和架构概述
- 9用围棋理论指导布线施工
- 10虚拟存储 实在收益
- 11IT项目经理怎么样进行项目跟踪
- 12数据库管理系统(DBMS)
- 13信息的液态生存遐想
- 14瞬索给现存信息系统带来了革新
- 15灾难恢复:你准备好了吗?
- 16Foxmail十大安全隐患解决方法
- 17基于并行制造执行系统的工具管理
- 18MPLS VPN困于边界?
- 19网络安全避开新陷阱
- 20灾难恢复与业务连续性有何区别?
- 21数据库技术的一些基本概念
- 22VoIP的电源支持
- 23九大技术九重天
- 24应用程序也“虚拟”
- 253G和后3G的标准化及发展近况
- 26IT成本管理的实施过程分析
- 27开源软件是否更安全
- 28关于安全政策的六个偏见
- 29Web服务与网格计算融合
- 30解开被锁注册表的四种方法