印度项目质量管理经验揭秘
仪器信息网 · 2011-04-02 14:40 · 39466 次点击
质量管理对一个项目来说应该是根本,管理好质量也是项目得根基。而如何才能真正地把好,是我们经常思考的问题,下面对在工作中得质量管理经验谈一谈。
计算机和通信技术的迅速,特别是Internet技术的发展与普及,为企业内部、企业与外部提供了快速、准确、可靠的信息交流渠道。信息化企业运作项目质量竞争的必备支持。正是由于这样的市场需求与技术发展现状,为我国的IT行业带来了空前发展的机遇,特别是软件行业。软件能否抓住这样一个难得的发展机会需要多方面的努力,其中保障在其过程中占有重要的位置。众所周知,印度已成为世界上业增长最快的国家,目前每年软件业产值达数十亿美元,并且还在以每年30%~50%的速度增长。比较我国和印度的软件产业,就不难发现:中国拥有巨大的软件和世界公认的软件开发资源,在基础研究和对技术前瞻性的把握上,也有自己的优势,就整体社会环境而言也优于印度。此外,中国的软件人员费用比较低廉,仅是世界的1/3左右。虽然人并不缺乏软件开发的天赋,但是在越来越强调规模化经营的今天,先天不足的项目质量管理痼疾使我们举步维艰,难以摆脱小作坊式的软件开发模式。而印度软件业从一开始就立足于为美国软件企业服务,并遵循其软件开发的项目质量管理模式,与国际标准接轨。
项目质量上的问题不能得到彻底的解决,软件的质量保障就无从谈起。笔者最近在与印度一家通过了CMM4级评估的软件公司(以下简称A公司)进行合作的过程中,较为详细地了解了他们有关质量的一些详细情况,更深刻地感受到了项目质量管理的规范化与企业软件质量保障之间的密切关系。下面想着重从软件企业的构架,软件项目计划、项目质量管理、项目经理的职责等方面对印度软件的项目质量管理及我国软件质量保障应注意的问题进行一些经验总结,供业内人士参考。
A公司中,QA(QualityAssure)部门与研发部门独立,负责监督流程的执行。QA同时负责领导与研发部门组成的联合工作组,制定公司流程。
SSG(SystemSupportGroup)类似我们的IT部门,负责所有计算机软件和硬件资源的分配和项目质量管理。所有的办公环境和开发/实验室环境由SSG负责安装和维护,计算机资源属于SSG,由各个项目向SSG提出需求,项目结束后,设备需要交还给SSG.个人和项目组没有固定的软件和硬件资源。SSG是与研发平行的部门。
部门负责的人力资源质量管理,并维护员工的技能数据库。开始时,项目组向人力资源申请人力,向SSG申请计算机硬件和软件。项目结束时需要释放计算机资源给SSG,释放人力资源到人力资源池,并同时更新员工的技能数据库。研发部门的人力资源由研发总负责人和其助手分配(类似我国各公司的人力资源部)。
1)A对项目组进行独立核算,项目具体负责人为PC(ProjectCoordinator),负责项目和执行,对项目具体成员进行分工。在每个阶段的结束会议上(如概要设计结束),PC要接受QC(QualityCoordinator)的审查。除了PC与QC的接口外,所有其他外部接口都由EM(EngineerManager)完成,EM负责与客户打交道,向SSG、人力资源要求资源,与其他项目组协调进度。
2)汇报关系为:TeamMember->TeamLeader->PC->EM->研发总负责人。
3)印度工程师分为7级,半年一次考评,即半年有一次升级机会。
1级:SoftwareEngineer,刚毕业的本科生和研究生。
2级:SeniorSoftwareEngineer.3级:ProjectLeader.4级:ProjectManager.5级:SeniorProjectManager.
3级可以成为PC,4级可以成为EM.刚开始平均2年升一级,越往后升职越慢。
A公司规定,一人最多可以同时兼任两个项目的PC,EM项目质量管理的项目没有限制。
A公司通常的项目组为4到5人,最多不超过10人。
以上是A(同时也是印度大多数规范化的软件)的组织结构和项目组结构。可以看出,A的组织结构非常清晰,各个部门分类非常细,任务明确,软件生产的每一个步骤都有专门的部门、专门的人员负责,从最基础的开发人员到负责统领全局的总,层层项目质量,沟通渠道畅通。而在我国,项目质量管理的不规范往往首先体现在公司的组织结构上,集中表现为部门的缺失和项目质量管理的交叉上。我国的软件公司,大部分规模较小,人员超过100人的公司很少。在印度,软件公司无论大小,都是“麻雀虽小,五脏俱全”,绝不会因为公司的规模大小而改变合理的组织结构。因此笔者认为,国内的软件要想有效地保障产品质量,首先就要在构架合理的组织结构上下功夫,这就如同盖高楼首先要打好地基一样,地基不打牢,结构不合理,其他方面再下功夫也是徒劳。有人说,因为国内软件企业规模小,所以造成结构设置的欠缺,但笔者认为恰恰是因为没有建立一个规范化的组织结构,才会使软件产品质量不保,进而严重影响了企业的发展扩大。
凡事预则立,不预则废。这里的“预”就是指计划。对于软件,计划的重要性是不言而喻的。让我们先看看A公司的项目计划是如何制定的:在A公司,项目开始之前必须先估计项目的规模(以代码行数来衡量);然后制定项目计划。通常时间为2~3周,已知的最长有5周。EM负责制定项目EWP(EngineerWorkPaper),其中定义了项目需要的人力和计算机资源,由相关部门同意,并报研发总负责人批准后才能开始项目。
项目的正式开始时间由项目组的KickoffMeeting算起,CloseoutMeeting结束。
大概很多人都听过这样一句话:“计划赶不上变化”。这种“变化”对某些行业而言也许并不会产生太大的影响,但对于软件而言,却会给软件产品的质量保证带来严重的负面影响。为什么会造成这种“计划赶不上变化”的现象?究其原因,笔者认为主要是因为对计划的重视程度不够,计划过于笼统、粗糙导致可执行性太差,再加上一些人为因素的影响,必然会产生这样的后果。
如果我们的软件企业都能像A公司这样,在作计划时能考虑到每一个细节,不是仓促做出决定,而是由所有的相关部门共同对产品计划进行反复研究、制定、讨论、修改,最终形成一套系统、严密、具有很强的可执行性的计划。计划一旦形成,就严格按照计划去执行,而不受某个人、某件事的影响,那么就不仅能够减少大量资源的浪费,产品的质量也得到了保障。
因此,对计划的高度重视、周密制定、严格执行是企业有效保障产品质量的一个重要环节。
当企业构架了合理的组织结构并制定了缜密的计划后,就进入了产品的开发阶段。在这个阶段中,项目质量管理起了重要作用,它所涉及的环节相当具体复杂,下面先介绍一下A公司在项目质量管理上的具体细节:
(1)开发阶段和项目周期开发阶段比较明显,注重各阶段应完成的功能,对本阶段应完成的工作不能留到下一阶段。
(2)流程
A公司对流程比对项目更重视。
软件开发非常规范和系统化,其流程的可执行性很高,并且能在实践过程中不断改进。A公司的流程已覆盖到了一个项目研发的所有方面,包括从最开始的意向到最后软件的版本发布(release),都有相应的流程规定,基本上已形成一种工业化的软件开发。
人和流程是保证项目成功的两个最关键因素。由好的人按好的流程进行项目开发,才能最大限度地保证项目的成功。一个好的流程可以保证差的人做出来的东西不至于太差,但不能确保做出精品。通过流程可以实现一种规范化、流水线化、工业化的软件开发。