【IT168 技术文章】
案例
L先生曾负责了一个航空领域的大型数据仓库项目,在此项目一期的时候,各类问题层出不穷,项目组疲于应付,四处救火:
◆在项目中,L先生与各项目干系人没有建立有效的联系,根本无法让他们了解项目进展情况。甚至连项目开发人员自身对项目整体情况也没有清楚的认识,而只管自己那一部分,对其他工作则不闻不问;项目一旦开始,直到项目结束才能准确知道产品情况。整个开发过程完全是一种黑盒模式,项目组成员无法把握准确进度,无法保证项目质量。
◆到了项目后期才发现销售模块开发进度过慢,不得已加班加点,仓促交工,项目质量连自己都不放心,大量的BUG遗留在这部分,产生许多隐患,维护的工作量甚至超过了开发,导致系统维护成本过大。用户抱怨颇多,维护人员更是怨声载道。
◆在项目交工时,客户提出运输模块提供的信息无法满足制作报表的要求,并抱怨这个变更早就通知过项目组,可L先生作为项目经理竟然全然不知,结果是来回扯皮。
◆开发人员在设计对内开账模块时描述了实现方式,但为了节省时间,只是粗粗地写了设计,就去编码。等编码结束时,发现和L先生原来所理解的出入甚大,只得推翻重来,不但工作量增加了,而且成本超支严重。
在此项目的二期时,公司开始采用CMM的一些开发思想,加强对需求、计划的管理,采用了配置管理工具VSS 来管理文档,情况才逐步好转,但前期仍然出现了许多问题:不少项目成员对文档敷衍了事,认为只是走走过场而已。
L先生遇到的现象绝非偶然,稍加分析我们会发现,L先生的项目组在开始引用CMM的开发思想时,缺乏的是一种项目组各个层面间的沟通机制,而加强沟通管理应是实施成功项目管理的必由之路。
困惑源自缺乏沟通
企业在实施CMM过程中,所遇到的阻力会来自于方方面面。增强正向的推进力,弱化逆向的阻力,对于过程改进的成功至关重要。为实现这一目标,企业各层面之间正确的沟通与协调起着决定性作用,这就需要对项目进行有效的沟通管理。
项目经理是沟通项目层和管理层的桥梁,是项目沟通的焦点所在。对于CMM的贯彻实施起着承上启下的作用。贯彻CMM不能奢望全体人员从一开始就一致拥护,但是项目经理的积极参与、并与各层面有效沟通,却是非常必要的,这在很大程度会增强企业整体推进CMM实施的动力。
CMM实施的内部驱动力主要来自于两方面:高层经理和项目经理。高层经理通过资源和政策驱动,项目经理以实际问题驱动。项目经理首先应该明白过程改进的意义,认识到过程改进工作正是为项目服务的,是使项目能够顺利进行的可靠保证。而不单单是被动地服从高层经理的安排和质量经理的规划,而且应该把这种认识通过正确的沟通方式,源源不断地传给项目层,并影响客户等其它层面。 从而使项目层成为推进CMM实施的动力。
CMM实施的过程是打破旧平衡,建立新平衡的过程,在这期间体系会相对混乱,对正在运行的项目会产生某些负面的影响。最直接的表现就是会带来额外的工作量,产生很多事务性管理工作,这样容易使相关人员产生抵触情绪。有效的沟通就显得愈发重要。项目经理应敏锐地发现项目进行过程中开发人员的这种苗头,及时地以正式沟通方式予以控制,并着重指出过程改进对项目、企业的益处,让成员看到希望,迫使其先坚持下去,最大程度地避免这种情绪的强化和蔓延。只要是真正的实施过程改进,项目组成员会在潜移默化中体会到CMM的益处。随着时间的推移,当看到项目质量不断地提升、工作状态日趋规范和稳定,开发人员逐渐会发自内心地支持这种过程改进。
对于项目的SQA(软件质量保证)和SCM(软件配置管理)人员来讲,需要增强配合意识,不断强化与项目组的沟通。质量部门是制度的制定者,但这并不意味着他们就应该高高在上,与项目脱节。开发人员是直接为客户服务的,质量和配置人员实质上是间接地为客户服务,都是为了项目的成功和企业的长久发展。配合意识的增强体现在深入了解项目经理改进过程的需求,根据实际需要开展质量工作,争取在局部先有所突破,进而一步步地扩大。采取灵活多样的方式密切接触开发人员,通过有效地沟通来开展质量宣传,多方了解反馈意见,促进自己的工作。CMM过程改进需要用不断的成功来推动。QA(质量保证)成员通过不断的沟通,一点一滴的向大家展现出CMM的改进效果,进而使大家认可过程改进,减少阻力。
在CMM环境下,项目管理的目的同样是实现既定项目目标。在这个过程中,一般认为把计划做得详实、细致,在项目实施时严格控制,项目就能取得成功,这其实是项目成功的最基本条件。据统计,在项目进行过程中,有70%以上的失败项目,不是因为计划不周详,也不是控制不到位,而是因为项目某些资源无法及时、充足利用。而这直接与沟通不利有关。项目经理在管理过程中一定要花至少75%以上的时间来与项目各方干系人进行协调和沟通,得到他们的理解和支持。做到这一点,项目就成功了一半。